pendahuluan sp1

23
BAB I PERCOBAAN I DASAR-DASAR PENGGUNAAN MIKROKONTROLER BERBASIS ATMEGA 32 DALAM SISTEM PENGATURAN 1.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. 1.2 Alat – Alat yang digunakan 1. PC/Laptop 2. Penggaris 3. Korek Api 4. Modul Mikrokontroler 5. Mikrokontroler SRF04

Upload: sintiasusiani

Post on 16-Sep-2015

31 views

Category:

Documents


0 download

DESCRIPTION

sp1

TRANSCRIPT

BAB IPERCOBAAN IDASAR-DASAR PENGGUNAAN MIKROKONTROLERBERBASIS ATMEGA 32DALAM SISTEM PENGATURAN

1.1 TujuanPraktikum 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.1.2 Alat Alat yang digunakan1. PC/Laptop2.Penggaris3.Korek Api4.Modul Mikrokontroler5.Mikrokontroler SRF04

BAB IIDASAR TEORIDewasa ini pemakaian sistem pengaturan otomatis seperti mikrokontroler sebgai salah satu kontroller merupakan kebutuhan pokok pada pengendalian proses dalam suatu sistem, karena mikrokontroler 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 mikrokontroler. 2.1 Mikrokontroller AVR ATMEGA 32AVR merupakan seri mikrokontroler Complementary Metal Oxide Semiconductor (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 mode compare, interupsi internal dan eksternal, serial UART, programmable Watchdog Timer, power saving mode, ADC dan PWM. AVR pun mempunyai In-System Programmable (ISP) Flash on-chip yang mengijinkan memori program untuk deprogram ulang (read/writte) dengan koneksi secara serial yang disebut Serial Peripheral Interface (SPI). AVR memiliki keunggulan dibandingkan dengan mikrokontroler lain, keunggukan mikrokontroler AVR yaitu memiliki kecepatan dalam mengeksekusi program yang lebih cepat, karena sebagian besar intruksi 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 Intruction PerSecond (MIPS) per MHz, sehingga membuat konsumsi daya menjadi rendah terhadap kecepatan proses eksekusi perintah.

Adapun beberapa keistimewaan dari AVR ATMega 32 antara lain :a. Mikrokontroler AVR 8 bit yang memiliki kemampuan tinggi dengan konsumsi daya rendah.b. Arsitektur RISC dengan throughput mencapai 16 MIPS pada frekuensi Memiliki kapasitas Flash memori 32 Kbyte, EEPROM 512 Byte dan SRAMI Kbyte.c. Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C, dan Port D.d. 16 MHz.e. CPU yang terdiri dari 32 buah registerf. Unit interupsi dan eksternal.g. Port USART untuk komunikasi serialh. Fitur peripheral1. Tiga buah Timer/Counter dengan kemampuan perbandingan (compare)a. Duah buah Timer/Counter 8 bit dengan Prescaler terpisah dan Mode Compareb. Satu buah Timer/Counter 16 bit dengan Precaler terpisah, Mode Compare dan Mode Capturec. Real Time Counter dengan Oscillator tersendiri2. Empat kanal PWM3. 8 kanal ADCa. 8 Single-ended Channel dengan keluaran hasil konversi 8 dan 10 resolusi (register ADCH dan ADCL)b. 7 Differential Channel hanya pada kemasan Thin Quad Flat Pack (TQFP)c. 2 Differential Channel dengan Programmable Gain4. Antarmuka Serial Peripheral Interface (SPI) Bus5. Watchdog Timer dengan Oscillatotr Internal6. On-chip Analog ComparatorNon-volatile program memory2.1.1 Konfigurasi Pin AVR ATMega 32

Gambar 2.1 Konfigurasi PIN AVR ATMega 32Dari gambar diatas dapat dijelaskan fungsi dari masing-masing pin ATMega 32 sebagai berikut.1. VCC merupakan pin yang berfungsi sebagai masukan catu daya.2. GND merupakan pin Ground.3. Port A (PA0 PA7) merupakan pin input/output dua arah (full duflex) dan selain itu merupakan pin masukan ADC.4. Port B (PB0 PB7) merupakan pin input/output dua arah (full duflex) dan selain itu merupakan pin khusus, seperti dapat dilihat pada table di bawah ini.Tabel 2.1 Fungsi Khusus port BPinFungsi Khusus

PB0XCK (USART External Clock Input/Output) T0 (Timer/Counter) External Counter Input)

PB1TI (Timer/Counter 1 External Counter Input)

PB2INT2 (External Interupt 2 Input) AIN0 (Analog Comparator Negative Input)

PB3OC0 (Timer/Counter0 Output Compare Macth Output) AIN1 (Analog Comparator Negative Input)

PB4SPI (Slave Select Input)

PB5MOSI (SPI Bus Master Output/Slave Input)

PB6MISO (SPI Bus Master Input/Slave Output)

PB7SCK (SPI Bus Serial Clock)

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

PC0SCL (Two-wire Serial Bus Clock Line)

PC1SDA (Two-wire Serial Bus Data Input/Output Line)

PC2TCK (Joint Test Action Group Tes Clock)

PC3TMS (JTAG Tes Mode Select)

PC4TDO (JTAG Data Output)

PC5TDI (JTAG Tes Data In)

PC6TOSC1 (Timer Oscillator pin 1)

