// Nama : ....
// Kelas : ....
// Mata Pelajaran : PKK-Praktik
// Guru Mata Pelajaran : Rudi Akbar Saragih
// Nama Project : Jam Digital Menggunakan TM1637, DS1307 RTC, dan Arduino Nano
// Tambahkan library RTClib dan TM1637 melalui tab Library Manager
#include "RTClib.h"
#include <TM1637Display.h>
// Definisikan koneksi antara TM1637 ke pin Arduino
// CLK pada pin D3 dan DIO pada pin D5
#define CLK 3
#define DIO 5
// Membuat objek tampilan dan RTC (Real Time Clock)
RTC_DS3231 rtc;
TM1637Display display = TM1637Display(CLK, DIO);
void setup() {
// Memulai koneksi serial dengan baud rate 9600
Serial.begin(9600);
pinMode(AM, OUTPUT);
pinMode(PM, OUTPUT);
// Jeda selama 2 detik
delay(2000);
// Memeriksa apakah modul RTC terpasang dengan benar
// Pastikan SDA terpasang pada pin A4 dan SQW pada pin A5
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
while (1);
}
// Memeriksa jika modul RTC dalam keadaan padam, maka instruksikan agar mengatur waktu
if (rtc.lostPower()) {
Serial.println("RTC lost power, lets set the time!");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
// Mengatur kecerahan tampilan (antara 0 sampai 7):
display.setBrightness(5);
// Membersihkan tampilan
display.clear();
}
void loop() {
// Mendapatkan waktu sesuai dengan kondisi nyata
DateTime now = rtc.now();
// Pengaturan format tampilan waktu
int displaytime = (now.hour() * 100) + now.minute();
// Menampilkan waktu pada serial monitor
Serial.println(displaytime);
// Menampilkan format waktu 24 jam dengan aktivasi angka 0 di awal
// dan tanda semicolon (:) sebagai pemisah
display.showNumberDecEx(displaytime, 0b11100000, true);
// Jeda selama 1 detik
delay(1000);
// Menghilangkan tampilan tanda semicolon (:)
display.showNumberDec(displaytime, true);
// Jeda selama 1 detik
delay(1000);
}