0

0

0

share


0 Reaksi

0 Komentar

Menampilkan Jam dan Tanggal di LCD 16x2 dengan Arduino

Profile
Egi Anugrah

19 Agustus 2016

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

13995348111

ARDUINO UNU/MEGA

48912-arduinouno_r3_front

4 Buah Kabel

348618_02438108-edda-11e4-a678-bea364efb121

Modul I2C LCD

mod-lcdi2c-bb1

Merangkai Alat

pertama tama rangkai alat seperti pada gambar berikut: i2c_03

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