Jam digital menggunakan modul TM1637 dan RTC (Real-Time Clock) seperti DS3231 atau DS1307 pada Arduino Uno adalah proyek yang cukup sederhana. Modul TM1637 digunakan untuk menampilkan waktu pada display 7-segment, sedangkan modul RTC berfungsi untuk menyimpan dan menjaga waktu agar tetap akurat meskipun Arduino dimatikan.
Berikut adalah langkah-langkah untuk membuat jam digital menggunakan TM1637 dan RTC:
Komponen yang Diperlukan:
- Arduino Uno
- Modul RTC (DS3231 atau DS1307)
- Modul TM1637 (4-digit 7-segment display)
- Kabel jumper
- Breadboard
- CLK (TM1637) → Pin digital 2 (Arduino)
- DIO (TM1637) → Pin digital 3 (Arduino)
- VCC → 5V (Arduino)
- GND → GND (Arduino)
#include <Wire.h>
#include <RTClib.h>
#include <TM1637Display.h>
// Pin TM1637
#define CLK 2
#define DIO 3
// Inisialisasi modul RTC dan TM1637
RTC_DS3231 rtc;
TM1637Display display(CLK, DIO);
void setup() {
Serial.begin(9600);
// Inisialisasi modul TM1637
display.setBrightness(0x0F);
// Inisialisasi modul RTC
if (!rtc.begin()) {
Serial.println("RTC tidak terdeteksi!");
while (1);
}
if (rtc.lostPower()) {
Serial.println("RTC kehilangan daya, set waktu sekarang!");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // Set waktu sesuai dengan waktu saat kompilasi
}
}
void loop() {
DateTime now = rtc.now(); // Ambil waktu dari RTC
// Format waktu ke 24 jam
int displayTime = now.hour() * 100 + now.minute();
// Tampilkan waktu pada TM1637
display.showNumberDecEx(displayTime, 0b01000000, true); // Tampilkan dengan titik di tengah (:)
delay(1000); // Update setiap detik
}