DEPARTEMEN PENDIDIKAN NASIONAL UNIVERSITAS ANDALAS FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO LABORATORIUM ELEKTRONIKA INDUSTRI
LAPORAN AKHIR PRAKTIKUM
Mikroprosesor dan Antarmuka
MODUL
4
JUDUL
Mikrokontroler Arduino Mega 2560
NAMA
:
Faiz Iman Djufri
NO BP
:
0910952040
TGL PRKT
:
13 Februari 2013
KELOMPOK
:
8
REKAN KERJA
:
Deden Rinanda Putra Eko Oktaviandri Orry Vernanda
ASISTEN
:
Wiskarni Maisa
PADANG 2013
MODUL IV Mikrokontroler Arduino Mega 2560
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
II. Alat dan Bahan a. buah PC b. 1 mikrokontroler arduino c. 1 buah trainer board d. 1 kabel USB A-B
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 el ektronik.
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
Arduino Mega 2560
b. Bagian-Bagian Dari Arduino Mega 2560 Soket USB
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);
digitalWrite(19, LOW); digitalWrite(20, LOW); digitalWrite(21, LOW); delay(1000); */ }
c. Upload program dan amati hasil yang terjadi.
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
3. Input Switch pada Arduino
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};
// inisialisasi pin
int i;
// i bilangan integer
void setup()
//program utama
{ for(i=0;i<8;i++)
//pengulangan for
{ pinMode(ledpins[i], OUTPUT);
//pin yang digunakan sebagai OUTPUT
} } void loop()
//program looping
{ ///* for(i=0;i<8;i++)
//pengulangan for
{ digitalWrite(ledpins[i], HIGH);
// pin i berlogika high
} delay(1000);
//delay sebesar 1000 ms
for(i=0;i<8;i++)
//pengulangan for
{ digitalWrite(ledpins[i], LOW);
// pin i berlogika low
} delay(1000);
//delay sebesar 1000 ms
//*/ /* digitalWrite(14, HIGH);
//LED pada PIN 14 On dengan logika HIGH
digitalWrite(15, HIGH);
//LED pada PIN 15 On dengan logika HIGH
digitalWrite(16, HIGH);
//LED pada PIN 16 On dengan logika HIGH
digitalWrite(17, HIGH);
//LED pada PIN 17 On dengan logika HIGH
digitalWrite(18, HIGH);
//LED pada PIN 18 On dengan logika HIGH
digitalWrite(19, HIGH);
//LED pada PIN 19 On dengan logika HIGH
digitalWrite(20, HIGH);
//LED pada PIN 20 On dengan logika HIGH
digitalWrite(21, HIGH);
//LED pada PIN 21 On dengan logika HIGH
delay(1000);
// delay sebesar 1000 ms
digitalWrite(14, LOW);
// LED pada PIN 14 Off dengan logika LOW
digitalWrite(15, LOW);
// LED pada PIN 15 Off dengan logika LOW
digitalWrite(16, LOW);
// LED pada PIN 16 Off dengan logika LOW
digitalWrite(17, LOW);
// LED pada PIN 17 Off dengan logika LOW
digitalWrite(18, LOW);
// LED pada PIN 18 Off dengan logika LOW
digitalWrite(19, LOW);
// LED pada PIN 19 Off dengan logika LOW
digitalWrite(20, LOW);
// LED pada PIN 20 Off dengan logika LOW
digitalWrite(21, LOW);
// LED pada PIN 21 Off dengan logika LOW
delay(1000);
//delay sebesar 1000 ms
*/ }
o
Running LED
int ledpins[]={14,15,16,17,18,19,20,21};
//inisialisasi pin
int i;
//inisialisasi
void setup()
//program utama
{
for (i=0; i<8; i++)
//program looping untuk LED
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()
//program looping
{ for (i=0; i<8; i++)
//program looping untuk LED
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);
// delay sebesar 100 ms
digitalWrite(ledpins[i], LOW);
// LED Off dengan kondisi LOW
} } o
Input Switch pada Arduino
int leds[]={14,15,16,17,18,19,20,21};
// inisialisasi led
int switchs[]={23,25,27,29,31,33,35,37};
// inisialisasi switchs
int i;
//inisialisasi
int buttonstate = 0;
//buttonstate merupakan bilangan integer dengan nilai awal 0
void setup()
//program utama
{ for (i=0; i<8; i++)
//program looping yang
dimulai dari 0 s/d 8 dengan kenaikan 1 dari kondisi awal
{ pinMode(leds[i], OUTPUT);
//pin mode (led) sebagi output
pinMode(switchs[i], INPUT);
//pin mode switch sebagai input
} } void loop()
//program looping
{ for (i=0; i<8; i++)
//program looping yang
dimulai dari 0 s/d 8 dengan kenaikan 1 dari kondisi awal { buttonstate=digitalRead(switchs[i]);
//buttonstate sebagai switchs
if(buttonstate==HIGH)
//jika buttonstate HIGH
{ digitalWrite(leds[i], HIGH);
//Led on dengan kondisi HIGH
} else
//jika tidak
{ digitalWrite(leds[i], LOW);
//Led off dengan kondisi LOW
} } }
b. FLOWCHART o
LED On/Off
Start
Inisiaslisasi pin pada Arduino (4,5,6,7,8,9,10,11)
Pin Arduino logika HIGH
LED hidup
Ya
Pin Arduino logika LOW
LED mati
Tidak
Cabut supply atau buat program baru
Finish
o
Running LED
Start
Inisiaslisasi pin pada Arduino (4,5,6,7,8,9,10,11)
Pin Arduino logika HIGH
LED hidup
Delay 100 ms Ya
Pin Arduino logika LOW
Delay 100 ms Tidak Cabut supply atau buat program baru
Finish
LED mati
o
Input Switchs Pada Arduino
Start
Inisialisasi pin arduino (12,11,5,4,3,2)
datasheet LCD (20,4)
Delay 500 ms
Teks pada LCD kosong Ya
Menulis teks yang akan ditampilkan pada LCD dari serial
Tidak Cabut supply atau buat program baru
Finish
Tugas Tambahan o
Running LED dari Kanan Ke Kiri
Script Program
int ledpins[]={14,15,16,17,18,19,20,21}; int i; void setup() {
for (i=8; i>0; i--) pinMode(ledpins[i], OUTPUT); } } void loop() { for (i=8; i>0; i--) {
digitalWrite(ledpins[i], HIGH); delay(100); digitalWrite(ledpins[i], LOW); } }
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 s uhu, sensor cahaya, dsb.
Input/Output Digital menghubungkan Arduino dengan komponen atau rangkaian digital. Misalnya LED.
b. Saran
Berdasarkan praktikum yang telah dilakukan, sara n 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
http://www.tobuku.com/docs/Arduino-Pengenalan.pdf Diakses pada tanggal 14 Februari 2013 Banzi, Massimo. 2008. Gettting Started with Arduino. O’Reilly.
[pdf].