Jam digital adalah proyek klasik Arduino yang sangat berguna. Dengan bantuan RTC DS3231 (Real-Time Clock) dan display 4-digit TM1637, kita bisa membuat jam digital sederhana namun akurat. DS3231 akan memastikan waktu tetap tepat bahkan saat Arduino dimatikan.
Alat dan Bahan
- Arduino Uno (atau board lainnya)
- RTC DS3231
- Modul 4-digit 7-segment TM1637
- Kabel jumper
- Breadboard (opsional)
Instalasi Library
Untuk modul ini, kita butuh dua library:
- TM1637Display
- RTClib (by Adafruit)
Cara instalasi library:
- Buka Arduino IDE
- Masuk ke Tools > Manage Libraries...
- Cari dan install TM1637Display
- Cari dan install RTClib
Pinout
TM1637 :
DS3231 :
Wiring Rangkaian
TM1637 ke Arduino:
- CLK → Pin 2
- DIO → Pin 3
- VCC → 5V
- GND → GND
DS3231 ke Arduino (I2C):
- SDA → A4
- SCL → A5
- VCC → 5V
- GND → GND
Kode Program Jam Digital
// https://github.com/avishorp/TM1637
// https://github.com/adafruit/RTClib
#include "Arduino.h"
#include "TM1637Display.h"
#include "RTClib.h"
// Module connection pins (Digital Pins)
#define CLK 2
#define DIO 3
// The amount of time (in milliseconds) between tests
#define DELAY 1000
TM1637Display display(CLK, DIO);
int jam,menit,waktu;
RTC_DS3231 rtc;
void setup()
{
// Inisialisasi RTC
if (! rtc.begin()) {
Serial.println("Tidak bisa menemukan RTC");
while (1);
}
// Cek jika RTC perlu diatur ulang
if (rtc.lostPower()) {
Serial.println("RTC kehilangan daya, atur ulang waktu!");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
display.setBrightness(0x0f);
}
void loop()
{
DateTime now = rtc.now();
jam = now.hour();
menit = now.minute();
waktu = jam * 100 + menit;
display.showNumberDecEx(waktu, 0b01000000);
delay(DELAY);
display.showNumberDec(waktu);
delay(DELAY);
}
Penjelasan Kode
- rtc.now(): Mengambil waktu saat ini dari DS3231
- display.showNumberDecEx(...): Menampilkan jam dan menit dengan titik dua menyala
Selamat mencoba !
EmoticonEmoticon
Note: Only a member of this blog may post a comment.