Anda di halaman 1dari 19

Sistem Pengaturan

PERCOBAAN 1
DASAR-DASAR PENGGUNAAN MIKROKONTROLER
BERBASIS ATMEGA 32
DALAM SISTEM PENGATURAN
1. TUJUAN
Praktikum dasar-dasar penggunaan mikrokontroler berbasis ATMega 32
dalam system pengaturan bertujuan agar setelah selesai praktikum, mahasiswa
mengetahui dasar-dasar penggunaan dan fungsi dari mikrokontroler serta dapat
mengaplikasikan mikrokontroler sebagai salah satu kontroler dalam merancang
sebuah perencanaan system pengaturan.
2. TEORI DASAR
Dewasa ini pemakaian system pengaturan otomatis seperti mikrokontroller
sebagai salah satu kontroller merupakan kebutuhan pokok pada pengendalian
proses dalam suatu sistem, karena mikrokontroller dapat diprogram secara manual
sesuai dengan kebutuhan serta mampu berintegrasi dengan komputer serta
komponen-komponen seperti sensor dan aktuator. Sistem ini dipandang sangat
menguntungkan karena selain menjanjikan ketelitian, kecepatan mengendalikan
dan kontinuitas, serta dapat pula menggantikan operator karena sistem telah
dirancang secara otomatis dengan menggunakan mikrokontroller.

2.1 MIKROKONTROLLER AVR ATMEGA 32


AVR

merupakan

seri

mikrokontroler

Complementary

Metal

OxideSemiconductor (CMOS) 8-bit buatan Atmel berbasis arsitektur RISC


(Reduced Instruction Set Computer).Hampir semua instruksi pada program
dieksekusidalam satu siklus clock. AVR mempunyai 32 register generalpurpose,timer/counter fleksibel dengan modecompare, interupsi internal dan
eksternal,serial UART, programmable Watchdog Timer, power saving mode,
ADC danPWM. AVR pun mempunyai In-System Programmable (ISP) Flash onchip yangmengijinkan memori program untuk diprogram ulang (read/write)

Sistem Pengaturan

dengan koneksisecara serial yang disebut Serial Peripheral Inteface (SPI). AVR
memilki keunggulan dibandingkan dengan mikrokontroler lain, keunggulan
mikrokontroler AVR yaitu memiliki kecepatan dalam mengeksekusi program
yang lebih cepat, karena sebagian besar instruksi dieksekusi dalam 1 siklus clock
(lebih cepat dibandingkan mikrokontroler keluarga MCS 51 yang memiliki
arsitektur Complex Intrukstion Set Compute). ATMega 32 mempunyai throughput
mendekati 1 Millions Instruction PerSecond (MIPS) per MHz, sehingga membuat
konsumsi daya menjadi rendah terhadap kecepatan proses eksekusi perintah.
Adapun beberapa keistimewaan dari AVR ATMega 32 antara lain:
Mikrokontroler AVR 8 bit yang memilliki kemampuan tinggi dengan
konsumsi daya
rendah.
Arsitektur RISC dengan throughput mencapai 16 MIPS pada
frekuensi16MHz
Memiliki kapasitas Flash memori 32 Kbyte, EEPROM 512 Byte dan
SRAM1 Kbyte
Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C dan Port D
CPU yang terdiri dari 32 buah register
Unit interupsi dan eksternal
Port USART untuk komunikasi serial
Fitur peripheral
Tiga buah Timer/Counter dengan kemampuan perbandingan
(compare)
Dua buah Timer/Counter 8 bit dengan Prescaler terpisah dan
Mode Compare
Satu buah Timer/Counter 16 bit dengan Prescaler terpisah,
ModeCompare dan Mode Capture
Real Time Counter dengan Oscillator tersendiri
Empat kanal PWM
8 kanal ADC
8 Single-ended Channel dengan keluaran hasil konversi 8 dan
10resolusi
(register ADCH dan ADCL)
7 Diferrential Channel hanya pada kemasan Thin Quad Flat
Pack(TQFP)
2 Differential Channel dengan Programmable Gain
Antarmuka Serial Peripheral Interface (SPI) Bus
Watchdog Timer dengan Oscillator Internal

Sistem Pengaturan

On-chip Analog Comparator


Non-volatile program memory
2.1.1 Konfigurasi Pin AVR ATMega 32

Gambar 2.1 Konfigurasi PIN AVR ATMega 32

dari gambar diatas dapatdijelaskan fungsi dari masingmasing pin ATMega 32


