Modul RTC (Real-Time Clock) DS1302 memungkinkan perangkat Arduino Uno untuk melacak waktu, bahkan saat perangkat mati atau terputus dari daya. Ini sangat bermanfaat untuk aplikasi seperti jam digital, pengingat berbasis waktu, atau pencatat data.

Artikel ini akan menunjukkan langkah-langkah memprogram RTC DS1302 pada Arduino Uno. Kita juga akan membaca waktu yang ditampilkan secara real-time di Serial Monitor.

Alat dan Bahan

  • Kabel USB untuk menghubungkan Arduino ke komputer
  • Arduino Uno
  • Modul RTC DS1302
  • Kabel jumper
  • Breadboard

Skema Koneksi

Berikut adalah koneksi modul DS1302 dengan Arduino Uno:

  • RST → Pin 8 Arduino
  • VCC → 5V Arduino
  • GND → GND Arduino
  • SCLK → Pin 6 Arduino
  • IO → Pin 7 Arduino

Kode Program

Berikut adalah kode program untuk membaca waktu dari modul RTC DS1302. Program ini menggunakan library DS3232RTC untuk mempermudah pengaturan dan pembacaan waktu.

Kode Lengkap

#include <Arduino.h>

#include <DS3232RTC.h>

tmElements_t waktu_rtc_ds3232;
int jam_rtc_ds3232;
int menit_rtc_ds3232;
int detik_rtc_ds3232;
int bulan_rtc_ds3232;
int tahun_rtc_ds3232;
int minggu_rtc_ds3232;


bool sync_rtc_ds3232() {
time_t t = RTC.get();
if (t != 0) {
RTC.read(waktu_rtc_ds3232);
return true;
}
return false;
}
 
String baca_rtc_ds3232(String format) {
String hasil;
 
if (sync_rtc_ds3232()) {
RTC.read(waktu_rtc_ds3232);
 
jam_rtc_ds3232 = waktu_rtc_ds3232.Hour;
menit_rtc_ds3232 = waktu_rtc_ds3232.Minute;
detik_rtc_ds3232 = waktu_rtc_ds3232.Second;
bulan_rtc_ds3232 = waktu_rtc_ds3232.Month;
tahun_rtc_ds3232 = waktu_rtc_ds3232.Year;
minggu_rtc_ds3232 = waktu_rtc_ds3232.Wday;
 
char buffer[20];
snprintf(buffer, sizeof(buffer), format.c_str(),
waktu_rtc_ds3232.Day, bulan_rtc_ds3232, tahun_rtc_ds3232,
jam_rtc_ds3232, menit_rtc_ds3232, detik_rtc_ds3232);
 
hasil = buffer;
}
 
return hasil;
}


void setup()
{
Serial.begin(9600);
setSyncProvider(RTC.get); 
if(timeStatus() != timeSet)
Serial.println("Unable to sync with the RTC");
else
Serial.println("RTC has set the system time");

}
void loop(){
Serial.println("Waktu : " + baca_rtc_ds3232("d-m-Y H:i:s"));


}


Selamat Mencoba!!

Semoga Berhasil!!

Bagi teman-teman berminat jasa seputar arduino/pengembangan web bisa hubungi kami di kontak whatsapp dibawah ini atau bisa cek tiktok kami disini : @labrobotika

By Vahrel

Mau Konsultasi & Diskusi ?