Skip to content Skip to sidebar Skip to footer

Widget HTML #1

RTC DS3231 Arduino Menggunakan Library RinkyDink

RTC DS3231 Arduino Menggunakan Library RinkyDink – RTC merupakan komponen utama pewaktuan, baik itu digunakan pada jam dinding, komputer, handphone, jam tangan, server, gps, power meter dan lain-lain. Segala informasi pada perangkat digital yang membutuhkan waktu, umumnya menggunakan RTC. 

Tapi mengapa kita harus menggunakan RTC sebagai pewaktuan? Bukankah kita bisa membuat program manual dengan memanfaatkan delay sebagai waktu tunda 1 detik? 

Jawabannya adalah pertama RTC memiliki tingkat presisi perhitungan waktu. Kedua RTC memiliki ketetapan waktu yang konsisten yang tidak harus diatur ulang ketika daya listrik sebuah perangkat tiba-tiba padam. 

Jika teman-teman menggunakan Arduino, dengan memanfaatkan delay untuk waktu tunda 1 detik, ketika tiba-tiba sumber daya arduino padam, maka arduino memulai waktu dari 0 lagi. Sangat tidak bagus untuk Membuat pewaktuan.

Salah satu RTC yang banyak digunakan adalah DS3231. Berdasarkan datasheet, RTC buatan MAXIM INTEGRATED ini memiliki fitur :

Real time untuk menghitung detik, menit, jam, tanggal, bulan dan tahun  berlaku hingga 2100.
  • Akurasi ±2ppm dari 0°C hingga +40°C
  • Akurasi ±3.5ppm dari -40°C hingga +85°C
  • Akurasi Output sensor temperatur digital ±3°C
  • Komunikasi I2C (400kHz)
  • Tegangan backup baterai 3.3V


A. Library DS3231 Arduno dari RinkyDink

Untuk mengoperasikan RTC ini menggunakan Arduino, kita butuh sebuah library teman-teman. Sudah banyak yang membuat library untuk RTC DS3231 ini. 

Pada artikel ini saya hanya menggunakan library buatan Henning Karlsen pemilik situs RinkyDinkElectronics.com. 

Jika teman-teman ingin melihat websitenya, silahkan klik disini. Download library RTC DS3231 Arduino dibawah ini:

Download Libary DS3231 Rinky Dink


Jika sudah, masukkan library Libary DS3231 yang telah teman-teman download ke Arduino IDE dengan cara:
- Buka Arduino IDE
- Klik Sketch > Include Library > Add .ZIP Library
- Cari Library DS3231.zip yang telah teman-teman download
- Klik Ok

B. Rangkaian DS3231 Arduino

Buatlah rangkaian RTC DS3231 Arduino seperti pada gambar dibawah:


C. Program Membaca Data

Berikut ini adalah program dasar yang bisa menampilkan hari, tanggal dan waktu. Silahkan upload program dibawah ini.

#include <DS3231.h>

DS3231  rtc(SDA, SCL);
String hari, Senin;

void setup()
{
  Serial.begin(115200);
  //hilangkan komentar di while jika menggunaka Arduino leonardo
  //while (!Serial) {}
  rtc.begin();
}

void loop()
{
  if (rtc.getDOWStr() == "Monday") {
    hari = "Senin";
  }
  if (rtc.getDOWStr() == "Tuesday") {
    hari = "Selasa";
  }
  if (rtc.getDOWStr() == "Wednesday") {
    hari = "Rabu";
  }
  if (rtc.getDOWStr() == "Thursday") {
    hari = "Kamis";
  }
  if (rtc.getDOWStr() == "Friday") {
    hari = "Jumat";
  }
  if (rtc.getDOWStr() == "Saturday") {
    hari = "Sabtu";
  }
  else if (rtc.getDOWStr() == "Sunday") {
    hari = "Minggu";
  }


  // Menampilkan hari
  Serial.print(hari);
  Serial.print(" ");

  // Menampilkan tanggal
  Serial.print(rtc.getDateStr());
  Serial.print(" -- ");

  // Menampilkan Waktu, jam menit detik
  Serial.println(rtc.getTimeStr());

  delay (1000);
}

Kemudian buka serial monitor pada Arduino IDE. Akan tampak hasilnya seperti pada gambar dibawah ini.

D. Tetapkan waktu sesuai keinginan

Pada gambar diatas, data yang diperoleh adalah hari Minggu, tanggal 1 bulan 1 tahun 2000. Jam 1 menit. Namun bagaimana caranya kita mengatur data tersebut sesuai dengan waktu sekarang? 

Misalnya kita atur pada hari Rabu, tanggal 13 bulan 3 tahun 2019. Dan jam 14 pada saat artikel ini dibuat. Caranya adalah menggunakan perintah berikut:

rtc.setDOW(WEDNESDAY);  // rtc.setDOW(hari) untuk mengatur hari
rtc.setTime(0, 0, 0);   // rtc.setTime(jam,menit,detik_ untuk mengatur dalam format 24 jam
rtc.setDate(0, 0, 0);   // rtc.setDate(tanggal,bulan, tahun) untuk mengatur tanggal

Sebagai contoh programnya adalah sebagai berikut:

#include <DS3231.h>

DS3231  rtc(SDA, SCL);
String hari, Senin;

void setup()
{
  Serial.begin(115200);
  //hilangkan komentar di while jika menggunaka Arduino leonardo
  //while (!Serial) {}
  rtc.begin();

  rtc.setDOW(WEDNESDAY);  // rtc.setDOW(hari) untuk mengatur hari
  rtc.setTime(14, 0, 0);   // rtc.setTime(jam,menit,detik_ untuk mengatur dalam format 24 jam
  rtc.setDate(13, 3, 2019);   // rtc.setDate(tanggal,bulan, tahun) untuk mengatur tanggal

}

void loop()
{
  if (rtc.getDOWStr() == "Monday") {
    hari = "Senin";
  }
  if (rtc.getDOWStr() == "Tuesday") {
    hari = "Selasa";
  }
  if (rtc.getDOWStr() == "Wednesday") {
    hari = "Rabu";
  }
  if (rtc.getDOWStr() == "Thursday") {
    hari = "Kamis";
  }
  if (rtc.getDOWStr() == "Friday") {
    hari = "Jumat";
  }
  if (rtc.getDOWStr() == "Saturday") {
    hari = "Sabtu";
  }
  else if (rtc.getDOWStr() == "Sunday") {
    hari = "Minggu";
  }


  // Menampilkan haru
  Serial.print(hari);
  Serial.print(" ");

  // Menampilkan tanggal
  Serial.print(rtc.getDateStr());
  Serial.print(" -- ");

  // Menampilkan Waktu, jam menit detik
  Serial.println(rtc.getTimeStr());

  delay (1000);
}

Maka hasil yang tampil seperti pada gambar dibawah:

Sekian tutorial cara menggunakan RTC DS3231 Arduino, jika ada pertanyaan, saran silahkan tulis di kolom komentar. Selamat belajar, selamat berkarya.

Jika anda ingin mencoba library buatan adafruit RTClib, saya telah membuat tutorial dan kode programnya. Anda dapat membaca artikel Cara Menggunakan RTC DS3231 Arduino Pakai Library Adafruit.

Terima kasih telah mengunjungi website Chip Piko. Semoga bermanfaat.


Post a Comment for "RTC DS3231 Arduino Menggunakan Library RinkyDink"