Proyek Praktis: Menampilkan Jam dan Tanggal dengan Arduino
Dalam proyek berbasis mikrokontroler, terutama Arduino, sering kali kita butuh waktu nyata (real-time) yang akurat. Modul RTC (Real Time Clock) DS3231 adalah salah satu pilihan terbaik karena memiliki presisi tinggi dan fitur deteksi kehilangan daya.
Skema Koneksi Arduino UNO dan RTC DS3231
Berikut adalah skema koneksi antara Arduino UNO dan modul RTC DS3231:

Keterangan koneksi:
- VCC (RTC) → 5V Arduino
- GND (RTC) → GND Arduino
- SDA (RTC) → A4 Arduino
- SCL (RTC) → A5 Arduino
Modul DS3231 menggunakan komunikasi I2C, sehingga hanya butuh dua pin data, yakni SDA dan SCL.
Kode Program Arduino Membaca Waktu dari DS3231
Gunakan kode berikut untuk membaca waktu dari RTC dan menampilkannya lewat Serial Monitor:
#include <Arduino.h>
#include <Wire.h>
#include <RTClib.h>
RTC_DS3231 rtc_ds3231;
int jam_rtc_ds3231;
int menit_rtc_ds3231;
int detik_rtc_ds3231;
int bulan_rtc_ds3231;
int tahun_rtc_ds3231;
int minggu_rtc_ds3231;
String baca_rtc_ds3231(String format) {
DateTime now = rtc_ds3231.now();
jam_rtc_ds3231 = now.hour();
menit_rtc_ds3231 = now.minute();
detik_rtc_ds3231 = now.second();
bulan_rtc_ds3231 = now.month();
tahun_rtc_ds3231 = now.year();
minggu_rtc_ds3231 = now.dayOfTheWeek();
String waktuFormatted = format;
waktuFormatted.replace("d", String(now.day(), DEC));
waktuFormatted.replace("m", String(now.month(), DEC));
waktuFormatted.replace("Y", String(now.year(), DEC));
waktuFormatted.replace("H", String(now.hour(), DEC));
waktuFormatted.replace("i", String(now.minute(), DEC));
waktuFormatted.replace("s", String(now.second(), DEC));
return waktuFormatted;
}
void setup() {
Serial.begin(9600);
Wire.begin();
if (!rtc_ds3231.begin()) {
Serial.println("Modul RTC tidak terdeteksi!");
while (1);
}
if (!rtc_ds3231.lostPower()) {
Serial.println("RTC tidak berjalan, atur waktu awal...");
rtc_ds3231.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
// Untuk pengaturan manual, buka komentar baris di bawah:
// rtc_ds3231.adjust(DateTime(2025, 6, 25, 9, 37, 0));
}
void loop() {
Serial.println("Waktu : " + baca_rtc_ds3231("d-m-Y H:i:s"));
delay(1000);
}
Penjelasan Kode Program
RTClib.h: Library dari Adafruit yang digunakan untuk membaca modul RTC seperti DS3231.rtc_ds3231.begin(): Inisialisasi RTC.rtc_ds3231.now(): Membaca waktu saat ini dari modul.- Format Waktu: Kamu bisa dengan mudah mengganti format, misalnya
"H:i"untuk hanya menampilkan jam dan menit.
Fungsi baca_rtc_ds3231() memungkinkan pemformatan fleksibel layaknya PHP atau bahasa lainnya.
Tips Penggunaan RTC DS3231
- Modul ini memiliki baterai cadangan, jadi waktu tetap berjalan meskipun Arduino mati.
- Cocok digunakan dalam data logger, jadwal otomatis, atau sistem alarm.
- Jangan lupa cek apakah RTC mendeteksi kehilangan daya dengan
rtc_ds3231.lostPower().
Kesimpulan
RTC DS3231 adalah solusi akurat dan hemat energi untuk menyimpan waktu dalam proyek Arduino. Dengan sedikit baris kode dan koneksi sederhana, kamu bisa menampilkan jam dan tanggal dengan format yang fleksibel.
Gunakan proyek ini untuk dasar sistem yang lebih kompleks seperti jam digital, timer otomatis, atau sistem pengingat berbasis waktu.
Diskusi lebih lanjut kontak di bawah :

Sosial media lainnya :




