fbpx

Tutorial Mengakses RTC DS3231 pada Arduino

RTC DS3231 merupakan sebuah jenis modul yang dapat menghasilkan waktu digital secara realtime dengan tambahan sebuah baterai tipe kancing 3.3V yang berfungsi menyimpan data waktu ketika supply padam. Jenis ini dinilai yang paling akurat dibanding jenis lainnya seperti DS1302 dan DS1307. Untuk dapat menggunakannya pada Arduino kita hanya membutuhkan 2 buah pin yatitu pin SDA dan SCL, sisanya merupakan supply VCC dan GND. Di bawah ini akan dibahas lebih lengkapnya.

Alat dan bahan :

  • Arduino Uno R3, BELI
  • RTC DS3231 + Batreai CR2032, BELI
  • Kabel jumper male to female, BELI
  • Library RTClib untuk DS3231, download

Rangkaian :

Rangkaian RTC DS3231 dan Arduino

Konfigurasi pin :

  • Pin SCL dihubungkan ke A5
  • Pin SDA dihubungkan ke A4
  • VCC dihubungkan ke 3.3V
  • GND dihubungkan ke GND

Sketch program :

#include <Wire.h>
#include "RTClib.h"

RTC_DS3231 rtc;

char daysOfTheWeek[7][12] = {"Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jum'at", "Sabtu"};

void setup () {
  Serial.begin(9600);
  delay(3000);
  if (! rtc.begin()) {
    Serial.println("RTC tidak terbaca");
    while (1);
  }

  if (rtc.lostPower()) {
    //atur waktu sesuai waktu pada komputer
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    //atur waktu secara manual
    // January 21, 2019 jam 10:30:00
    // rtc.adjust(DateTime(2019, 1, 25, 10, 30, 0));
  }
}

void loop () {
  DateTime now = rtc.now();

  Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);//hari
  Serial.print(", ");
  Serial.print(now.day(), DEC); //tanggal
  Serial.print('/');
  Serial.print(now.month(), DEC); //bulan
  Serial.print('/');
  Serial.print(now.year(), DEC); //tahun
  Serial.print(' ');
  Serial.print(now.hour(), DEC); //jam
  Serial.print(':');
  Serial.print(now.minute(), DEC); //tanggal
  Serial.print(':');
  Serial.print(now.second(), DEC); //detik

  Serial.println();
  delay(1000);
}

Penggunaan :

  • Silahkan rangkai alat dan bahan sesuai keterangan di atas.
  • Buka Arduino IDE, masukkan library RTClib yang sudah didownload. Caranya masuk ke menu Sketch > Include librari > add .ZIP library > silahkan pilih file library RTClib > klik Open
  • Upload sketch program di atas.
  • jika sudah selesai, silahkan beri tanda komentar “//” tanpa tanda petik pada sketch
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  • sehingga menjadi seperti ini
  • Kemudian upload kembali sketch programnya.
  • dan silahkan buka Serial Monitor dengan baudrate 9600

Hasil :

Maka hasilnya akan seperti di bawah ini

Demikian pembahasan tentang mengakses RTC DS3231 semoga bermanfaat.

10 komentar untuk “Tutorial Mengakses RTC DS3231 pada Arduino”

    1. buka komentar (karakter ‘//’) pada baris program 21, sesuaikan waktunya, kemudian running sekali aja. Habis itu jadikan komentar lagi

    2. izin bantu menjawab min

      bikin line baru om di bawa perintah if (rtc.lstpower) sama persis kaya perintah di if soalnya kalo masih yang didialam di ubah cuman bakal keganti if rtc nya loss power

      kaya gini
      void setup () {
      Serial.begin(9600);
      delay(3000);
      if (! rtc.begin()) {
      Serial.println(“RTC tidak terbaca”);
      while (1);
      }
      if (rtc.lostPower()) {
      //atur waktu sesuai waktu pada komputer
      // rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
      //atur waktu secara manual
      // January 21, 2019 jam 10:30:00
      // rtc.adjust(DateTime(2019, 1, 25, 10, 30, 0));
      }
      //nah set nya dari line ini jangan dari ynag atas
      rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
      //atur waktu secara manual
      // January 21, 2019 jam 10:30:00
      // rtc.adjust(DateTime(2019, 1, 25, 10, 30, 0));
      }

      kalo udah beres seperti bisa kasih tanda strip lagi om
      semoga membantu hehehe