sebagai berikut.
1. VCC merupakan pin yang brfungsi sebagai masukan catu daya.
2. GND merupakan pin Ground.
3. Port A (PA0 PA7) merupakan pin input/output dua arah (full duplex)
dan selain itu merupakan pin masukan ADC.
4. Port B (PB0 PB7) merupakan pin input/output dua arah (full duplex) dan
selain itu
merupakan pin khusus, seperti dapat dilihat pada tabel dibawah ini.

Sistem Pengaturan

Tabel 2.1 Fungsi Khusus port B

Pin

Fungsi Khusus

PB0

XCK (USART External Clock Input/Output)


(Timer/Counter0 External Counter Input)

PB1

T1 (Timer/Counter1 External Counter Input)

T0

PB3

INT2 (External Interupt 2 Input) AIN0 (Analaog Comparator


Negative Input)
OC0 (Timer/Counter0 Output Compare Macth Output) AIN1
(Analaog Comparator Negative Input)

PB4

(SPI Slave Select Input)

PB5

MOSI (SPI Bus Master Output /Slave Input)

PB6

MISO (SPI Bus Master Input/Slave Output)

PB7

SCK (SPI Bus Serial Clock)

PB2

5. Port C (PC0 PC7) merupakan pin input/output dua arah (full duplex) dan
selain itu merupakan pin khusus, seperti dapat dilihat pada tabel dibawah
ini.
Tabel 2.2 Fungsi Khusus port B

Pin

Fungsi Khusus

PC0

SCL (Two-wire Serial Bus Clock Line)

PC1

SDA (Two-wire Serial BusData Input/Output Line)

PC2

TCK (Joint Test Action Group Test Clock)

PC3

TMS (JTAG Test Mode Select)

PC4

TDO (JTAG Data Out)

Sistem Pengaturan

PC5

TDI (JTAG Test Data In)

PC6

TOSC1 (Timer Oscillator pin 1)

PC7

TOSC2 (Timer Oscillator pin 2)

6. Port D (PD0 PD7) merupakan pin input/output dua arah (full duplex)
dan selain itu merupakan pin khusus, seperti dapat dilihat pada tabel
dibawah ini.
Tabel 2.3 Fungsi Khusus Port D

Pin

Fungsi Khusus

PD0

RXD (USART Input Pin)

PD1

TXD (USART Output Pin)

PD2

INT0 (External Interupt 0 Input)

PD3

INT1 (External Interupt 1 Input)

PD4

OC1B (Timer/Counter1 Output Compare B Macth Output)

PD5

OC1A (Timer/Counter1 Output Compare A Macth Output)

PD6

ICP (Timer/Counter1 Input Capture Pin)

PD7

OC2 (Timer/Counter2 Output Compare Macth Output)

7. RESET merupakan pin yang digunakan untuk me-reset mikrokontroler.


8. XTAL1 dan XTAL2, merupakan pin masukan external clock
9. AVCC merupakan pin masukan tegangan untuk ADC
10. AREF merupakan pin masukan tegangan referensi untuk ADC.

Sistem Pengaturan

2.2 DASAR-DASAR PEMROGRAMAN BASIC-COMPILER AVR


Bahasa pemprograman BASIC dikenal di seluruh dunia sebagai bahasa
pemrograman handal, cepat, mudah dan tergolong kedalam bahasa pemprograman
tingkat tinggi. Bahasa BASIC adalah salah satu bahasa pemprograman yang
banyak digunakan untuk aplikasi mikrokontroler karena kemudahan dan
kompatibel terhadap mikrokontroler jenis AVR dan didikung oleh compiler
software berupa BASCOM-AVR.
2.2.1 Konstruksi Bahasa BASIC pada BASCOM AVR
Setiap bahasa pemprograman mempunyai standar penulisan program.
Konstruksi dari program bahasa BASIC harus mengikuti aturan sebagai berikut:
$regfile = header
inisialisasi
deklarasi variabel
deklarasi konstanta
Do
pernyataan-pernyataan
Loop
End
2.2.2 Pengarah Pre-Prosesor
$regfile = m16def.dat merupakan pengarah pengarah preprosesor
bahasa BASIC yang memerintahkan untuk menyisipkan file lain, dalam hal ini
adalah file m16def.dat yang berisi deklarasi register dari mikrokonroller ATMega
16, pengarah preprosesor lainnya yang sering digunakan ialah sebagai berikut:
$crystal = 12000000

menggunakan crystal clock 12 MHz

$baud = 9600

komunikasi serial dengan baudrate 9600

$eeprom

menggunakan fasilitas eeprom

Sistem Pengaturan

2.2.3 Tipe Data


