// Dont Forget to Support My Channel
// Electro Pemula on Youtube and TikTok
// https://www.youtube.com/channel/UCa8eHXL2aL6lc1UN_bcge7A/
// https://www.tiktok.com/@elektropemula/
// Link Video : https://www.tiktok.com/@elektropemula/video/7429943876388965637
#include <TM1637Display.h>
const int CLK = 3;
const int DIO = 2;
const int buttonHour = 6;
const int buttonMinute = 7;
TM1637Display display(CLK, DIO);
int hours = 12;
int minutes = 05;
unsigned long previousMillis = 0; // Untuk melacak waktu
void setup() {
display.setBrightness(0x0f);
pinMode(buttonHour, INPUT_PULLUP);
pinMode(buttonMinute, INPUT_PULLUP);
Serial.begin(9600); // Inisialisasi Serial Monitor
Serial.println("Waktu awal:");
printTime();
}
void loop() {
// Mengupdate waktu setiap 60 detik
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= 60000) { // 60000 ms = 1 menit
previousMillis = currentMillis;
minutes++;
if (minutes >= 60) {
minutes = 0;
hours++;
}
if (hours >= 24) {
hours = 0;
}
printTime(); // Cetak waktu terbaru ke Serial Monitor
}
// Cek jika tombol jam ditekan
if (digitalRead(buttonHour) == LOW) {
delay(200); // Debounce sederhana
hours++;
if (hours >= 24) hours = 0;
printTime(); // Cetak waktu terbaru ke Serial Monitor
}
// Cek jika tombol menit ditekan
if (digitalRead(buttonMinute) == LOW) {
delay(200); // Debounce sederhana
minutes++;
if (minutes >= 60) minutes = 0;
printTime(); // Cetak waktu terbaru ke Serial Monitor
}
// Tampilkan waktu pada display
int displayTime = hours * 100 + minutes;
display.showNumberDecEx(displayTime, 0b01000000, true);
}
// Fungsi untuk menampilkan waktu ke Serial Monitor
void printTime() {
Serial.print("Waktu: ");
if (hours < 10) Serial.print("0"); // Tambahkan nol jika jam kurang dari 10
Serial.print(hours);
Serial.print(":");
if (minutes < 10) Serial.print("0"); // Tambahkan nol jika menit kurang dari 10
Serial.println(minutes);
}