CARA PROGRAM RTC DS1307 MENGGUNAKAN ARDUINO


RTC adalah Real Time Clock, Biasanya IC yang mempunyai clock sumber sendiri dan mempunya internal Baterai untuk menyimpan tanggal dan waktu.Berupa detik ,menit ,jam ,tanggal ,bulan dan tahun.Module RTC yang umum di gunakan di Mikrokontroler memakai IC DS3231, DS1307 dan DS1302.
Pada kesempatan sebelumnya kita sudah membahas Tutorial RTC DS3231 pada Cara Program RTC DS3231 Menggunakan Arduino. Untuk menambah alternatif penggunaan RTC ,Pada kesempatan kali ini kita akan membaha Tutorial Cara Program RTC Real Time Clock DS1307 Menggunakan Arduino
Arduino secara internal tidak di lengkapi denga RTC sehingga untuk membuatan project yang membutuhkan waktu Real Time di perlukan module RTC yang sudah terpasang baterai,sehingga saat power supply mati, RTC tetap dapat power supply dari baterai.
Mikrokontroler Arduino berkomunikasi dengan RTC DS1307 Menggunakan komunikasi I2C (Inter-Integrated Circuit).Sehingga pin yang di gunakan ada 4 yaitu VCC untuk supply tegangan 5V DC, GND , SDA (Serial Data) dan SCL (Serial Clock).Untuk lebih jelasnya dapat mengikuti tutorial berikut ini :

Top View RTC DS1307
Button View RTC DS1307

Module/Part  yang di butuhkan :
  1. Arduino
  2. Modul RTC DS1307
  3. kabel jumper secukupnya
Library :

Download library RTC DS1307 di sini (sumber adafruit)

WIRING DIAGRAM 
  Berikut wiring diagram yang menghubungkan arduino dengan RTC DS1307



ALOKASI PIN ARDUINO   
Komunikasi RTC DS1307 denga Arduino menggunakan komunikasi I2C, pin yang digunakan pin SDA dan SCL.untuk lebih jelasnya sebagai berikut :  

RTC DS1307   Arduino     
SCL A5
SDA A4
VCC +5V
GND Gnd

CONTOH PROGRAM
 

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

RTC_DS1307 rtc;

char namaHari[7][12] = {"Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"};

void setup () {



  Serial.begin(9600);
  if (! rtc.begin()) {
    Serial.println("RTC TIDAK TERBACA");
    while (1);
  }

  if (! rtc.isrunning()) {
    Serial.println("RTC is NOT running!");
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));//update rtc dari waktu komputer
  }
}

void loop () {
    DateTime now = rtc.now();
    Serial.print(namaHari[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(3000);
}

OUTPUT SERIAL MONITOR



Subscribe to receive free email updates:

5 Responses to "CARA PROGRAM RTC DS1307 MENGGUNAKAN ARDUINO"

  1. apakah ada fitur kalibrasi pada ds1307
    soalnya itu ic sering selisih waktunya

    BalasHapus
  2. apakah sama dengan rtc ds 1302, punya librarynya RTC ds 1302??

    BalasHapus
  3. Bang mau nannya, saya kan mau bikin penjadwalan upload file menggunakan module ini,, nah itu gimana? Misalnya gini saya ada data dari sensor, maunya data tersebut di upload ke server setiap 30 Menit/ 1 Jam sekali.. nah itu gmna?

    BalasHapus
    Balasan
    1. Pertama harus di tentukan dulu, kirim datanya pakai apa?, untuk kirim data bisa pakai gprs,wifi,ethernet atau kabel serial. selanjutnya dari rtc di buat schedule kirim datanya.

      Hapus