modul pelatihan

24
MODUL PELATIHAN MIKROKONTROLLER KBK ELEKTRONIKA DAN INSTRUMENTASI JURUSAN FISIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS TADULAKO 2013 1

Upload: pipi-jeje

Post on 21-Dec-2015

46 views

Category:

Documents


4 download

DESCRIPTION

hjkhkjhk

TRANSCRIPT

MODUL

PELATIHAN MIKROKONTROLLER

KBK ELEKTRONIKA DAN INSTRUMENTASI

JURUSAN FISIKA

FAKULTAS MATEMATIKA DAN ILMU

PENGETAHUAN ALAM

UNIVERSITAS TADULAKO

2013

1. Memulai Menggunakan Arduino dengan WindowsDokumen ini akan menjelaskan bagaimana caranya menghubungkan board Arduino dengan komputer dan meng-upload program (sketch) pertama anda.

1

1. Dapatkan board Arduino dan kabel USBPada tutorial ini, kami mengasumsikan anda menggunakan sebuah Arduino Uno, Arduino Duemilanove, Nano atau Diecimila. Anda juga membutuhkan sebuah kabel USB standar (A - B), sama dengan kabel yang anda gunakan untuk printer USB.

Gambar 1. Arduino Board Beserta Kabel Usb2. Download Software Arduino

Dapatkan versi terakhir dari halaman download Arduino.Setelah download selesai, ekstrak file yang telah di-download tadi. Pastikan anda tidak merubah strukturfolder. Klik dua kali pada folder untuk membukanya. Terdapat beberapa file dan sub-folder di dalamnya.

3. Hubungkan BoardArduino Uno, Mega, Deumilanove dan Arduino Nano akan menarik sumber daya dari port USB ataupower supply eksternal. Hubungkan board Arduino dengan komputer menggunakan kabel USB. LED berwarna hijau (berlabel PWR) akan hidup.

4. Instalasi DriversInstalasi driver untuk Arduino Uno dengan Windows 7, Vista atau XP: Hubungkan board anda dan tunggu Windows untuk memulai proses

instalasi driver. Setelahbeberapa saat, proses ini akan gagal, walaupun sudah melakukan yang terbaik.

Klik pada Start Menu dan buka Control Panel Di dalam Control Panel, masuk ke menu System and Security.

Kemudian klik pada System. Setelah tampilan System muncul, buka Device Manager. Lihat pada bagian Ports (COM & LPT). Anda akan melihat sebuah

port terbuka dengan nama"Arduino Uno (COMxx)" Klik kanan pada port "Arduino Uno (COMxx)" dan pilih opsi "Update

Driver Software". Kemudian, pilih opsi "Browse my computer for Driver software".

2

Terakhir, masuk dan pilih file driver Uno, dengan nama "ArduinoUNO.inf", terletak di dalamfolder "Drivers" pada Software Arduino yang telah di-download tadi. Windows akan meneruskan instalasi driver.Instalasi driver untuk Arduino Duemilanove, Nano atau Diecimila dengan Windows 7, Vista dan XP:Ketika anda menghubungkan board, Windows seharusnya memulai proses instalasi driver (ini apabila anda belum pernah menggunakan komputer tersebut dengan board Arduino sebelumnya). Pada Windows Vista, driver akan otomatis di-download dan diinstalasi. Pada Windows XP, wizard Add New Hardware akan muncul:

Ketika ditanya Can Windows connect to Windows Update to search forsoftware? pilih No, not this time. Klik next.

Pilih Install from a list or specific location (Advanced) dan klik next. Pastikan bahwa Search for the best driver in these location

dicentang; Seach removablemedia jangan dicentang;Include this location in thesearch dicentang dan masuk kedirektori drivers/FTDI USB Drivers pada folder software Arduino. (Versi terakhir dari driver ini dapat ditemukan padasitus FTDI). Klik next.

Wizard akan mencari driver dan kemudian memberitahu bahwa sebuah "USB Serial Converter"telah ditemukan. Klik finish.