Tipe data merupakan bagian program yang paling penting karena sangat
berpengaruh pada program. Pemilihan tipe data yang tepat maka operasi data
menjadi lebih efisien dan efektif.
Tabel 2.4 Tipe Data Pada Bascom AVR

No

Tipe

Jangkauan

Rentang

Bit

1/8

0 atau 1

Byte

0 sampai 255

Integer

-32768 sampai +32767

Word

0 sampai 65535

Longint

-2147483648 sampai
+2147483647

String

Maksimum 254 byte

2.2.4 Konstanta
Konstanta merupakan suatu nilai dengan tipe data tertentu yang tidak
dapat diubah-ubah selama proses program berlangsung. Konstanta harus
didefinisikan terlebih dahulu diawal program.
Contoh :

Kp = 35, Ki=15, Kd=40

2.2.5 Variabel
Variabel adalah suatu pengenal (identifier) yang digunakan untuk
mewakili suatu nilai tertentu di dalam proses program yang dapat diubah-ubah
sesuai dengan kebutuhan. Nama dari variable terserah sesuai dengan yang
diinginkan namun hal yang terpenting adalah setiap variabel diharuskan :
1. Terdiri dari gabungan huruf dan angka dengan karakter pertama harus
berupa huruf, max 32 karakter.
2. Tidak boleh mengandung spasi atau symbol-simbol khusus seperti : $, ?,
%, #, !, &, *, (, ), -, +, = dan lain sebagainya kecuali underscore.

Sistem Pengaturan

3. Deklarasi
Deklarasi sangat diperlukan bila akan menggunakan pengenal (identifier) dalam
suatu program.
2.2.6 Deklarasi Variabel
Bentuk umum pendeklarasian suatu variable adalah Dim nama_variabel
AS tipe_data
Contoh : Dim x As Integer

deklarasi x bertipe integer

2.2.7 Deklarasi Konstanta


Dalam Bahasa Basic konstanta di deklarasikan langsung.
Contohnya : S = Hello world

Assign string

2.2.8 Deklarasi Fungsi


Fungsi merupakan bagian yang terpisah dari program dan dapat dipanggil
di manapun di dalam program. Fungsi dalam Bahasa Basic ada yang sudah
disediakan sebagai fungsi pustaka seperti print, input data dan untuk
menggunakannya tidak perlu dideklarasikan.
2.2.9 Deklarasi Buatan
Fungsi yang perlu dideklarasikan terlebih dahulu adalah fungsi yang
dibuat oleh programmer. Bentuk umum deklarasi sebuah fungsi adalah :
Sub Test ( byval variabel As type)
Contohnya :
Sub Pwm(byval Kiri As Integer , Byval Kanan As Integer)

Sistem Pengaturan

2.2.10 Operator Aritmetika


* : untuk perkalian
/

: untuk pembagian

+ : untuk pertambahan
-

: untuk pengurangan

% : untuk sisa pembagian (modulus)


2.2.11 Operator Hubungan (Perbandingan)
Operator hubungan digunakan untuk membandingkan hubungan dua buah
operand atau sebuah nilai / variable, misalnya :
=

Equality X = Y

<

Less than X < Y

>

Greater than X > Y

<=

Less than or equal to X <= Y

>=

Greater than or equal to X >= Y

2.2.12 Operator Logika


Operator logika digunakan untuk membandingkan logika hasil dari
operator-operator hubungan. Operator logika ada empat macam, yaitu :
NOT Logical complement
AND Conjunction
OR

Disjunction

XOR Exclusive or
2.2.13 Pernyataan Kondisional (IF-THEN END IF)
Pernyataan ini digunakan untuk melakukan pengambilan keputusan
terhadap dua buah bahkan lebih kemungkinan untuk melakukan suatu blok
pernyataan atau tidak. Konstruksi penulisan pernyatan IF-THEN-ELSE-END IF
pada bahasa BASIC ialah sebagai berikut:

Sistem Pengaturan

IF pernyataan kondisi 1 THEN


blok pernyataan 1 yang dikerjakan bila kondisi 1 terpenuhi
IF pernyataan kondisi 2 THEN
blok pernyataan 2 yang dikerjakan bila kondisi 2 terpenuhi
IF pernyataan kondisi 3 THEN
blok pernyataan 3 yang dikerjakan bila kondisi 3 terpenuhi
Setiap penggunaan pernyataan IF-THEN harus diakhiri dengan perintah
END IF sebagai akhir dari pernyatan kondisional.

Gambar 2.2 Diagram alir Pernyataan Kondisional (IF-THEN END IF)

2.2.13 Pernyataan Kondisional (IF-THEN END IF)


