Dasar Penggunaan RTC DS3231 dengan Arduino untuk Pemula

Dasar Penggunaan RTC DS3231 dengan Arduino untuk Pemula

Pendahuluan

RTC (Real Time Clock) DS3231 adalah modul yang memungkinkan Arduino untuk melacak waktu secara akurat, bahkan saat daya mati. RTC ini memiliki baterai cadangan yang memastikan data waktu tetap tersimpan. Modul DS3231 sering digunakan untuk proyek seperti jam digital, pencatatan data (data logging), atau pengendalian perangkat berbasis waktu.

Pada blog ini, kita akan membahas:

  1. Apa itu RTC DS3231.
  2. Cara menghubungkan RTC DS3231 ke Arduino.
  3. Contoh kode dasar untuk membaca dan menampilkan waktu.

Alat dan Bahan

  1. Arduino (contoh: Arduino Uno).
  2. Modul RTC DS3231.
  3. Kabel jumper.

Koneksi RTC DS3231 dengan Arduino

  1. VCC pada RTC ke 5V Arduino.
  2. GND pada RTC ke GND Arduino.
  3. SDA pada RTC ke A4 Arduino Uno (atau pin SDA lain tergantung model Arduino).
  4. SCL pada RTC ke A5 Arduino Uno (atau pin SCL lain tergantung model Arduino).

berikut adalah gambar skematiknya:

Untuk Kode Yang Kami Gunakan :

#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__)));
}

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


}


Selamat Mencoba!!

Semoga Berhasil!!

Kalau teman-teman berminat jasa bisa wa kami di kontak whatsapp dibawah ini atau bisa cek tiktok kami disini : @labrobotika

Mau Konsultasi & Diskusi ?