PC7TOSC2 (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 PinFungsi Khusus

PD0RXD (USART Input Pin)

PD1TXD (USART Output Pin)

PD2INTO (External Interupt 0 Input)

PD3INT1 (External Interupt 1 Input)

PD4OC1B (Timer/Counter 1 Output Compare B Marcth Output)

PD5OC1A (Timer/Counter 1 Output Compare A Marcth Output)

PD6ICP (Timer/Counter 1 Input Capture Pin)

PD7OC2 (Timer/Counter 2 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.

2.2 Dasar-Dasar Pemrograman Basic-Compiler AVRBahasa 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 Kontruksi Bahasa BASIC pada BASCOM AVRSetiap bahasa pemprograman mempunyai standar penulisan program. Konstruksi dari program bahasa BASIC harus mengikuti aturan sebagai berikut:

$regfile = header inisialisasideklarasi variabel deklarasi konstanta Do pernyataan-pernyataanLoop End

2.2.2 Pengaruh Pre-Presesor$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 = 12000000menggunakan crystal clock 12 MHz $baud = 9600komunikasi serial dengan baudrate 9600 $eeprommenggunakan fasilitas eeprom 2.2.3 Tipe DataTipe 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

2.2.4 KonstantaKonstanta 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=402.2.5 VariabelVariabel 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 underscore3. Deklarasi Deklarasi sangat diperlukan bila akan menggunakan pengenal (identifier) dalam suatu program.

1. 2. 2.2 2.2.6 Deklarasi VariabelBentuk umum pendeklarasian suatu variable adalah Dimnama_variabel AS tipe_dataContoh :Dim x As Integerdeklarasi x bertipe integer

2.2.7 Deklarasi KonstanataDalam Bahasa Basic konstanta di deklarasikan langsung. Contohnya :S = Hello worldAssign string

2.2.8 Deklarasi FungsiFungsi 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 BuatanFungsi yang perlu dideklarasikan terlebih dahulu adalah fungsi yang dibuat oleh programmer. Bentuk umum deklarasi sebuah fungsi adalah :Sub Test (byval variabel As type) Contohnya :SubPwm(byval Kiri As Integer , Byval Kanan As Integer)

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 Greater than X > Y = Y

2.2.12 Operator LogikaOperator 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.2.13. Permyataan 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: 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.14 Pernyataan Kondisional (SELECT-CASE-END SELECT)Pernyataan ini digunakan untuk melakukan pengambilan keputusan terhadap banyak kondisi. Konstruksi penulisan pernyatan SELECT-CASE-END SELECT pada bahasa BASIC ialah sebagai berikut: SELECT CASE var CASE kondisi1 : blok perintah1CASE kondisi2 : blok perintah2CASE kondisi3 : blok perintah3CASE kondisi4 : blok perintah4CASE kondisi5 : blok perintah5CASE kondisin : blok perintahnEND SELECT akhir dari pernyatan SELECT CASE

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

2.3 Modul Mikrokontroler Berbasis ATMEGA 32Modul 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.4.

Gambar 2.4 Komponen Tambahan yang difungsikan sebagai I/O dari MikrokontrolerKeterangan :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. 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 mengatursensitifitas dari pembacaan ADC. 16. LCD 2x16 : digunakan sebagai media display dari modul mikrokontroler.

Konfigurasi PIN mikrokontroler pada Modul1. LCD a. RS= PORTA.3 b. E= PORTA.4 c. Db4= PORTC.3 d. Db5= PORTC.2 e. Db6= PORTC.1 f. Db7= PORT

2. SRF04 a. Triger= PORTD.3 (pada mikro di config sebagai output) b. Echo= PORTD.4 (pada mikro diconfig sebagai input)

3. RELAY a. Relay 1 (led merah)= PORTC.7 b. Relay 2 (led hijau)= PORTC.6 4. POTENSIOMETER= PORTA.0 (ADC chanel 0) 5. SERVO= PORTB.0 6. LM35(sensor suhu)= PORTA.1 (ADC chanel 1) 7. MOTOR DC= a. PIN pengatur kecepatan= PORTD.5 (Digunakan sebagai PWM) b. PIN Direksi putaran= PORTD.6 8. PUSH BUTTON a. Switch 1= PORTB.1 (di configure sebagai input) b. Switch 2= PORTB.2 (di configure sebagai input) c. Switch 3= PORTB.3 (di configure sebagai input) d. Switch 4= PORTB.4 (di configure sebagai input)

BAB IIICARA KERJA

3.1 Percobaan 1 Mengakses sensor SRF04 (sensor ultrasonik) untuk pengukuran jarakLangkah 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 2.5 Tabel Percobaan SRF04Percobaan SRF04

NoJarak pada penggarisNilai waktuHasill 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

3.2 Percobaan 2 Menampilkan Nilai ADC dengan Potensiometer dan LM35Langkah 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 2.6 Tabel Percobaan SRF04Percobaan ADC dengan LM35 & potensiometer

Potensiometer

NoHambatan pada AVONilai ADC pada LCD

1.200 ohm

2.500 ohm

3.750 ohm

4.900 ohm

5.Full Putar

Sensor Suhu LM 35

NoPengujianNilai ADC pada LCD

1.Keadaan Normal

2.Dipegang dengan Jari

3.Didekatkan dengan Api

3.3 Perconaan 3 Mengatur Sudut Putaran Motor ServoLangkah 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 2.7 Tabel Percobaan Putaran motor DCPercobaan Motor DC

NoPWM pada ProgramRPM

1.50

2.100

3.140

4.170

5.200

6.230

7.225