Pernyataan ini digunakan untuk melakukan pengambilan keputusan
terhadap banyak kondisi. Konstruksi penulisan pernyatan SELECT-CASE-END
SELECT pada bahasa BASIC ialah sebagai berikut:

Sistem Pengaturan

SELECT CASE var


CASE kondisi1 : blok perintah1
CASE kondisi2 : blok perintah2
CASE kondisi3 : blok perintah3
CASE kondisi4 : blok perintah4
CASE kondisi5 : blok perintah5
CASE kondisin : blok perintahn
END SELECT akhir dari pernyatan SELECT CASE

Gambar 2.3 Diagram alir Pernyataan Kondisional (SELECT-CASE-END SELECT)

2.3 MODUL MIKROKONTROLER BERBASIS ATMEGA 32


Modul mikrokontroler yang digunakan dalam praktikum system pengaturan sudah
dilengkapi dengan beberapa komponen tambahan yang difungsikan sebagai I/O
dari mikrokontroler. Adapun tampilan dari modul yang dimaksud dapat dilihat
pada gambar 2.5.

Sistem Pengaturan
Rangkaian
Relay

Slot
ADXL335

RangkaianDriver
MotorDC

LCD2x16

Vcc&Gnd
Extended

Trimpot
ARef
DipSwitchport

Slot
SRF04

Sensorsuhu
LM35

Motor
Servo

SlotServo

SocketDC
PushButton
Downloader
USBASP

Potensiometer

Mikrokontroler
ATMega32

Keterangan :
1. Rangkaian Relay: digunakan sebagai saklar otomatis untuk switching
tegangan jala-jala.
2. Slot ADXL335: berfungsi sebagai socket extended untuk menghubungkan
sensor accelerometer ADXL335.
3. Rangkaian Motor Driver: digunakan untuk mengendalikan putaran motor
DC.
4. Vcc & Gnd extended: digunakan sebagai suplly cadangan ketika ada I/O
eksternal yang membutuhkan tegangan 5v.

Sistem Pengaturan

5. Slot SRF04 : digunakan untuk menghubungkan antara board modul


mikrokontroler dengan sensor jarak (Ultrasonik) SRF04.
6. Motor Servo: digunakan untuk percobaan pengontrolan putaran sudut dari
motor servo.
7. Socket DC: digunakan sebagai slot masukan adaptor 12 volt DC.
8. Downloader USBasp: digunakan untuk download program dari computer
ke modul mikrokontroler.
9. Mikrokontroler ATMega 32: berfungsi sebagai chip utama dari modul.
10. Potensiometer: digunakan sebagai resistor variable yang hambatanya dapat
dirubah-rubah, pada modul ini berfungsi sebagai perangkat yang dapat
merubah parameter tegangan analog ke digital dengan fungsi port ADC.
11. Push button: digunakan sebagai saklar pemilih.
12. Slot servo: digunakan untuk menghubungkan motor servo dengan modul.
13. Sensor suhu LM35: digunakan sebagai pembaca suhu keadaan sekitar
dengan menggunakan fungsi port ADC.
14. Dip Switch: digunakan untuk meng-aktifkan atau menonaktifkan fungsi
port yang sudah ada di modul.
15. Trimpot Aref: digunakan untuk mengatur sensitifitas dari pembacaan
ADC.
16. LCD 2x16 : digunakan sebagai media display dari modul mikrokontroler.

Sistem Pengaturan

Konfigurasi PIN mikrokontroler pada Modul


LCD
9 RS= PORTA.3
9 E= PORTA.4
9 Db4=

PORTC.3

9 Db5=

PORTC.2

9 Db6=

PORTC.1

9 Db7=

PORTC.0

SRF04
9 Triger=

PORTD.3

(pada mikro di config sebagai output)

9 Echo=

PORTD.4

(pada mikro di config sebagai input)

RELAY
9 Relay 1 (led merah)=

PORTC.7

9 Relay 2 (led hijau)=

PORTC.6

POTENSIOMETER= PORTA.0
SERVO=

(ADC chanel 0)

PORTB.0

LM35(sensor suhu)=

PORTA.1

(ADC chanel 1)

MOTOR DC=
9 PIN pengatur kecepatan= PORTD.5
9 PIN Direksi putaran=

(Digunakan sebagai PWM)

PORTD.6

PUSH BUTTON
9 Switch 1= PORTB.1

(di configure sebagai input)

9 Switch 2= PORTB.2

(di configure sebagai input)

9 Switch 3= PORTB.3

(di configure sebagai input)

9 Switch 4= PORTB.4

