Dalam Praktek kali ini kita memerlukan bahan-bahan yaitu :
* Mikrokontroller Arduino
* Layar LCD 16x2 Karakter
* Modul RTC DS 1307
Modul RTC DS 1307 adalah modul elektronik yang bekerja menyediakan waktu. disinilah kita akan mendapatkan data jam dan tanggal.
Dan kita memerlukan bahan pelengkap yaitu :
* Breadboard
* Kabel Jumper 1 set
* Kopi satu gelas
* Cemilan secukupnya.
Nah coba perhatikan gambar di bawah ini
Gambar di atas adalah cara menghubungkan arduino dengan RTC dan LCD, untuk sementara lupakan gambar switc nya. itu hanya akan di pakai dalam praktek selanjutnya pada halaman yang lain. Dalam praktek kali ini ya sobat lcd tidak dihubungkan seperti di gambar tetapi menghubungkannya yaitu Seperti Konpigurasi di bawah ini yaaaaa
************************
Modul LCD Arduino
D 8
D 9
D 10
D 11
E 12
RS 13
************************
Nah untuk Modul RTC dihubungkan dengan mikrokontroller Arduino seperti di bawah ini yaaa
*******************************************
Modul RTC Arduino 2560 Arduino Uno
*******************************************
Modul RTC Arduino 2560 Arduino Uno
SCL 21 A5
SDA 20 A4
*******************************************
Pada praktek pembuatan Jam ini intinya kita akan memprogram Mikrokontroller Arduino untuk mengakses data waktu di modul RTC dan kemudian akan di tampilkan di LCD mungil 16x2 Karakter.
Coba pelajari Sketsa program di bawah ini. perhatikan keterangannya dan Pelajari yaaa...
------------------------------------------------------------------------
#include <LiquidCrystal.h>
LiquidCrystal lcd(13,12, 11, 10, 9, 8); // RS,E,D4,D5,D6,D7
#include "Wire.h"
#define DS1307_ADDRESS 0x68
byte zero = 0x00; //workaround for issue #527
int Jam ;
int Menit ;
int Hari ;
int Detik ;
int Tanggal;
int Bulan ;
int Tahun ;
String LcdBaris1;
String LcdBaris2;
int j1,j2,m1,m2,d1,d2;
void setup() {
Wire.begin();
lcd.begin(16,2);
}
void loop() {
// Pertama tama kita akses Modul RTC
Wire.beginTransmission(DS1307_ADDRESS);
byte zero = 0x00;
Wire.write(zero);
Wire.endTransmission();
Wire.requestFrom(DS1307_ADDRESS, 7);
// Waktu akan kita simpan di beberapa variabel... lihat deh di bawah
Detik = bcdToDec(Wire.read());
Menit = bcdToDec(Wire.read());
Jam = bcdToDec(Wire.read() & 0b111111); //24 hour time
Hari = bcdToDec(Wire.read()); //1-7 -> sunday - Saturday
Tanggal = bcdToDec(Wire.read());
Bulan = bcdToDec(Wire.read());
Tahun = bcdToDec(Wire.read());
// Agar dapat mengetahui nama hari maka variabel hari yang berisi nilai 1 sampai 7
// Kita rubah menjadi hari 1= senin 2 = selasa dan seterusnya.. lihat di bawah yaaa...
String NamaHari;
if (Hari == 1) NamaHari ="Minggu" ;
if (Hari == 2) NamaHari ="Senin" ;
if (Hari == 3) NamaHari ="Selasa" ;
if (Hari == 4) NamaHari ="Rabu" ;
if (Hari == 5) NamaHari ="Kamis" ;
if (Hari == 6) NamaHari ="Jum'at" ;
if (Hari == 7 ) NamaHari ="Saptu" ;
// Kemudian kita akan tampilkan data data waktu ke Modul LCD
// Tentunya agar kita mudah melihat waktu
LcdBaris1 = NamaHari+ " "+ String (Tanggal) +"-"+ String (Bulan)+"-"+ String (Tahun) ;
LcdBaris2 = "Jam : "+String (Jam)+":"+ String (Menit)+":"+String (Detik);
lcd.clear() ;
lcd.setCursor(0,0); lcd.print(LcdBaris1);
lcd.setCursor(0,1); lcd.print(LcdBaris2);
delay (400);
}
byte bcdToDec(byte val) {
// Convert binary coded decimal to normal decimal numbers
return ( (val/16*10) + (val%16) );
}
byte decToBcd(byte val){
// Convert normal decimal numbers to binary coded decimal
return ( (val/10*16) + (val%10) );
}
------------------------------------------------------------------------
Program di atas akan menampilkan data waktu di layar lcd. yaa cukup menarik dan unik yaaa.. hanya saja kita tidak bisa membetulkan jamnya bila waktunya terjadi perbedaan atau kacau. wah repot yaa. untuk mengatur atau membetulkan nilai RTC yang kacau coba kunjungi halaman Blog di bawah ini. Klik link nya ya sobaaat..
Praktek merubah data waktu yang ada di modul RTC
gan mau tanya, kok gak keluar di lcd ya ?
BalasHapusterima kasih
Terima kasih atas kunjungannya. sedang di lakukan pengecekan ulang. terlihat kesalahan ada di baris program LiquidCrystal lcd(13,12, 11, 10, 9, 8); sebentar ya di test ulang dahulu
Hapusseharusnya
HapusLiquidCrystal lcd(12, 11, 5, 4, 3, 2);
thanks gan bisa
Hapusgan kalo misalnya ditambah pake mode stopwatch + alarm itu merubah sketch lagi ya ?
untuk jam yng menggunakan alarm. memang pernah membuatpercobaan datanya ada di
Hapushttp://teknikelektrotexmaco.blogspot.co.id/2016/11/6.html
Untuk stop watch .. wah ide bagus. nanti coba dilakukan percobaan.. terus terang belum pernah membuat stop watch. intinya program di atas akan di tambah dengan alarm dan stopwatch. akan lebih panjang programnya
Hapus