Kursi roda elektrik menggunakan joystik berbasis mikrokontroler atmega 8535
1. PERCOBAAN I - Dasar-Dasar Penggunaan Mikrokontroler Berbasis ATMega 32 Dalam Sistem...
Transcript of 1. PERCOBAAN I - Dasar-Dasar Penggunaan Mikrokontroler Berbasis ATMega 32 Dalam Sistem...
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
PB0 XCK (USART External Clock Input/Output) T0 (Timer/Counter0 External Counter Input)
PB1 T1 (Timer/Counter1 External Counter Input)
PB2 INT2 (External Interupt 2 Input) AIN0 (Analaog Comparator Negative Input)
PB3 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)
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 Relay
Rangkaian Driver Motor DC
Slot ADXL335
LCD 2x16
Vcc & Gnd Extended
Trimpot ARef
Dip Switch port
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.
Motor Servo
Slot SRF04
Sensor suhu LM35
Slot Servo
Socket DC
Downloader USBASP
Potensiometer
Push Button
Mikrokontroler ATMega 32
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
RS= PORTA.3
E= PORTA.4
Db4= PORTC.3
Db5= PORTC.2
Db6= PORTC.1
Db7= PORTC.0
SRF04
Triger= PORTD.3 (pada mikro di config sebagai output)
Echo= PORTD.4 (pada mikro di config sebagai input)
RELAY
Relay 1 (led merah)= PORTC.7
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=
PIN pengatur kecepatan= PORTD.5 (Digunakan sebagai PWM)
PIN Direksi putaran= PORTD.6
PUSH BUTTON
Switch 1= PORTB.1 (di configure sebagai input)
Switch 2= PORTB.2 (di configure sebagai input)
Switch 3= PORTB.3 (di configure sebagai input)
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