
Menampilkan Jam dan Tanggal di LCD 16x2 dengan Arduino

Pada tutorial kali ini saya akan membahas tentang cara menampilkan Jam dan Tanggal di LCD 16x2 mengunakan Arduino dengan bantuan modul I2C(Inter Integrated Circuit). Saya akan menjelaskan bagaimana cara menampilkan text di lcd 16x2.
Pada tutorial sebelumnya juga bahwa dengan menggunakan modul I2C, pin Arduino yang digunakan untuk menyalakan LCD sangat sedikit yaitu hanya 2 pin: SDA (Serial Data) dan SCL (Serial Clock). Kalau di Arduino UNO itu pin A4 untuk SDA dan pin A5 untuk SCL.
Persiapan Perangkat dan Alat
LCD 16x2

ARDUINO UNU/MEGA

4 Buah Kabel

Modul I2C LCD

Merangkai Alat
pertama tama rangkai alat seperti pada gambar berikut:
hubungkan modul I2C LCD ke Arduino UNO, Pastikan semua kabel terhubung dengan benar.
jika kabel sudah benar tersambung, selanjutnya yang harus dilakukan adalah proses pembuatan program. Nah sebelum mulai membuat program,
kita harus download library-nya terlebih dahulu Disini
Jika Library di atas sudah di download lalu extract file tersebut kemudian simpan di folder library di dalam folder instalasi Arduino IDE kita.
Selanjutnya membuat program di aplikasi Arduino IDE dan tulis program seperti di bawah ini dan keteranganya,:
#include <Wire.h>
#include <Time.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE);//menunjukan pin arduino yang digunakan
void setup() {
Serial.begin(9600);
lcd.begin(16,2); //lcd 16x2
setTime(13,18,00,8,9,16);//(Jam,Menit,Detik,Tanggal,Bulan,Tahun)menunjukan mengatur sebuah tanggal
dan jam
}
void loop(){
//setting tanggal,bulan,tahun
//2016
if(day() >= 29 && month() == 2 && year() == 16){ //menujukan bulan ke 2 ada 29 hari
setTime(0,0,0,1,3,16); }
else if(day() >= 30 && month() == 4 && year() == 16){ //menunjukan bulan 4 ada 30 hari
setTime(0,0,0,1,5,16); }
else if(day() >= 30 && month() == 6 && year() == 16){ //menunjukan bulan 6 ada 30 hari
setTime(0,0,0,1,7,16); }
else if(day() >= 30 && month() == 9 && year() == 16){ //menunjukan bulan 9 ada 30 hari
setTime(0,0,0,1,10,16); }
else if(day() >= 30 && month() == 11 && year() == 16){ //menunjukan bulan 11 ada 30 hari
setTime(0,0,0,1,12,16); }
//keterangan bahwa setiap bulan ganjil ada 31 hari. jika bulan genap akan di atur
//2017
else if(day() >= 28 && month() == 2 && year() == 17){
setTime(0,0,0,1,3,17); }
else if(day() >= 30 && month() == 4 && year() == 17){
setTime(0,0,0,1,5,17); }
else if(day() >= 30 && month() == 6 && year() == 17){
setTime(0,0,0,1,7,17); }
else if(day() >= 30 && month() == 9 && year() == 17){
setTime(0,0,0,1,10,17); }
else if(day() >= 30 && month() == 11 && year() == 17){
setTime(0,0,0,1,12,17); }
//2018
else if(day() >= 28 && month() == 2 && year() == 18){
setTime(0,0,0,1,3,18); }
else if(day() >= 30 && month() == 4 && year() == 18){
setTime(0,0,0,1,5,18); }
else if(day() >= 30 && month() == 6 && year() == 18){
setTime(0,0,0,1,7,18); }
else if(day() >= 30 && month() == 9 && year() == 18){
setTime(0,0,0,1,10,18); }
else if(day() >= 30 && month() == 11 && year() == 18){
setTime(0,0,0,1,12,18); }
//2019
else if(day() >= 28 && month() == 2 && year() == 19){
setTime(0,0,0,1,3,19); }
else if(day() >= 30 && month() == 4 && year() == 19){
setTime(0,0,0,1,5,19); }
else if(day() >= 30 && month() == 6 && year() == 19){
setTime(0,0,0,1,7,19); }
else if(day() >= 30 && month() == 9 && year() == 19){
setTime(0,0,0,1,10,19); }
else if(day() >= 30 && month() == 11 && year() == 19){
setTime(0,0,0,1,12,19); }
//2020
else if(day() >= 29 && month() == 2 && year() == 20){
setTime(0,0,0,1,3,20); }
else if(day() >= 30 && month() == 4 && year() == 20){
setTime(0,0,0,1,5,20); }
else if(day() >= 30 && month() == 6 && year() == 20){
setTime(0,0,0,1,7,20); }
else if(day() >= 30 && month() == 9 && year() == 20){
setTime(0,0,0,1,10,20); }
else if(day() >= 30 && month() == 11 && year() == 20){
setTime(0,0,0,1,12,20); }
else if(hour() == 0 && minute() == 0 && second() == 0){
//menampilkan sebuah deklerasi lcd.clear(); lcd.print ("TGL: "); //memuculkan Tgl pada LCD printkurangdarinol(day()); lcd.print(":"); //memunculkan tanda : printkurangdarinol(month()); lcd.print(":"); printkurangdarinol(year()); lcd.setCursor(0,1); lcd.print("JAM: "); printkurangdarinol(hour()); lcd.print(":"); printkurangdarinol(minute()); lcd.print(":"); printkurangdarinol(second()); } lcd.setCursor(0,0); lcd.print ("TGL: "); printkurangdarinol(day()); lcd.print(":"); printkurangdarinol(month()); lcd.print(":"); printkurangdarinol(year()); lcd.setCursor(0,1); lcd.print("JAM: "); printkurangdarinol(hour()); lcd.print(":"); printkurangdarinol(minute()); lcd.print(":"); printkurangdarinol(second()); delay (1000); } void printkurangdarinol(int data){ if (data >= 0 && data < 10){ lcd.write('0'); } lcd.print(data); }
Jam dan tanggal ini tidak bersipat permanen tidak menggunakan RTC(Real Time Clock) jadi program ini setiap dimatikan alat nya akan di atur ulang lewat kodingan, jadi setiap kita mau atur tanggal dan waktu harus men setting nya lewat kodingan dulu, lain hal dengan RTC. RTC yang dimaksud disini adalah real time clock, biasanya berupa IC yg mempunyai clock sumber sendiri dan internal batery untuk menyimpan data waktu dan tanggal. Sehingga jika system microcontroller mati waktu dan tanggal didalam memori RTC tetap up to date.
Sekian Dari saya semoga tutorial kali ini dapat bermanfaat bagi kalian yang mencobanya. Terima Kasih.
Tags:
What do you think?
Reactions


