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

Mau Konsultasi & Diskusi ?