Menggunakan Modul RTC DS1307 dengan Arduino

Tutorial Arduino menggunakan modul RTC DS1307
RTC (real time clock) merupakan istilah dimana sistem dapat memperoleh data pewaktuan yang sebenarnya (sama dangan waktu yang sebenarnya (waktu saat ini)). Biasanya dalam sistem embedded untuk mendapatkan RTC ini, kita menggunakan chip/IC spesifik yang menangani bagian pewaktuan ini. Contohnya adalah IC DS 1307, DS1338, dan lain sebagainya. Nah pada kesempatan ini, mari kita coba untuk implementasi modul DS 1307 dalam project Arduino.

Percobaan 1
Mari kita mulai dengan program yang sederhana. Menampilkan data jam, dan tanggal via software serial. Bahan yang diperlukan dalam percobaan ini adalah arduino, modul DS 1307, dan kabel jumper.
a. Wiring
Hubungkan arduino dengan modul RTC DS1307 seperti gambar dibawah. Pin power (VCC) dihunungkan dengan pin 5 V pada arduino, SDA ke A4 dan SDC ke A5.
b. Contoh Program 
Sebelumnya install terlebih dahulu library untuk modul DS1307 ini. Buka library manager (tools- manage libraries..), dan ketik saja RTClib. pilih RTClib by Adafruit
Nah, klo sudah silahkan copas kode dibawah dan upload ke arduinonya.

#include "RTClib.h"
RTC_DS1307 rtc;

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

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

  if (! rtc.begin()) {
    Serial.println("RTC tidak terhubung, Cek kembali wiring!");
    while (1);
  }

  if (! rtc.isrunning()) {
    Serial.println("RTC tidak bekerja, Setel ulang waktu!");
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }
Serial.println("Test modul RTC DS1307 ...");

}

void loop () {
    DateTime now = rtc.now();
    Serial.print(HariDalamMinggu[now.dayOfTheWeek()]);
    Serial.print(", ");
    Serial.print(now.day(), DEC); Serial.print('/');
    Serial.print(now.month(), DEC); Serial.print('/');
    Serial.print(now.year(), DEC);  Serial.print("  ");

    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second(), DEC);
    Serial.println();
    delay(1000);
}

c. Hasil
Setelah sukses di Upload, maka hasilnya dapat dilihat di serial monitor (tools-serial monitor..). Atur nomor port COM nya serta baudrate pada 9600.
Nah untuk Aplikasi lainnya dapat dicoba penggunaan modul ini untuk jam alarm seperti pada simulasi disini

d. Catatan
Program diatas digunakan untuk setting otomatis sesuai dengan waktu dimana program dikompile, dalam praktiknya akan ada beberapa kendala ketika perangkat supply 5V ke module DS1307 sedang masti. Rangkaian clock yang di backup oleh battery CR2032 (3v) akan berfungsi kurang lebih selama 1 hari (hasil dari pengetesan saya). Apabila selama itu perangkat tidak menyala lagi, maka harus dilakukan setting ulang terhadap waktu pada DS1307. Apabila teman-teman ada yang memiliki trik khusus terkait hal ini, silahkan share di kolom komentar...

Pencarian Terkait:
  1. Arduino Uno DS1307
  2. Arduino dengan modul RTC DS1307
  3. Tutorial arduino DS1307
  4. Jam Digital Arduino dengan Modul RTC DS1307