DEPARTEMEN PENDIDIKAN NASIONAL DEPARTEMEN PENDIDIKAN NASIONAL
UNIVERSITAS ANDALAS UNIVERSITAS ANDALAS
FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO
LABORATORIUM ELEKTRONIKA INDUSTRI LABORATORIUM ELEKTRONIKA INDUSTRI
LAPORAN AKHIR
LAPORAN AKHIR
NAMA
NAMA : : Faiz Faiz Iman Iman DjufriDjufri
NO NO BP BP : : 09109520400910952040 TGL TGL PRKT PRKT : : 13 13 Februari Februari 20132013 KELOMPOK KELOMPOK : : 88 REKAN
REKAN KERJA KERJA : : Deden Deden Rinanda Rinanda PutraPutra Eko Oktaviandri Eko Oktaviandri Orry Vernanda Orry Vernanda
ASISTEN
ASISTEN : : Wiskarni Wiskarni MaisaMaisa
PADANG PADANG
2013 2013 PRAKTIKUM
PRAKTIKUM Mikroprosesor Mikroprosesor dan dan AntarmukaAntarmuka
MODUL 4
MODUL 4
JUDUL
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 open-source, 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
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
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); } } }
ANALISA
a. Menjelaskan Listing Program
oLED 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
Pin Arduino logika LOW
Cabut supply atau buat program baru Finish LED hidup LED mati Ya Tidak o Running LED Start
Inisiaslisasi pin pada Arduino (4,5,6,7,8,9,10,11)
Pin Arduino logika HIGH
Delay 100 ms
Cabut supply atau buat program baru
Finish
LED hidup
LED mati Delay 100 ms
Pin Arduino logika LOW Ya
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
Menulis teks yang akan ditampilkan pada LCD dari
serial
Cabut supply atau buat program baru
Finish Ya
Tidak
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, 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