Contents
Pada tutorial yang lalu (artikel DS3231 Arduino Uno) kita sudah belajar bagaimana mengambil data waktu (tanggal, jam, menit, detik) menggunakan Arduino Uno. Sekarang mari kita kembangkan lagi dengan menampilkan data waktu tersebut ke LCD 1602 (atau 16×2). Untuk mudahnya LCD ini kita tambahkan modul I2C untuk menghemat pin dan waktu instalasi. Jika Anda belum pernah menggunakan modul I2C, dapat Anda baca dulu tutorialnya di sini
Untuk menampilkan data waktu (tanggal, bulan, tahun, jam, menit dan detik) di LCD 1602, Anda perlu menyiapkan alat dan bahan percobaan sebagai berikut:
Alat dan Bahan Percobaan Menampilkan Waktu di LCD dengan DS3231 Uno
- Arduino Uno
- Modul RTC DS3231
- LCD 16×2 (dengan modul I2C)
- Kabel jumper male-female secukupnya
Dengan konfigurasi wiring sebagai berikut:
- VCC dihubungkan dengan VU Arduino Uno.
- GND dihubungkan dengan GND Arduino Uno.
- SDA dihubungkan dengan pin A4 atau pin SDA Arduino Uno.
- SCL dihubungkan dengan pin A5 atau pin SCL Arduino Uno.
Sebelum upload program untuk menampilkan data waktu dengan RTC DS3231, pastikan anda telah menginstal library DS3231. Untuk menginstal library tersebut anda klik menu Sketch – Include Library – Manage Libraries. Kemudian ketik DS3231 seperti terlihat pada gambar di bawah.
Kemudian setting waktu RTC DS3231 Anda dengan mengupload program berikut ke Arduino Anda
#include <Wire.h> //Library Wire #include <DS3231.h> //memasukan library DS3231 LiquidCrystal_I2C lcd(0x3F, 16, 2); DS3231 rtc(SDA,SCL); void setup() { // put your setup code here, to run once: Serial.begin(115200); rtc.begin(); //setting manual rtc.setDate(24, 2, 2021); //24 Februari 2021 rtc.setTime(09, 47, 00); //09:47:00 rtc.setDOW(4); //Kamis } void loop() { }
Catatan: running program di atas hanya cukup sekali aja ya, hanya untuk keperluan setting waktu awal saja. Untuk waktu sesuaikan dengan waktu Anda saat ini. Kemudian jangan lupa pastikan baterai modul DS3231 Anda dalam keadaan bagus, sehingga dapat membackup power di saat catu daya utama mati (sehingga waktu di module RTC tetap berjalan, tidak reset lagi)
Source Code RTC DS3231 – LCD – Uno
Jika waktu modul RTC sudah menunjukkan waktu yang benar, kini saatnya kita menampilkan waktu (tanggal, jam, menit, detik) tersebut ke LCD 1602. Berikut contoh programnya:
#include <Wire.h> //Library Wire #include <LiquidCrystal_I2C.h> //Library LCD 16x2 I2C #include <DS3231.h> //memasukan library DS3231 LiquidCrystal_I2C lcd(0x3F, 16, 2); DS3231 rtc(SDA,SCL); void setup() { // put your setup code here, to run once: Serial.begin(115200); rtc.begin(); lcd.init(); lcd.begin(16,2); lcd.backlight(); } void loop() { // put your main code here, to run repeatedly: lcd.setCursor(0, 0); //Karakter dimulai pada baris 1 kolom 1 lcd.print("Tgl: "); //Memunculkan karakter Tgl lcd.setCursor(5,0); //Karakter dimulai pada baris 1 kolom 5 lcd.print(rtc.getDateStr()); //Menampilkan data Tanggal lcd.setCursor(0, 1); //Karakter dimulai pada baris 2 kolom 1 lcd.print("jam: "); //Memunculkan karakter jam lcd.setCursor(5,1); //Karakter dimulai pada baris 2 kolom 5 lcd.print(rtc.getTimeStr()); //Memunculkan data waktu delay (1000); }
Ohya, sampai pada tahap di atas, Anda perlu menginstal library LiquidCrystal_I2C.h ya. Caranya sama seperti pada saat menginstal library DS3231, yakni lewat menu Manage Library kemudian ketik aja nama library di kotak search
Jika semuanya sudah oke baik rangkaian hardware maupun software, setelah Anda upload programnya maka tampilan LCD Anda seharusnya sudah menampilkan data waktu saat ini alias sudah menjadi jam digital 😊
Selamat, Anda sudah berhasil menampilkan data tanggal, jam, menit, detik pada LCD 1602 menggunakan Arduino Uno dan modul RTC DS3231. Anda dapat mengembangkan tutorial sederhana ini untuk project spesifik Anda yang lain, misal jam masjid, jam IoT dsb. Selamat berkreasi 😊
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com