(di configure sebagai input)

Sistem Pengaturan

JENIS PERCOBAAN
A. Mengakses sensor SRF04 (sensor ultrasonik) untuk pengukuran jarak
Langkah kerja:
1. Siapkanlah program (koding) untuk mengakses sensor ultrasonic SRF04
dalam bahasa basic compiler AVR
2. Siapkan modul mikrokontroler yang digunakan praktikum
3. Kenali port I/O yang digunakan sebagai port trigger dan port echo SRF04
pada mikrokontroler.
4. Pastikan Dip switch pada port tersebut sudah dalam kondisi ON.
5. Buka program Basic Compiler pada computer.
6. Mulai membuat program untuk mengakses SRF04
7. Compile program
8. Download file Hex yang telah tercompile ke mikrokontroler menggunakan
Downloader USBasp.
9. Uji coba program
10. Lakukan pengukuran sesuai dengan table.
11. Simpan program yang telah dibuat untuk laporan.
Tabel percobaan SRF04

No
1
2
3
4
5
6
7
8
9
10

Percobaan SRF04
Jarak pada penggaris
Nilai waktu
3 Cm

5 Cm

8 Cm

10 Cm

15 Cm

25 Cm

30 Cm

50 Cm

75 Cm

100 Cm

Hasil Jarak pada LCD

Sistem Pengaturan

B. Menampilkan Nilai ADC dengan Potensiometer dan LM35


Langkah kerja:
1. Siapkanlah program (koding) untuk mengakses ADC dalam bahasa basic
compiler AVR
2. Siapkan modul mikrokontroler yang digunakan praktikum
3. Kenali port I/O yang digunakan untuk ADC potensiometer dan LM35
pada mikrokontroler.
4. Pastikan Dip switch pada port tersebut sudah dalam kondisi ON.
5. Buka program Basic Compiler pada computer.
6. Mulai membuat program untuk mengakses ADC
7. Compile program
8. Download file Hex yang telah tercompile ke mikrokontroler menggunakan
Downloader USBasp.
9. Uji coba program
10. Lakukan pengukuran sesuai dengan table.
11. Simpan program yang telah dibuat untuk laporan.
Tabel percobaan SRF04

PercobaanADCdenganLM35&potensiometer

No

Potensiometer
NilaiADCpadaLCD
Hambatan pada AVO

200ohm

500ohm

750ohm

900ohm

FullPutar

Sensor Suhu LM 35
No

Pengujian

NilaiADCpadaLCD

KeadaanNormal

DipegangdenganJari

DidekatkandenganApi

Sistem Pengaturan

C. Mengatur Sudut Putaran Motor Servo


Langkah kerja:
1. Siapkanlah program (koding) untuk Mengendalikan motor servo dalam
bahasa basic compiler AVR
2. Siapkan modul mikrokontroler yang digunakan praktikum
3. Kenali port I/O yang digunakan untuk Port servo pada mikrokontroler.
4. Pastikan Dip switch pada port tersebut sudah dalam kondisi ON.
5. Buka program Basic Compiler pada computer.
6. Mulai membuat program untuk mengendalikan putaran servo
7. Compile program
8. Download file Hex yang telah tercompile ke mikrokontroler menggunakan
Downloader USBasp.
9. Uji coba program
10. Lakukan pengukuran sesuai dengan table.
11. Simpan program yang telah dibuat untuk laporan.
Tabel percobaan Putaran servo

PercobaanMotorServo
No

DerajatpadaProgram

DerajatpadaBusur

45

50

90

135

10

95

180

60

10

110

Sistem Pengaturan

D. Mengatur Putaran Motor DC dengan Pulse Width Modulation (PWM)


Langkah kerja:
1. Siapkanlah program (koding) untuk Mengendalikan Kecepatan motor DC
dalam bahasa basic compiler AVR
2. Siapkan modul mikrokontroler yang digunakan praktikum
3. Kenali port I/O yang digunakan untuk Port Motor DC pada
mikrokontroler.
4. Pastikan Dip switch pada port tersebut sudah dalam kondisi ON.
5. Buka program Basic Compiler pada computer.
6. Mulai membuat program untuk mengendalikan putaran motor DC
7. Compile program
8. Download file Hex yang telah tercompile ke mikrokontroler menggunakan
Downloader USBasp.
9. Uji coba program
10. Lakukan pengukuran sesuai dengan table.
11. Simpan program yang telah dibuat untuk laporan.
Tabel percobaan Putaran motor DC

PercobaanMotorDC
No

PWMpadaProgram

RPM

50

100

140

170

200

230

255

Sistem Pengaturan