LAPORAN AKHIR
PRAKTIKUM MODUL JUDUL Mikroprosesor dan Antarmuka 4 Mikrokontroler Arduino Mega 2560
: : : : :
Faiz Iman Djufri 0910952040 13 Februari 2013 8 Deden Rinanda Putra Eko Oktaviandri Orry Vernanda
ASISTEN
Wiskarni Maisa
PADANG 2013
I.
Tujuan
a. Mempelajari aplikasi mikrokontroler Arduino pada LED dan Switch b. Mempelajari aplikasi mikrokontroler arduino pada LCD c. Mempelajari aplikasi mikrokontroler arduino pada Dotmatriks
III. Dasar Teori a. Sistem Mikrokontroller Arduino merupakan pengendali mikro single-board yang bersifat opensource, diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang. Hardwarenya memiliki prosesor Atmel AVR dan softwarenya memiliki bahasa pemrograman sendiri. Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel, yakni ATMega 8U2.
Mikrokontroler itu sendiri adalah chip atau IC (integrated circuit) yang bisa diprogram menggunakan komputer. Tujuan menanamkan program pada mikrokontroler adalah agar rangkaian elektronik dapat membaca input, memproses input tersebut dan kemudian menghasilkan output sesuai yang diinginkan. Jadi mikrokontroler bertugas sebagai otak yang mengendalikan input, proses dan output sebuah rangkaian elektronik.
Mikrokontroler ada pada perangkat elektronik di sekeliling kita. Misalnya handphone, MP3 player, DVD, televisi, AC, dll. Mikrokontroler juga dipakai untuk keperluan mengendalikan robot. Baik robot mainan, maupun robot industri.
Karena komponen utama Arduino adalah mikrokontroler, maka Arduino pun dapat diprogram menggunakan komputer sesuai kebutuhan kita. Kegunaan Arduino tergantung kepada kita yang membuat program. Arduino bisa digunakan untuk mengontrol LED, bisa juga digunakan untuk mengontrol helikopter.
Beberapa contoh aplikasi dari ardiuno adalah MP3 player, pengontrol motor, mesin CNC, monitor kelembaban tanah, pengukur jarak, penggerak servo, balon udara, pengontrol suhu, monitor energi, statiun cuaca, pembaca RFID, drum elektronik, GPS logger, & monitoring bensin.
Secara umum Arduino terdiri dari dua bagian yaitu: Hardware adalah papan input/output (I/O). Sofware adalah software Arduino meliputi IDE utnuk menulis program, driver untuk koneksi dengan komputer, contoh program dan library untuk pengembangan program.
Komponen utama dalam Arduino adalah sebuah mikrokontroller 8 bit dengan merk Atmega yang dibuat oleh perusahaan Atmel Coorporation. Berbagai papan Arduino menggunakan tipe Atmega yang berbeda-beda tergantung spesifikasinya, sebagai contoh Arduino Uno menggunakan Atmega 328, sedangkan Arduino Mega 1280 dan Mega 2560 yang lebih canggih menggunakan ATmega 1280 dan ATmega 2560.
Pada pratikum kali ini Arduino yang kita gunakan adalah arduino mega yang menggunakan chip AVR ATmega 2560 yang memiliki fasilitas
PWM, komunikasi serial, ADC, timer, interupt, SPI dan I2C. Sehingga yang berbeda-beda.
Bahasa pemograman yang digunakan adalah bahasa C. Tetapi bahasa ini sudah dipermudah menggunakan fungsi-fungsi yang sederhana sehingga lebih mudah dalam memprogramnya.
Beberapa fitur dari Arduino Mega 2560 ini adalah : Microcontroller ATmega2560 Operating Voltage 5V Input Voltage (recommended) 7-12V Input Voltage (limits) 6-20V Digital I/O Pins 54 (of which 15 provide PWM output) Analog Input Pins 16 DC Current per I/O Pin 40 mA DC Current for 3.3V Pin 50 mA Flash Memory 256 KB of which 8 KB used by bootloader SRAM 8 KB EEPROM 4 KB Clock Speed 16 MHz
Soket USB adalah soket untuk kabel USB yang disambungkan ke komputer atau laptop. Berfungsi untuk mengirimkan program ke Arduino dan juga sebagai port komunikasi serial. Input / Output Digital Input/Output Digital atau digital pin adalah pin-pin untuk
menghubungkan Arduino dengan komponen atau rangkaian digital. Pada Arduino Mega terdapat 53 I/O Digital dimana 16 diantaranya dapat dijadikan sebagai output PWM. Input Analog Input Analog atau analog pin adalah pin-pin yang berfungsi untuk menerima sinyal dari komponen atau rangkaian analog. Misalnya dari potensiometer, sensor suhu, sensor cahaya, dsb. Terdapat 16 input analog pada arduino mega 2560. Pin POWER Pin-pin catu daya adalah pin yang memberikan tegangan untuk komponen atau rangkaian yang dihubungkan dengan Arduino. Pada bagian catu daya ini terdapat juga pin Vin dan Reset. Vin digunakan untuk memberikan tegangan langsung kepada Arduino tanpa melalui tegangan USB atau adaptor. Tombol RESET Reset adalah pin untuk memberikan sinyal reset melaui tombol atau rangkaian eksternal. Jack Baterai/Adaptor Soket baterai atau adaptor digunakan untuk menyuplai Arduino dengan tegangan dari baterai/adaptor 9V pada saat Arduino sedang tidak disambungkan ke komputer. Kalau Arduino sedang
disambungkan ke komputer melalui USB, Arduino mendapatkan suplai tegangan dari USB, jadi tidak perlu memasang baterai/adaptor saat memprogram Arduino.
IV. Prosedur Percobaan 1. LED ON/OFF a. Hubungkan pin digital 14, 15, 16, 17, 18, 19, 20, dan 21 ke pin OUTPUT pada trainer board . b. Tulis program seperti pada listing program di bawah ini .
Listing program: int ledpins[]={14,15,16,17,18,19,20,21}; int i; void setup() { for(i=0;i<8;i++) { pinMode(ledpins[i], OUTPUT); } } void loop() { ///* for(i=0;i<8;i++) { digitalWrite(ledpins[i], HIGH); } delay(1000); for(i=0;i<8;i++) { digitalWrite(ledpins[i], LOW); } delay(1000); //*/ /* digitalWrite(14, HIGH); digitalWrite(15, HIGH); digitalWrite(16, HIGH); digitalWrite(17, HIGH); digitalWrite(18, HIGH); digitalWrite(19, HIGH); digitalWrite(20, HIGH); digitalWrite(21, HIGH); delay(1000); digitalWrite(14, LOW); digitalWrite(15, LOW); digitalWrite(16, LOW); digitalWrite(17, LOW); digitalWrite(18, LOW);
2. LED Running a. Hubungkan pin digital 14, 15, 16, 17, 18, 19, 20, dan 21 ke pin OUTPUT pada trainer board b. Tulis program seperti pada listing program di bawah ini Listing program: int ledpins[]={14,15,16,17,18,19,20,21}; int i; void setup() { for (i=0; i<8; i++) { pinMode(ledpins[i], OUTPUT); } } void loop() { for (i=0; i<8; i++) { digitalWrite(ledpins[i], HIGH); delay(100); digitalWrite(ledpins[i], LOW); } } c. Upload program dan amati hasil yang terjadi
a. Hubungkan pin digital 14, 15, 16, 17, 18, 19, 20, dan 21 ke pin OUTPUT pada trainer board b. Hubungkan pin digital 23, 25, 27, 29, 31, 33, 35, dan 37 ke pin INPUT pada trainer board c. Tulis program seperti pada listing program di bawah ini
Listing Program: int leds[]={14,15,16,17,18,19,20,21}; int switchs[]={23,25,27,29,31,33,35,37}; int i; int buttonstate = 0; void setup() { for (i=0; i<8; i++) { pinMode(leds[i], OUTPUT); pinMode(switchs[i], INPUT); } } void loop() { for (i=0; i<8; i++) { buttonstate=digitalRead(switchs[i]); if(buttonstate==HIGH) { digitalWrite(leds[i], HIGH); } else { digitalWrite(leds[i], LOW); } } } d. Upload program dan amati hasil yang terjadi
ANALISA a. Menjelaskan Listing Program o LED On/Off int ledpins[]={14,15,16,17,18,19,20,21}; int i; void setup() { for(i=0;i<8;i++) { pinMode(ledpins[i], OUTPUT); //pin yang digunakan sebagai OUTPUT } } void loop() { ///* for(i=0;i<8;i++) { digitalWrite(ledpins[i], HIGH); } delay(1000); for(i=0;i<8;i++) { digitalWrite(ledpins[i], LOW); } delay(1000); //*/ /* digitalWrite(14, HIGH); digitalWrite(15, HIGH); digitalWrite(16, HIGH); //LED pada PIN 14 On dengan logika HIGH //LED pada PIN 15 On dengan logika HIGH //LED pada PIN 16 On dengan logika HIGH //delay sebesar 1000 ms // pin i berlogika low //delay sebesar 1000 ms //pengulangan for // pin i berlogika high //pengulangan for //program looping //pengulangan for // inisialisasi pin // i bilangan integer //program utama
digitalWrite(17, HIGH); digitalWrite(18, HIGH); digitalWrite(19, HIGH); digitalWrite(20, HIGH); digitalWrite(21, HIGH); delay(1000); digitalWrite(14, LOW);
//LED pada PIN 17 On dengan logika HIGH //LED pada PIN 18 On dengan logika HIGH //LED pada PIN 19 On dengan logika HIGH //LED pada PIN 20 On dengan logika HIGH //LED pada PIN 21 On dengan logika HIGH // delay sebesar 1000 ms // LED pada PIN 14 Off dengan logika LOW
digitalWrite(15, LOW);
digitalWrite(16, LOW);
digitalWrite(17, LOW);
digitalWrite(18, LOW);
digitalWrite(19, LOW);
digitalWrite(20, LOW);
digitalWrite(21, LOW);
On yang dimulai dari 0 s/d 8 dengan kenaikan 1 dari kondisi awal { pinMode(ledpins[i], OUTPUT); //led pins dengan inisialisasi [i] sebagai OUTPUT } } void loop() { for (i=0; i<8; i++) //program looping untuk LED //program looping
On yang dimulai dari 0 s/d 8 dengan kenaikan 1 dari kondisi awal { digitalWrite(ledpins[i], HIGH); //LED On dengan kondisi HIGH delay(100); digitalWrite(ledpins[i], LOW); // delay sebesar 100 ms // LED Off dengan kondisi LOW } } o Input Switch pada Arduino int leds[]={14,15,16,17,18,19,20,21}; int switchs[]={23,25,27,29,31,33,35,37}; int i; int buttonstate = 0; // inisialisasi led // inisialisasi switchs //inisialisasi //buttonstate merupakan bilangan integer dengan nilai awal 0 void setup() { for (i=0; i<8; i++) //program looping yang //program utama
{ pinMode(leds[i], OUTPUT); pinMode(switchs[i], INPUT); //pin mode (led) sebagi output //pin mode switch sebagai input } } void loop() { for (i=0; i<8; i++) //program looping yang //program looping
dimulai dari 0 s/d 8 dengan kenaikan 1 dari kondisi awal { buttonstate=digitalRead(switchs[i]); if(buttonstate==HIGH) { digitalWrite(leds[i], HIGH); //Led on dengan kondisi HIGH } else { digitalWrite(leds[i], LOW); //Led off dengan kondisi LOW } } } //jika tidak //buttonstate sebagai switchs //jika buttonstate HIGH
Start
LED hidup
Pin Arduino logika LOW Tidak Cabut supply atau buat program baru
LED mati
Finish
o Running LED
Start
LED hidup
Finish
Start
Delay 500 ms
Finish
KESIMPULAN DAN SARAN a. Kesimpulan Mikrokontroler arduino tidak memerlukan downloader tertentu hanya menggunakan slot USB. Arduino terdiri atas input (pin) analog dan digital : Input Analog berfungsi untuk menerima sinyal dari komponen atau rangkaian analog. Misalnya dari potensiometer, sensor suhu, sensor cahaya, dsb. Input/Output Digital menghubungkan Arduino dengan komponen atau rangkaian digital. Misalnya LED.
b. Saran Berdasarkan praktikum yang telah dilakukan, saran untuk praktikum selanjutnya sebagai berikut : a. Pratikam memahami dan mengikuti persamaan dengan baik. b. Praktikan dapat lebih memperhatikan algoritma dan cara kerja rangkaian. c. Jika ada hal yang kurang dipahami tanyakan kepada asisten yang mengawas diharapkan untuk menjelaskan lebih rinci.
DAFTAR KEPUSTAKAAN
Tim Asisten Laboratorium Elektronika Industri. 2013. Modul Praktikum Mikroprosesor dan AntarMuka. Padang: Laboratorium Elektronika Industri JTE FT-UA. Djuandi, Feri. 2011. Pengenalan Arduino [pdf].
http://www.tobuku.com/docs/Arduino-Pengenalan.pdf Diakses pada tanggal 14 Februari 2013 Banzi, Massimo. 2008. Gettting Started with Arduino. OReilly.