i
Universitas Kristen Maranatha
ABSTRAK
Berbagai perangkat keras berbasis mikrokontroler kini semakin beragam. Perangkat yang inovatif, atraktif dan fungsional menjadi daya tarik dari sebuah teknologi. Maka dari itu dibuatlah perangkat penunjuk waktu yang memiliki nilai estetik namun tetap memiliki nilai fungsionalitas, yaitu LED Word Clock dengan menggunakan modul Arduino. Alat ini berfungsi sebagai penunjuk waktu, dengan indikator penunjuk waktunya berupa kata-kata. Alat ini dibuat dengan penampang dasar akrilik yang tertutup dengan stiker vinyl dan beberapa lampu LED yang akan menyala sesuai dengan penunjuk waktu. Jam yang dibuat memliki indikator jam dan menit dengan interval lima menit serta indikator AM/PM yang berupa
LED RGB yang mampu berubah warna Pengaturan waktu dapat dilakukan secara programming maupun melalui input dari empat buah push button. Setiap push button berfungsi untuk menambah dan mengurangi jam serta menambah dan
ii
Universitas Kristen Maranatha
ABSTRACT
iii
Universitas Kristen Maranatha
DAFTAR ISI
ABSTRAK i
ABSTRACT ii
KATA PENGANTAR -
DAFTAR ISI iii
DAFTAR GAMBAR v
DAFTAR TABEL viii
DAFTAR LAMPIRAN ix
BAB I PENDAHULUAN 1
1.1 Latar Belakang 1
1.2 Identifikasi Masalah 2
1.3 Tujuan 2
1.4 Pembatasan Masalah 2
1.5 Sistematika Penulisan 4
BAB II LANDASAN TEORI 6
2.1 Arduino 6
2.1.1 Pengertian 6
2.1.2 Pemrograman Arduino 6
2.1.3 Bahasa Pemrograman Arduino Berbasis C 9
2.1.4 Terminal Arduino 21
2.2 LED 23
2.3 Komunikasi Serial 24
2.4 Real Time Clock 24 2.5 Decoder 25
BAB III PERANCANGAN 26
3.1 Block Diagram 26
3.2 Flowchart 28
3.3 Perancangan Tampilan Akrilik 37
3.4 RTC(Real Time Clock) 39
3.5 Perancangan Decoder 41
iv
Universitas Kristen Maranatha
3.5.2 Skematik Decoder 42
3.6 Perancangan LED Board 43
3.7 Perancangan Push Button dan LCD 45
3.8 Skematik Rangkaian Penuh 46
3.9 Pemrograman Arduino 47
BAB IV PENGAMATAN DAN ANALISA 55
4.1 Hasil Pengamatan 55
4.1.1 Percobaan Dengan Variabel Intensitas Cahaya Ruangan 55 4.1.2 Percobaan Menambah atau Mengurangi Jam dan Menit 57
4.1.3 Pengaturan Waktu 61
4.1.4 Percobaan Jam dengan Durasi 62
4.1.5 Survey Lapangan 63
BAB V KESIMPULAN DAN SARAN 65
5.1 Kesimpulan 65
5.2 Saran 65
v
Universitas Kristen Maranatha
DAFTAR GAMBAR
Gambar 2.1 Software IDE Arduino 7
Gambar 2.2 Pengaturan Board Arduino 8
Gambar 2.3 Pengaturan Serial Port Arduino 8
Gambar 2.4 Terminal Modul Arduino Elmarino 21
Gambar 2.5 Konfigurasi ICSP Arduino 22
Gambar 2.6 Modul RTC DS1307 24
Gambar 2.7 3-to-8 Decoder 25
Gambar 3.1 Block Diagram 26
Gambar 3.2 RTC Setting Flowchart 28
Gambar 3.3 Flowchart Menyalakan Jam 29
Gambar 3.4 Flowchart Menyalakan Menit 30
Gambar 3.5 Flowchart Meng-update Data Jam dan Menit 31
Gambar 3.6 Flowchart Mengirim Data Menit dan Jam
32
Gambar 3.7 Flowchart Menerima Data Menit dan Jam 33
Gambar 3.8 Flowchart Menampilkan Data Menit dan Jam pada LCD 34
vi
Universitas Kristen Maranatha Gambar 3.10 Flowchart Mengatur AM/PM, LED “Lewat, Kurang,
Menit” 36
Gambar 3.11 Desain Tampilan Akrilik 37 Gambar 3.12 Sekat Tampilan Akrilik 38
Gambar 3.13 RTC DS1307 Module 39
Gambar 3.14 PCB Decoder 41
Gambar 3.15 Skematik Decoder 42
Gambar 3.16 LED Board Jam 43
Gambar 3.17 LED Board Menit 44
Gambar 3.18 LED Board AM/PM 44
Gambar 3.19 LCD dan Push Button 45
Gambar 3.20 Skematik Rangkaian 46
Gambar 3.21 Program Setting RTC 47
Gambar 3.22 Program Mengatur Nyala Jam 48
Gambar 3.23 Program Mengatur Nyala Menit 49
Gambar 3.24 Program Meng-update Data Jam dan Menit 50 Gambar 3.25 Program Mengirim Data Jam dan Menit 51 Gambar 3.26 Program Menerima Data Jam dan Menit 52 Gambar 3.27 Program Menampilkan Data Jam dan Menit pada LCD 53 Gambar 3.28 Program Mengatur LED “Kurang”, “Lewat”dan “Menit”
vii
Universitas Kristen Maranatha Gambar 4.1 Percobaan di Berbagai Intensitas Cahaya Ruangan
pada Siang Hari 56
Gambar 4.2 Percobaan di Berbagai Intensitas Cahaya Ruangan
pada Malam Hari 57
Gambar 4.3 Percobaan Penekanan Tombol Tambah Jam 58 Gambar 4.4 Percobaan Penekanan Tombol Kurang Jam 58 Gambar 4.5 Percobaan Penekanan Tombol Tambah Menit 59 Gambar 4.6 Percobaan Penekanan Tombol Kurang Menit 60
Gambar 4.7 Mengatur Waktu 61
viii
Universitas Kristen Maranatha
DAFTAR TABEL
Tabel 2.1 Tabel Kebenaran 3-to-8 Decoder 25
Tabel 3.1 Konfigurasi Pin Arduino 40
Tabel 4.1 Hasil Percobaan Daya Tahan 62
ix
Universitas Kristen Maranatha
DAFTAR LAMPIRAN
LAMPIRAN PROGRAM ARDUINO 1 A-1
LAMPIRAN PROGRAM ARDUINO 2 B-1
LAMPIRAN SKEMATIK RANGKAIAN C-1
L-1
LAMPIRAN A
PROGRAM ARDUINO I
// Mengatur Pin #define DAN0 4 #define DAN1 3 #define DAN2 2 #define DAN10 5 #define DAN11 6 #define DAN12 7 #define DAN13 8
// Menggunakan Library wire dan RTC #include <Wire.h> unsigned char MSB2; // 1 byte int sw1,sw2,sw3,sw4;
long z; long y=0;
// Tampilan Lampu 5 Menit void limam(){
digitalWrite(DAN0, LOW); digitalWrite(DAN1,LOW); digitalWrite(DAN2,LOW); }
// Tampilan Lampu 10 Menit void sepuluhm(){
digitalWrite(DAN0, HIGH); digitalWrite(DAN1,LOW); digitalWrite(DAN2,LOW); }
// Tampilan Lampu 15 Menit void limabelasm(){
L-2
// Tampilan Lampu 20 Menit void duapuluhm(){
digitalWrite(DAN0, HIGH); digitalWrite(DAN1,HIGH); digitalWrite(DAN2,LOW); }
// Tampilan Lampu 25 Menit void dualimam(){
digitalWrite(DAN0, LOW); digitalWrite(DAN1,LOW); digitalWrite(DAN2,HIGH); }
// Tampilan Lampu 30 Menit void tigapuluhm(){
digitalWrite(DAN0, HIGH); digitalWrite(DAN1,LOW); digitalWrite(DAN2,HIGH); }
// Tampilan Lampu Jam 1 void jam1(){
digitalWrite(DAN10,LOW); digitalWrite(DAN11,LOW); digitalWrite(DAN12,LOW); digitalWrite(DAN13,LOW); }
// Tampilan Lampu Jam 2 void jam2(){
digitalWrite(DAN10,HIGH); digitalWrite(DAN11,LOW); digitalWrite(DAN12,LOW); digitalWrite(DAN13,LOW); }
// Tampilan Lampu Jam 3 void jam3(){
digitalWrite(DAN10,LOW); digitalWrite(DAN11,HIGH); digitalWrite(DAN12,LOW); digitalWrite(DAN13,LOW); }
// Tampilan Lampu Jam 4 void jam4(){
digitalWrite(DAN10,HIGH); digitalWrite(DAN11,HIGH); digitalWrite(DAN12,LOW); digitalWrite(DAN13,LOW); }
L-3
void jam5(){
digitalWrite(DAN10,LOW); digitalWrite(DAN11,LOW); digitalWrite(DAN12,HIGH); digitalWrite(DAN13,LOW); }
// Tampilan Lampu Jam 6 void jam6(){
digitalWrite(DAN10,HIGH); digitalWrite(DAN11,LOW); digitalWrite(DAN12,HIGH); digitalWrite(DAN13,LOW); }
// Tampilan Lampu Jam 7 void jam7(){
digitalWrite(DAN10,LOW); digitalWrite(DAN11,HIGH); digitalWrite(DAN12,HIGH); digitalWrite(DAN13,LOW); }
// Tampilan Lampu Jam 8 void jam8(){
digitalWrite(DAN10,HIGH); digitalWrite(DAN11,HIGH); digitalWrite(DAN12,HIGH); digitalWrite(DAN13,LOW); }
// Tampilan Lampu Jam 9 void jam9(){
digitalWrite(DAN10,LOW); digitalWrite(DAN11,LOW); digitalWrite(DAN12,LOW); digitalWrite(DAN13,HIGH); }
// Tampilan Lampu Jam 10 void jam10(){
digitalWrite(DAN10,HIGH); digitalWrite(DAN11,LOW); digitalWrite(DAN12,LOW); digitalWrite(DAN13,HIGH); }
// Tampilan Lampu Jam 11 void jam11(){
L-4
// Tampilan Lampu Jam 12 void jam12(){
digitalWrite(DAN10,HIGH); digitalWrite(DAN11,HIGH); digitalWrite(DAN12,LOW); digitalWrite(DAN13,HIGH); }
void kirimjam(){
/* read LSB */ LSB = jam & 0xff; Serial.print(LSB); /* read MSB */
MSB = (jam >> 8) & 0xff; Serial.print(MSB); /* read LSB */ LSB2 = menit & 0xff; Serial.print(LSB2); /* read MSB */
MSB2 = (menit >> 8) & 0xff; Serial.print(MSB2);
}
void setup () { Serial.begin(9600); Wire.begin();
for (int n=2;n<9;n++)pinMode(n,OUTPUT); for(int i=9;i<13;i++)pinMode(i,INPUT); for(int i=9;i<13;i++)digitalWrite(i,HIGH); pinMode(A3,OUTPUT);
digitalWrite(A3,HIGH); pinMode(A2,OUTPUT); digitalWrite(A2,LOW); RTC.begin();
//RTC.adjust(DateTime(__DATE__, __TIME__)); }
void loop () {
DateTime now = RTC.now();
L-5 jam=(int)future.hour();
menit=(int)future.minute();
kirimjam();
// Mengatur Nyala Jam
L-6
L-7
break; case 11: case 23: jam12(); break; case 0: case 12: jam1(); break; } }
// Mengatur Nyala Menit
if (((menit>=5) && (menit<10))||((menit<=59)&& (menit>=55))){ limam();
} else
if (((menit<15) && (menit>=10))||((menit<55)&& (menit>=50))){ sepuluhm();
} else
if (((menit<20) && (menit>=15))||((menit<50)&& (menit>=45))){ limabelasm();
} else
if (((menit<25) && (menit>=20))||((menit<45)&& (menit>=40))){ duapuluhm();
} else
if (((menit<30) && (menit>=25))||((menit<40)&& (menit>=35))){ dualimam();
} else
if(menit==30)tigapuluhm(); delay(500);
L-8
LAMPIRAN B
PROGRAM ARDUINO II
// Memasukkan Library LCD #include <LiquidCrystal.h>
//Mengatur Pin #define RED 9 #define GREEN 11 #define BLUE 10 #define EN1 7 #define LBH A0 #define KRG A1 #define MNT 6 //Mengatur Pin2 LCD
LiquidCrystal lcd(13,12,5,4,3,2);
//Variabel-variabel
unsigned char MSB = 0; // 1 byte dalam Arduino unsigned char LSB = 0; // 1 byte dalam Arduino unsigned int MSBLSB = 0; // 2 bytes dalam Arduino unsigned char MSB2 = 0; // 1 byte dalam Arduino unsigned char LSB2 = 0; // 1 byte dalam Arduino unsigned int MSBLSB2 = 0; // 2 bytes dalam Arduino
void setup(){
//Mengatur Baud Rate Serial.begin(9600); //Mengeset Pin LCD lcd.begin(16,2); //Konfigurasi Pin
pinMode(MNT,OUTPUT); pinMode(EN1,OUTPUT); pinMode(A0,OUTPUT); pinMode(A1,OUTPUT); }
// Mengatur Tampilan AM void AM(){
analogWrite(RED,100); analogWrite(GREEN,0); analogWrite(BLUE,200); }
// Mengatur Tampilan PM void PM(){
L-9
}
void loop(){
if (Serial.available()) {
digitalWrite(MNT,HIGH); digitalWrite(EN1,HIGH); }
else if(menit<5){
digitalWrite(MNT,LOW); digitalWrite(EN1,LOW); digitalWrite(KRG,LOW); digitalWrite(LBH,LOW); }
delay(50);
if ((jam>=0)&&(jam<12))AM(); else PM();
delay(50);
if ((menit>=5)&&(menit<35)){ digitalWrite(LBH,HIGH); digitalWrite(KRG,LOW); }else{
digitalWrite(LBH,LOW); digitalWrite(KRG,HIGH); }
L-10
LAMPIRAN C
L-12
Mengirim data Jam dan Menit via TTL
Input RTC, Switch1, Switch2, Switch 3,
L-14 Flowchart 1.3
B
Yes
Lampu 8 ON
No
Jam = 8 atau 20
Yes
Lampu 9 ON
No
Jam = 9 atau 21
Yes
Lampu 10 ON
No
Jam = 10 atau 22
Yes
Lampu 11 ON
No
Jam = 11 atau 23
Yes
Lampu 12 ON
No
Jam = 12 atau 24
H
L-17 Flowchart 1.6
F Yes
Menit>=5 & <10 atau Menit<=59
& >=55
Lampu 5 Menit ON
No E
Yes
Menit>=10 & <15 atau Menit<55 &
>=50
Lampu 10 Menit ON No
Yes
Menit>=15 & <20 atau Menit<50 &
>=45
Lampu 15 Menit ON
No
L-18 Flowchart 1.7
Yes
Menit>=25 & <30 atau Menit<30 &
>=35
Lampu 25 Menit ON
No
Lampu 30 Menit ON
G No
Yes
Menit>=20 & <25 atau Menit<45 &
>=40
Lampu 20 Menit ON
L-19 Flowchart 2.1
No
No No
Yes Start
Serial Input
Sum Input Serial Available
Output LCD Jam&Menit
Yes No
Yes Menit
>=5
Menit ON Enable ON
MENIT OFF Enable OFF LBH OFF KRG OFF Menit
<5
L-20 Flowchart 2.2
A
No
Yes Jam >=0 &&
<12
AM PM
No
Yes Menit >=5 &&
<35
LBH ON KRG OFF
LBH OFF KRG ON
1
Universitas Kristen Maranatha
BAB I
PENDAHULUAN
1.1
Latar Belakang
Perkembangan teknologi dewasa ini menjadi amat pesat. Kemajuan jalur telekomunikasi terutama internet membuat para pengembang dapat dengan cepat melakukan perbaikan terhadap sebuah sistem. Blog-blog maupun website yang berhubungan dengan pengembangan teknologi menjadi sarana bagi pengembang teknologi untuk mengembangkan segala sumberdaya yang ada. Perbaikan di bidang software menjadi amat mudah dilakukan dengan banyaknya pengembang yang saling terhubung. Namun perkembangan ini juga terjadi pada hardware. Hardware mulai dari perangkat display yang berbasis LED maupun LCD, microprocessor, serta perangkat-perangkat komputer juga makin pesat perkembangannya.
Perkembangan teknologi microprocessor menjadi salah satu yang paling pesat perkembangannya. Perangkat berbasis microcontroller yang amat luas pengembangannya, menjadikan perangkat-perangkat ini memiliki nilai yang tinggi tidak hanya secara fungsionalitas, tapi juga perangkat yang memiliki kelebihan seperti daya yang hemat energi dan ramah lingkungan, variasi bentuk dan warna yang memiliki segi estetik dan artistik.
Pengembangan perangkat yang memiliki nilai estetik namun tetap menjaga fungsionalitas dari alat menjadi tantangan bagi setiap pengembang. Kombinasi antara perangkat sehari-hari dengan teknologi
microcontroller akan menambah nilai dari perangkat tersebut.
2
BAB I PENDAHULUAN Universitas Kristen Maranatha
estetik yang tinggi namun tetap memiliki nilai fungsional. Salah satunya adalah perangkat penunjuk waktu (jam) yang dibuat agar mampu berinteraksi dengan pengguna melalui penunjuk waktu yang memiliki nilai estetik dan fungsional secara bersamaan. Oleh karena itu, maka dibuatlah
LED Word Clock yang merupakan alat penunjuk waktu yang terdiri atas
kata-kata.
1.2 Identifikasi Masalah
1. Bagaimana membuat hardware dan software untuk perangkat LED
word clock dengan menggunakan modul Arduino ?
2. Apakah modul Arduino dapat diimplementasikan untuk membuat perangkat yang inovatif, atraktif dan fungsional ?
1.3 Tujuan
1. Membuat hardware dan software untuk perangkat LED word clock dengan menggunakan modul Arduino.
2. Mengimplementasikan modul Arduino untuk membuat perangkat yang inovatif, atraktif dan fungsional.
1.4 Pembatasan Masalah
Sistem
• Jam dibuat dengan interval waktu per 5 menit.
• Indikator AM/PM ditunjukkan melalui perbuahan warna pada LED
RGB.
3
BAB I PENDAHULUAN Universitas Kristen Maranatha
Hardware
Hardware yang digunakan terdiri atas dua, yaitu hardware
implementatif dan hardware pendukung.
Hardware implementatif terdiri atas :
2 buah Modul Arduino ElMarino dengan spesifikasi sebagai berikut:
o Prosesor : ATMega328 o Memori : 30.720 byte o Interface : Serial Port
o Power : Input Adapter 5V DC.
LED Putih dan biru 5 ml.
Decoder/Demultiplexer 4 to 16 (74HC154)
Decoder/Demultiplexer 3 to 8 (74LS138)
Inverter 6 Pin In/Out (74LS04)
Switch Push Button
Power Adapter 5V
RGB LED
Casing Acrylic dan Kayu
Kabel penghubung
Pelat PCB
RTC (Real Time Clock) DS1307 . Hardware pendukung terdiri atas :
Laptop(OS Windows 7 32 Bit)
Serial to USB Converter
Project Board
Timah dan Solder
AVO Meter
6” Wire Stripper Pliers
Potensiometer
4
BAB I PENDAHULUAN Universitas Kristen Maranatha
Software
Software yang digunakan adalah software programming Arduino
Alpha untuk memprogram microprocessor. Sedangkan sebagai software
designer akan digunakan Adobe Photoshop CS 3. Dan untuk membuat
skematik rangkaian dan PCB akan digunakan software Eagle 6.2
1.5 Sistematika Penelitian
Bab I : Pendahuluan
Berisi pembahasan mengenai garis besar yang memuat latar belakang, identifikasi masalah, tujuan, pembatasan masalah dan sistematika pembahasan dalam pembuatan “LED Word Clock
dengan Modul Arduino ”.
Bab II : Landasan Teori
Berisi penjelasan mengenai pengertian Arduino, komunikasi
serial, RTC, decoder, c programming dan menjelaskan dasar
teori-teori lain yang mendukung pembuatan aplikasi dan laporan tugas akhir ini.
Bab III: Perancangan
Merupakan pemaparan metode yang digunakan dalam perancangan hardware LED Word Clock, programming mikrokontroler dengan menggunakan Arduino Alpha.
Bab IV : Pengamatan dan Analisa
5
BAB I PENDAHULUAN Universitas Kristen Maranatha
berdasarkan beberapa jenis riset. Riset yang dilakukan dibagi menjadi riset secara langsung, dengan melakukan percobaan alat dan riset dalam bentuk questioner.
Bab V : Kesimpulan dan saran
Bab ini berisi kesimpulan setelah merancang software dan
hardware untuk word clock ini. Kesimpulan menjawab tujuan
65
Universitas Kristen Maranatha
BAB V
KESIMPULAN DAN SARAN
5.1
Kesimpulan
1. Pembuatan hardware dan software Arduino word clock berhasil dibuat.
2. Perancangan yang inovatif telah berhasil dicapai dengan adanya perbedaan arsitektur perangkat keras yang ada di pasaran dan tampilan
word clock dalam bahasa Indonesia.
3. Jam memiliki nilai fungsional yang terbatas, namun cukup untuk
memenuhi standar penunjuk waktu.
4. Berdasarkan riset dan questioner, jam yang dibuat dinilai atraktif, karena tampilan yang unik dan memberi tampilan berbeda pada setiap tampilan jam.
5. Ketepatan, kejelasan dan keakuratan dari jam word clock teruji dengan baik berdasarkan percobaan durasi dan survey lapangan.
5.2
Saran
1. Perancangan Arduino word clock sudah menampakan hasil yang baik, namun penambahan fitur seperti hari, bulan dan tahun, ataupun pengaturan alarm atau pengingat akan menambah fungsi dari jam ini. 2. Dengan adanya pengaturan waktu menambah interaksi user dengan
66
BAB V KESIMPULAN DAN SARAN Universitas Kristen Maranatha
3. Secara konstruksi hardware, alat yang dibuat belum memiliki konstruksi yang maintainable. Oleh karena itu penentuan konstruksi yang mudah dalam perawatan diperlukan untuk perbaikan pada alat ini.
66
Universitas Kristen Maranatha
DAFTAR PUSTAKA
Budiharto, Widodo, Panduan Praktikum Mikrokontoler AVR, Elexmedia Komputindo, 2008.
Budiharto, Widodo, Aneka Proyek Mikrokontroler, Graha Ilmu Komputindo, 2011.
Darmawan, Aan, Modul Pelatihan Arduino Teknik Elektro Universitas Kristen
Maranatha, Teknik Elektro UKM, 2011.
http://en.wikipedia.org/wiki/Decoder. (2012).
http://valfa.blogspot.com/2011/06/rtc-real-time-clock-ds1307-utk- arduino.html .
(2012).
http://widodo.com/teknologi-informasi/display-real-time-clock-rtc-on-lcd/(2012) .
http://wito-chandra.blogspot.com/2009/08/decoder.html.(2012).
http://www.alldatasheet.com/datasheet-pdf/pdf/82662/ETC/7404.html.
http://www.alldatasheet.com/datasheet-pdf/pdf/12624/ONSEMI/74138.html.