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 general-
purpose,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 on-
chip 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


XCK (USART External Clock Input/Output) T0
PB0 (Timer/Counter0 External Counter Input)

PB1 T1 (Timer/Counter1 External Counter Input)


INT2 (External Interupt 2 Input) AIN0 (Analaog Comparator
PB2 Negative Input)
OC0 (Timer/Counter0 Output Compare Macth Output) AIN1
PB3 (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)

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


1 Bit 1/8 0 atau 1
2 Byte 1 0 sampai 255
3 Integer 4 -32768 sampai +32767
4 Word 2 0 sampai 65535
5 Longint 4 -2147483648 sampai
+2147483647
6 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 ‘kondisi’n’ : ‘blok perintah’n’

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  Rangkaian Driver 
Slot 
Relay  Motor DC 
ADXL335 

LCD 2x16 

Vcc & Gnd 
Trimpot  Extended 
ARef 

Dip Switch port  Slot 
SRF04 
Sensor suhu 
LM35
Motor 
Slot Servo  Servo 

Socket DC 

Push Button 
Downloader 
USBASP 

Potensiometer 
Mikrokontroler 
ATMega 32 

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 (ADC chanel 0)

™ SERVO= PORTB.0

™ LM35(sensor suhu)= PORTA.1 (ADC chanel 1)

™ MOTOR DC=

9 PIN pengatur kecepatan= PORTD.5 (Digunakan sebagai PWM)

9 PIN Direksi putaran= 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

Percobaan SRF04
No Jarak pada penggaris Nilai waktu Hasil Jarak pada LCD
1 3 Cm
2 5 Cm      
3 8 Cm      
4 10 Cm      
5 15 Cm      
6 25 Cm      
7 30 Cm      
8 50 Cm      
9 75 Cm      
10 100 Cm      
   

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

Percobaan ADC dengan LM35 & potensiometer 
Potensiometer
No Hambatan pada AVO Nilai ADC pada LCD 
1  200 ohm    
2  500 ohm    
3  750 ohm    
4  900 ohm    
5  Full Putar    
Sensor Suhu LM 35
No  Pengujian   Nilai ADC pada LCD 
1  Keadaan Normal    
2  Dipegang dengan Jari    
3  Didekatkan dengan Api    
   

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

Percobaan Motor Servo 
No  Derajat pada Program  Derajat pada Busur 
1  0    
2  45    
3  50    
4  90    
5  135    
6  10    
7  95    
8  180    
9  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

Percobaan Motor DC 
No  PWM pada Program  RPM 
1  50    
2  100    
3  140    
4  170    
5  200    
6  230    
7  255    
   

Sistem Pengaturan

Anda mungkin juga menyukai