Wizard hardware baru akan muncul kembali. Ulangi langkah yang sama seperti sebelumnyadengan pilihan yang sama dan lokasi folder yang sama. Kali ini sebuah " USB Port Serial" akan ditemukan. Anda dapat memastikan apakah driver sudah ter-install dengan membuka Windows Device Manager (di tab Hardware pada Control Panel - System). Cari "USB Serial Port" pada bagian Ports, itulah board Arduino.

5. Jalankan Aplikasi ArduinoKlik dua kali pada aplikasi Arduino (arduino.exe).

6. Buka contoh BlinkBuka contoh program LED Blink: File > Examples > 1.Basics > Blink.

3

Gambar 2. Contoh Program LED

7. Pilih board andaAnda perlu memilih opsi pada menu Tools > Board yang sesuai dengan board Arduino yang dipakai.

4

Gambar 3. Menu Board Arduino

8. Pilih serial port andaPilih port serial yang digunakan oleh board Arduino anda pada menu Tools > Serial Port. Biasanya iniadalah COM3 atau yang lebih tinggi (COM1 dan COM2 biasanya sudah direservasi untuk serial porthardware). Untuk mencari tahu, anda dapat melepaskan koneksi ke board Arduino dan buka kembalimenu tadi; pilihan yang menghilang harusnya adalah board Arduino anda. Koneksikan kembali board-nya dan pilih serial port yang sesuai.

9. Upload programSekarang hanya tinggal klik tombol "Upload" pada software. Tunggu beberapa saat - anda dapatmelihat led TX dan RX pada board berkelap-kelip. Bila upload berhasil akan ada pesan "Done uploading"yang muncul pada status bar.

Gambar 4. Menu Bar Uploud Program Beberapa saat setelah upload selesai, anda dapat melihat pin 13 (L) LED pada board mulai berkelap-kelip(warna oranye). Jika benar, selamat! Anda sudah berhasil menjalankan Arduino dan program-nya

5

dengansukses.

2. Tutorial Arduino - Blinking LED Setelah pada tutorial sebelumnya dijelaskan secara singkat tentang bahasa pemrograman Arduino, maka sekarang kita coba penerapannya. Pada pelajaran pertama pemrograman dengan bahasa apapun (html, php, dll) biasanya kita kenal program "Hello world". Nah pada Arduino, program "Hello world" ini adalah "Blinking LED". LED (light emitting diode) adalah komponen dasar yang sering digunakan pada rangkaian elektronik. Karena bentuknya berupa lampu kecil maka kita dapat segera dapat melihat hasil program kita secara visual. LED pada program kali ini akan dibuat menjadi berkelap-kelip (blinking) dengan durasi waktu yang tertentu dan dilakukan berulang terus menerus. Untuk memulai, segera siapkan komponen yang dibutuhkan seperti tertera di bawah ini dan pasang pada breadboard. Setelah semua komponen terpasang maka kita akan meng-upload programnya. Hubungkan Arduino anda ke komputer dengan kabel USB. Kemudian pilih port yang sesuai pada software Arduino di menu Tools > Serial Port > COMXX (sesuai dengan comm port Arduino anda). Lalu upload program tersebut dengan menggunakan menu File > Upload I/O Board (ctrl+U). Rangkaian

Komponen yang diperlukan: 1 buah LED

1 buah resistor

Kabel jumper Berikut ini adalah gambar simulasi penempatan komponen pada breadboard dan board Arduino. Gambar simulasi ini menggunakan

software Fritzing yang bisa didapat di sini. Blinking LED using Arduino

Gambar 10. Blinking LED menggunakan arduino

6

Kode Pemrograman Di bawah ini adalah kode pemrograman yang digunakan untuk blinking LED. Tidak perlu mengetiknya karena sudah tersedia pada software Arduino. Klik menu File > Examples > 1.Basic > Blink. /* Blink Turns on an LED on for one second, then off for one second, repeatedly.

This example code is in the public domain. */

