0
0
0
share
0 Komentar
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.
0
0
0
share