Cara Mudah Program RTC DS3231 Jam Digital Dengan Arduino

Pengenalan RTC DS3231

Sebelumnya di Kelas Robot saya pernah Posting mengenai RTC DS1302, RTC yang murah dan simple buat yang belajar membuat Jam Digital. Tapi kekurangan dari RTC tersebut adalah keakuratan waktunya, banyak yang berpengalaman ternyata RTC ini sering error sekian menit waktunya dalam waktu bulanan.

Nah bahaya banget kan kalo kita bikin product yang permanent untuk jangka waktu yang lama, seperti Jam Digital dan Jadwal Shalat. Nah untuk itu saya kenalkan agan ke RTC DS3231.


Kelebihan RTC DS3231

  1. Sangat Akurat dan sudah saya pakai berbulanan-bulan, waktunya masih sama dengan real time waktu sekarang. Hampir tidak ada yang berubah sedikitpun.
  2. Memiliki Sensor Suhu di dalamnya. Bayangkan udah ada sensor suhunya bro.
  3. Memiliki EPPROM juga. Kurang canggih apalagi coba. hihihi

Harga? Lebih mahal dari DS1302, tapi kualitas jauh pastinya. Dan lebih kumplit, seperti yang saya sebutkan diatas.


Membuat Rangkaian RTC DS3231

Sebelum membuat Rangkaian, pastikan kamu sudah menyiapakan:

  1. Arduino dan Kabel USB
  2. RTC DS3231 udah isi Baterai
  3. Kabel Jumper

Selanjutnya silahkan rangkai seperti pada rangkaian dibawah ini

ArduinoRTC DS3231
5V5V
GNDGND
A4SDA
A5SCL

Add Library RTC DS3231 Ke Arduino IDE

Kita akan Menggunakan Library RTClib.h dari Adafruit, yang mana bisa di Download melalui link dibawah ini:

Jika sudah di Download, silakan tambahkan ke Arduino IDE, jika kamu tidak tahu cara menambahkannya, silakan buka Tutorial dibawah ini:

Bagaimana Cara Memasukan Library Ke Aplikasi Arduino IDE


Koding RTC DS3231

Untuk koding yang digunakan pada RTC DS3231, silakan gunakan dibawah ini:

#include "RTClib.h"
RTC_DS3231 rtc;
char daysOfTheWeek[7][12] = {"Ahad", "Senin", "Selasa", "Rabu", "Kamis", "Jum'at", "Sabtu"};
int jam, menit, detik;
int tanggal, bulan, tahun;
String hari;

void setup () {
  Serial.begin(9600);
  if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    Serial.flush();
    while (1) delay(10);
  }
  // rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}

void loop () {
  DateTime now = rtc.now();
  jam     = now.hour();
  menit   = now.minute();
  detik   = now.second();
  tanggal = now.day();
  bulan   = now.month();
  tahun   = now.year();
  hari    = daysOfTheWeek[now.dayOfTheWeek()];
  Serial.println(String() + hari + ", " + tanggal + "-" + bulan + "-" + tahun);
  Serial.println(String() + jam + "-" + menit + "-" + tahun);
  Serial.println();
  delay(1000);
}

Agan tinggal Upload aja, kemudian cek di Serial Monitor. Nanti akan muncul data waktu seperti dibawah ini:


Catatan Penting WAJIB BACA

  1. koding ini rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); adalah koding untuk setting Waktu Otomatis sesuai dengan Komputer, kalo sudah upload sekali silakan kasih komentar //, lalu upload lagi kodingnya
  2. Jika ingin set Manual silakan gunakan koding ini rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0)); silakan hilangkan komentar, sesuaikan waktunya, kemudian upload. Jika sudah upload sekali, kasih lagi komentar terus upload lagi.

Oke Sekian Postingan kali ini. Jika dari teman-teman ada yang ingin dinyakan silahkan isi di kotak komentar ya. Terimakasih

Saya adalah seorang pengulik yang tertarik dalam bidang Microcontroller, Internet of Things (IoT), dan Artificial Intelligence (AI). Saya terus belajar dan mengembangkan pengetahuan serta keterampilan saya di dalam ketiga bidang tersebut dengan harapan dapat menciptakan solusi inovatif yang bermanfaat.

Leave a Reply

Your email address will not be published. Required fields are marked *

You might also like
Enable Notifications OK No thanks