void setup() { // initialize the digital pin as an output. // Pin 13 has an LED connected on most Arduino boards: pinMode(13, OUTPUT); }

void loop() { digitalWrite(13, HIGH); // set the LED on delay(1000); // wait for a second digitalWrite(13, LOW); // set the LED off delay(1000); // wait for a second}

Gambar 9. Rangkaian Blinking LED

3. Tutorial Arduino – LCD 16x2

7

LCD (Liquid Crystal Display) adalah suatu jenis media tampilan yang menggunakan kristal cair sebagai penampil utama. LCD sudah digunakan di berbagai bidang, misalnya dalam alat-alat elektronik, seperti televisi, kalkulator ataupun layar komputer. Pada Percobaan kali ini adalah dengan menggunakan LCD 16x2 yang artinya LCD tersebut terdiri dari 16 kolom dan 2 baris karakter (tulisan). yang perlu di persiapkan adalah sebagai berikut LCD 16x2  Arduino UNO (Type Lain)  Kabel dan Konektor

 Gambar 13. LCD 16 X 2

Tabel 1. pin dari LCD 16 X 2

No Kaki/Pin

Nama Keterangan

1 VCC +5V

2 GND 0V

3 VEE Tegangan Kontras LCD

4 RS Register Select

5 R/W 1 = Read, 0 = Write

6 E Enable Clock LCD

7 D0 Data Bus 0

8 D1 Data Bus 1

9 D2 Data Bus 2

10 D3 Data Bus 3

11 D4 Data Bus 4

12 D5 Data Bus 5

13 D6 Data Bus 6

8

14 D7 Data Bus 7

15 AnodaTegangan backlight positif

16Katoda

tegangan backlight Negatif

Pin LCD nomor 4 (RS) merupakan Register Selector yang berfungsi untuk memilih Register Kontrol atau Register Data. Register kontrol digunakan untuk mengkonfigurasi LCD. Register Data digunakan untuk menulis data karakter ke memori display LCD. Pin LCD nomor 5 (R/W) digunakan untuk memilih aliran data apakah READ ataukah WRITE. Karena kebanyakan fungsi hanya untuk membaca data dari LCD dan hanya perlu menulis data saja ke LCD, maka kaki ini dihubungkan ke GND (WRITE). Pin LCD nomor 6 (ENABLE) digunakan untuk mengaktifkan LCD pada proses penulisan data ke Register Kontrol dan Register Data LCD. Menyambungkan LCD dengan Board Arduino

Pin RS (kaki 4) di sambungkan dengan pin arduino digital pin 12 Pin E (kaki 6) di sambungkan dengan pin arduino digital pin 11 Pin D4 (kaki 11) di sambungkan dengan pin arduino digital pin 5 Pin D5 (kaki 12) di sambungkan dengan pin arduino digital pin 4 Pin D6 (kaki 13) di sambungkan dengan pin arduino digital pin 3 Pin D7 (kaki 14) di sambungkan dengan pin arduino digital pin 2 sambungkan potensio 10 KOhm ke  +5v dan GND , dan Pin LCD 3 ke

potensiometer Pin 5 (R/W) ke Ground

9

Gambar 14. Sambungan LCD dengan Arduino Setelah semua selesai sekarang saatnya mencoba untuk programing di Arduino, pastikan instalan device arduino dengan komputer sudah tersambung.Kode Pemrograman Di bawah ini adalah kode pemrograman yang digunakan untuk LCD 16x2. Tidak perlu mengetiknya karena sudah tersedia pada software Arduino. Klik menu File > Examples > LiqiudCrystal > Display./*LiquidCrystal Library - display() and noDisplay() The circuit: * LCD RS pin to digital pin 12 * LCD Enable pin to digital pin 11 * LCD D4 pin to digital pin 5 * LCD D5 pin to digital pin 4 * LCD D6 pin to digital pin 3 * LCD D7 pin to digital pin 2 * LCD R/W pin to ground * 10K resistor: * ends to +5V and ground * wiper to LCD VO pin (pin 3)

#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pinsLiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() { // set up the LCD's number of columns and rows: lcd.begin(16, 2); // Print a message to the LCD. lcd.print("hello, world!");}

void loop() { // Turn off the display: lcd.noDisplay(); delay(500); // Turn on the display: lcd.display(); delay(500);

10

}

4. MEMULAI MIKROKONTROLER AVR DENGAN IDE CODE VISIONAVR

Setiap akan membuat program baru pada CodeVisionAVR, kita akan diarahkan untuk membuat project terlebih dahulu.

Pada menu File pilih New lalu lalu klik Project dan klik OK.

11

CodeVisionAVR akan menanyakan apakah anda akan menggunakan fasilitas CodeWizardAVR.

Fasilitas ini sangatlah berguna jika anda tidak ingin bersusah payah melakukan settingan dengan mengetik codecode tertentu yang banyak dan kompleks. Intinya terdapat tab-tab yang tinggal klik dan anda akan langsung disajikan contoh kodenya.

Contohnya jika anda ingin membuat program yang memakai eksternal interrupt maka tinggal pilih tab External IRQ pada tampilan CodeWizard. Klik pada INT 0 Enabled untuk memilih external interrupt 0 dan pilih mode pembangkitan interrupt yang ingin digunakan.

12

Mode pembangkitan eksternal interrupt terdiri dari rising edge atau falling edge atau any change. Untuk melihat code yang akan dihasilkan klik pada menu File dan pilih Program Preview.

Lihat pada code: // External Interrupt 0 service routine interrupt [EXT_INT0] void ext_int0_isr(void) { // Place your code here }

13

Jika terdapat code diatas maka anda telah mendapatkan header program yang akan dieksekusi jika terjadi trigger eksternal interrupt. Sebaliknya jika pada pertanyaan apakah akan digunakan CodeWizard anda menjawab tidak (NO), maka akan muncul window Create New Project seperti dibawah ini:

Ketik nama project yang akan dibuat dan klik save. Anda akan dihadapkan pada window Configure Project seperti:

File code yang memiliki ekstensi *.c yang akan dibuat nantinya disave pada suatu tempat dan di masukkan ke dalam project dengan mengklik Add pada tab File seperti diatas. Pada tab C Compiler akan ditemukan tab lagi didalamnya. Tab yang sering digunakan ialah tab Code Generation. Pada tab ini anda akan menentukan mikrokontroler apa dan kecepatan (speed dalam MHz) yang nantinya akan digunakan. Pilih ATmega8535 dan speed yang sesuai dengan frekuensi crystal yang akan digunakan lalu klik OK.

14

Proses coding menggunakan bahasa C belum dapat dimulai setelah mengkonfigurasi project yang dibuat. Untuk membuat file *.c klik pada menu File dan pilih source dan klik OK.

Selanjutnya akan tampil window utama dengan tampilan dibawah ini. Ingat, file masih dalam bentuk untitled.c dan belum disave. Untuk mengetahuinya dapat dilihat pada sisi kiri dimana file untitled.c terletak pada Other Files. Hal ini meyatakan pula bahwa file untitled.c belum masuk dalam project. Save dulu file untitled.c pada folder yang sama dengan file project dan beri nama yang sama.

Untuk memasukkan file *.c yang telah disave ke dalam project klik menu Project dan pilih Configure.

15

Anda akan dihadapkan kembali pada window seperti pada Configure Project diatas. Klik Add dan akan tampil window yang menayakan file *.c mana yang akan dimasukkan kedalam project. Klik OK.

Jika file *.c telah dimasukkan ke dalam project maka statusnya dapat dilihat pada bagian kiri window utama dimana file *.c terdapat pada tree project.

Kini anda siap melakukan coding dalam bahasa C di CodeVisionAVR. Melakukan proses compiling terhadap sourcecode yang sudah jadi Klik pada tombol yang ditunjukkan pada gambar dibawah. Tombol tersebut selain melakukan compiling akan mengenerate beberapa file termasuk *.hex yang akan diburn ke mikrokontroler dan file *.coff yang dapat disimulasikan pada AVR studio

Setelah proses compiling berhasil maka akan muncul window:

16

Window ini berisi informasi-informasi penting mengenai jenis mikrokontroller, speed, ukuran program, sisa space EEPROM dan FLASH, jumlah error dari code dan sebagainya.

5. MEMBUAT PROGRAM SEDERHANA PADA ATMEGA8535

Pada proyek ini anda akan membuat code sederhana yaitu memberikan nilai logika 0 atau 1 pada port output ATmega8535. Port I/O akan diset menjadi port output. Port yang sama dapat dialihkan fungsinya menjadi port input dengan mengatur DDR (Data Direction Register) dari tiap-tiap port. Layout dari tiap-tiap port dari ATmega8535 dengan packaging PDIP:

17

Konfigurasi port I/O pada ATmega8535 dapat dilakukan dengan melakukan settingan: Port I/O sebagai output: DDR diset high atau bit 1 dengan mengetikkan DDRx =1; x bisa berarti A,B,C,D (port). Penyettingan ini dilakukan dengan akses per byte pada satu port dengan delapan pin sekaligus. Misal kita ingin menjadikan PA0 menjadi port output, contoh kodenya: DDRA = 0x01; //menjadikan porta.0 menjadi port output (hex) DDRA = 0b00000001; //sama dengan diatas namun dengan bilangan bit, //kedua perintah diatas membuat port selain //porta.0 menjadi port input Untuk melakukan penyettingan terhadap satu pin saja maka dapat dilakukan dengan DDRx.y = 1; y bisa terdiri angka 0,1,...,7 (8 bit). Contoh kodenya: DDRA.0 = 1; //menjadikan porta.0 menjadi port output Memberikan keluaran high pada PA0 dilakukan dengan mengetikan kode: PORTA = 1; //porta.0 diberi logic high ‘1’ Jika ingin memberikan logic high pada lebih dari satu port ketikkan kode: PORTA = 0xAA; //porta.1,3,5,7 diberi logic high atau PORTA = 0b10101010; Penyettingan hanya terhadap satu pin saja dari satu port dapat menggunakan kode:

18

PORTA.2 = 1; //porta.2 memiliki logic high Port output pada ATmega8535 dapat memberikan arus source sebesar 20 mA. Arus ini cukup untuk menyalakan LED sedang. Arus ini dapat terjadi karena AVR telah memiliki internal pull up resistor di dalamnya untuk setiap pinnya. Port I/O sebagai input: Untuk menjadikan port I/O menjadi port output DDR diset low atau ‘0’. Ketikkan kode DDRA.0 = 0; //porta.0 menjadi port input Untuk mengambil data dari port input kita gunakan perintah PINA . Akses byte atau per bit dari port input sama dengan penjelasan pada DDR dan port output diatas. Contoh dari penggunaan perintah PINA :if (PINA.0 == 1) { PORTA.2 = 1; } // jika pin A0 = 1, maka port A2 diberi logic high Port input dapat di pullup dengan menambahkan perintah PORT setelah DDR seperti pada contoh dibawah ini: DDRA.0 = 0; PORTA.0 = 1; //membuat porta.0 sebagai input dan di pullup Contoh program kecil: #include <mega8535.h>void main(void){PORTC=0xff;DDRC=0xff;while (1) { PORTC=0b11110000;};}

6. TUTORIAL AVR ATMEGA - LCD

Untuk menggunakan LCD, buatlah project baru dengan pengaturan seperti gambar berikut.

19

Kemudian pada progam editor akan tampil kode seprti berikut.#include <mega8535.h>#include <lcd.h>#asm .equ __lcd_port=0x18 //port b#endasmvoid main(void){lcd_init(16); lcd_putsf(" PRATEK BENGKEL ");}Rangkaian LCD dan Mikrokontroler sepert gambar berikut

20

Pilih Port Untuk LCD

Fungsi fungsi yang dapa digunakan pada LCD adalahvoid lcd_clear(void)Membersihkan LCD dan menampilkan karakter pada posisi baris 0 dan kolum 0.void lcd_gotoxy(unsigned char x, unsigned char y)      Menampilkan karakter pada kolum x dan baris y. baris dan kolum dimulai dari 0.void lcd_putchar(char c)      Menampilkan karakter pada posisi sekarang.void lcd_puts(char *str)Menampilkan karakter pada posisi sekarang, yang di lokasikan pada RAM.void lcd_putsf(char flash *str)Menampilkan karakter pada posisi sekarang, yang di lokasikan pada FLASH.

21

Pasang sesuai PORT yang digunakan