Kali ini saya membuat tutorial cara memprogram rtc ds1302 menggunakan esp32
Untuk alat yang di perlukan yaitu :
- RTC DS1302 MODUL
- ESP32
- KABEL JUMPER
- BREADBOARD ( jika tidak digunakan juga tidak masalah )

Koneksi Pin DS1302 ke ESP32:
- VCC → 5V Arduino.
- GND → GND Arduino.
- SCLK → Pin Digital (misalnya D6).
- IO → Pin Digital (misalnya D7).
- RST (CE) → Pin Digital (misalnya D8).
Untuk skematik nya seperti ini :

Untuk kode yang digunakan :
#include <Arduino.h>
#include <DS1302RTC.h>
tmElements_t waktu_RTC DS1302;
int jam_RTC DS1302;
int menit_RTC DS1302;
int detik_RTC DS1302;
int bulan_RTC DS1302;
int tahun_RTC DS1302;
int minggu_RTC DS1302;
bool sync_RTC DS1302() {
time_t t = RTC.get();
if (t != 0) {
RTC.read(waktu_RTC DS1302);
return true;
}
return false;
}
String baca_RTC DS1302(String format) {
String hasil;
if (sync_RTC DS1302()) {
RTC.read(waktu_RTC DS1302);
jam_RTC DS1302 = waktu_RTC DS1302.Hour;
menit_RTC DS1302 = waktu_RTC DS1302.Minute;
detik_RTC DS1302 = waktu_RTC DS1302.Second;
bulan_RTC DS1302 = waktu_RTC DS1302.Month;
tahun_RTC DS1302 = waktu_RTC DS1302.Year;
minggu_RTC DS1302 = waktu_RTC DS1302.Wday;
char buffer[20];
snprintf(buffer, sizeof(buffer), format.c_str(),
waktu_RTC DS1302.Day, bulan_RTC DS1302, tahun_RTC DS1302,
jam_RTC DS1302, menit_RTC DS1302, detik_RTC DS1302);
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 DS1302("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

