Sabtu, 05 Juni 2021

ARDUINO - MENGAKSES RTC DS3231

RTC merupakan singkatan dari Real Time Clock, yang dapat menyimpan waktu & tanggal. Pada kesempatan kali ini kita akan membahas sebuah modul RTC DS3231 yang populer digunakan dan mempunya tingkat akurasi yang tinggi. Modul DS3231 juga terdapat sensor suhu dengan tingkat akurasi ±3ºC. 


 Fitur Modul RTC DS3231 
  • RTC counts seconds, minutes, hours and year 
  • Accuracy: +2ppm to -2ppm for 0ºC to +40ºC , +3.5ppm to -3.5ppm for -40ºC to +85ºC 
  • Digital temperature sensor with ±3ºC accuracy 
  • Two Time-of-day alarms 
  • Programmable square wave output 
  • Register for Aging trim 
  • 400Khz I2C interface 
  • Low power consumption 
  • Automatic power failure battery switch circuitry 
  • CR2032 battery backup with two to three year life 
  • Portable size 
Berikut komponen yang kita perlukan dalam pembahasan ini: 
    1. Arduino Board 
    2. RTC DS3231
    3. Kabel Jumper 

Modul RTC ini menggunakan 2 buah pin I/O pada arduino yaitu pin SDA & SCL (A4 & A5), berikut gambar rangkaiannya:

Tentunya membutuhkan library "RTClib.h" untuk menjalankan modul RTC DS3231 ini pada Arduino, dapat di download disini (https://github.com/adafruit/RTClib/archive/refs/heads/master.zip) dan melakukan instalasi library tersebut pada software Arduino IDE.

Dua step pemrograman untuk mengakses modul RTC DS3231 ini, yaitu:
    1. Upload program Seting Waktu & Tanggal RTC
    2. Upload program akses RTC

Berikut perogram SETING WAKTU & TANGGAL RTC DS3231:

#include "RTClib.h"

RTC_DS3231 rtc;

void setup()
{
Serial.begin(9600);
rtc.begin();

//*************AKTIFKAN BARIS INI UNTUK ADJUST RTC*********************************************
//rtc.adjust(DateTime(2021, 3, 26, 18, 6, 0)); //Tahun, Bulan, Tanggal, Jam, Menit, Detik * //********<<<
rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); //*********<<< //********************************************************************************************

}

void loop()
{
DateTime now = rtc.now();
delay(1000);
}


Ada 2 opsi untuk seting waktu & tanggal pada modul ini, yaitu Manual Adjust & Auto Adjust, untuk melakukan manual Adjust kita dapat memasukkan Waktu dan tanggal secara manual pada mengaktifkan  baris program berikut :

rtc.adjust(DateTime(2021, 3, 26, 18, 6, 0));


Untuk mudahnya kita dapat memilih Auto Adjust, yang mana dapat menyesuaikan langsung Waktu & Tanggal dengan PC/Laptop secara otomatis, dengan mengaktifkan baris program berikut:

rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));


Jika selesai proses seting waktu RTC DS3231, silahkan upload sketch program MENGAKSES MODUL RTC DS3231 berikut:

#include "RTClib.h"

RTC_DS3231 rtc;
char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};

void setup()
{
Serial.begin(9600);
rtc.begin();
}

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

Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(" (");
Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
Serial.print(") ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();

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


Semoga bermanfaat.
Keep Sharing...


0 comments: