Mengingat permintaan tentang tutorial bikin jam digital menggunakan perangkat Arduino, caratekno akan coba berbagi pengalaman dan sedikit pengatahuan tentang dunia ardunio. Yuk mulai.
RTC (real time clock) IC DS1307 sangat terkenal sebagai modul interface untuk jam digital, bentuknya sangat mungil kecil dan sangat bermanfaat sekali bagi siapa saja yang ingin membuat jam waktu, karena memang sangat praktis.
Komponen Realtime clock adalah komponen IC penghitung yang dapat difungsikan sebagai sumber data waktu baik berupa data jam, hari, bulan maupun tahun.
Table of Contents
Overview
Modul DS1307 berupa IC masi perlu dilengkapi dengan komponen pendukung lainnya seperti crystal sebagai sumber clock dan Battery External 3,6 Volt sebagai sumber energy cadangan agar fungsi penghitung tidak berhenti.
Anda dapat mengkombinasikan display Seven segment, display jenis LCD ataupun jenis matrix led untuk menampilkan data dari IC RTC. Dengan bantuan Arduino microcontroller semua opsi tersebut akan menjadi lebih mudah.
Why do we need a Real Time Clock (RTC)?
Sudah tidak asing lagi buat Arduino Lover mikrokontroller yang paling banyak menggunakan sumber data waktu semisal RTC DS1307 ini. Hasil data waktu, tanggal, bulan dan tahun sangat akurat dan sudah built-in di dalamnya tanpa perlu seting lagi saat powe on awal kali.
Proyek-proyek sederhana sering kali menggunakan timer internal supaya lebih praktis, bisa juga sebagai alternatif untuk proyek data logger, jam, alarm, dan sebagainya.
Konsumsi battery li-ion kancing (CR2032) yang disematkan pada RTC DS1307 sangat hemat daya dapat digunakan selama bertahun-tahun.
DS1307 Real Time Clock
Modul RTC DS1307 harga yang murah rendah konsumsi daya dan mantap sebagai IC pewaktu dan penanggalan secara lengkap dan akurat (detik, menit, jam, hari, tanggal, bulan, dan tahun.
Sekilas beberapa fitur DS1307 yaitu:
- Fungsi pewaktu yang akurat
- Validasi penanggalan hingga 2100
- Rendah konsumsi daya hanya 500nA saat beroperasi dengan battery kancing li-ion CR1032
- Otomatis switching power supply saat tegangan utama bermasalah.
- 24 jam atau 12 jam dengan Indikator AM/PM
- Bentuk mungil seukuran battery komponen yang sedikiti sehingga cukup praktis
DS1307 RTC Pin Diagram
Berikut gambar dibawah ini menunjukkan gambar pin IC RTC DS1307 Untuk mengurangi konsumsi daya, jumlah pin pada IC harus dikurangi. Oleh karena itu, DS1307 RTC menggunakan Komunikasi I2C.
Pin description of DS1307 RTC
- X1 and X2: Pin ini sebagai konektor IC dengan crystal frekuensi 32.768 dengan oscilator internal. Jika menggunakan oscilator luaran pin ini dibiarkan terbuka.
- VBAT: Pin sumber tegangan battery dihubungkan dengan 3V Lithium cell sebagai backup dayanya.
- GND: Ground Pin.
- SDA: Serial Data Pin. Ini ada pin khusus Data Input/Output dari interface I2C. Penarikan tegangan 5V biasanya dibutuhkan Resistor 10KΩ .
- SCL: Serial Clock Input Pin. Pin input clock dari I2C Interface. Ini juga sebagai Penarikan tegangan 5V juga dibutuhkan Resistor 10KΩ.
- SQW/OUT: Pin output gelombang persegi (Square wave). Bila tidak dibutuhkan abaikan saja.
- VCC: Pin Sumber tegangan utama.
Arduino Real Time Clock DS1307 Interface
Sekarang kita telah melihat sedikit tentang Real Time Clock IC DS1307, kita akan melanjutkan dengan antarmuka Arduino dan Real Time Clock. Seperti disebutkan sebelumnya, Modul DS1307 RTC menggunakan Komunikasi I2C.
Dalam antarmuka Arduino Real Time Clock I2C, Arduino Microcontroller selalu bertindak sebagai Master dan DS1307 bertindak sebagai Slave. Master dalam Komunikasi I2C yaitu Arduino dalam hal ini, bertanggung jawab atas sinyal clock, akses bus, sinyal start dan stop.
Diagram Rangkaian
Gambar berikut menunjukkan diagram rangkaian Antarmuka Arduino Real Time Clock DS1307. Sirkuit ini hanya menjelaskan koneksi dasar sehubungan dengan Modul DS1307 (papan yang berisi IC DS1307 bersama dengan kristal, Baterai dan resistor pullup).
Untuk memahami lebih baik tentang Modul RTC DS1307, gambar berikut akan membantu Anda karena berisi rangkaian Modul Jam Waktu Nyata DS1307 yang khas.
Components Required
- Arduino UNO
- DS1307 RTC Module
- 16×2 LCD Display
- Breadboard
- Connecting wires
- Power supply
Circuit Design
Interface RTC Arduino dirancang dengan sistem straight forward. Koneksi SDA dan SCL pin DS1307 RTC ke pin SDA dan SCL Arduino tanpa ada komponen apapun lainnya A4 dan A5.
16×2 LCD dihubungkan ke perangkat Arduino sebagai penampil data informasi waktu dan penanggalan secara lengkap.
Prinsip Kerja Interface Arduino Real Time Clock DS1307
Project sederhana ini hanya mengimplementasikan Real Time Clock DS3017 dan Arduino UNO menggunakan bahasa program yang tidak rumit dan njlimet.
RTClib adalah library spesial biasa digunakan sebagai pemograman yang dapat Anda unduh linknya disini. Maka pastikan anda telah mendownloadnya untuk akses database library Arduino
Fitur RTClib
Untuk mengunggah data dan waktu ke dalam IC DS1307 RTC, kami telah menggunakan fitur yang tersedia di pustaka RTClib, di mana Arduino akan mengunggah tanggal dan waktu dari komputer saat mengunggah kode.
Code
// Date and time functions using a DS1307 RTC connected via I2C and Wire lib | |
#include <Wire.h> | |
#include <LiquidCrystal.h> | |
#include “RTClib.h“ | |
RTC_DS1307 rtc; | |
LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (rs, e, d4, d5, d6, d7) | |
char daysOfTheWeek[7][12] = {“Sun“, “Mon“, “Tue“, “Wed“, “Thu“, “Fri“, “Sat“}; | |
void setup () | |
{ | |
Serial.begin(9600); | |
lcd.begin(16, 2); | |
if (! rtc.begin()) | |
{ | |
lcd.print(“Couldn’t find RTC“); | |
while (1); | |
} | |
if (! rtc.isrunning()) | |
{ | |
lcd.print(“RTC is NOT running!“); | |
} | |
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));//auto update from computer time | |
//rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));// to set the time manualy | |
} | |
void loop () | |
{ | |
DateTime now = rtc.now(); | |
lcd.setCursor(0, 1); | |
lcd.print(now.hour()); | |
lcd.print(‘:‘); | |
lcd.print(now.minute()); | |
lcd.print(‘:‘); | |
lcd.print(now.second()); | |
lcd.print(“ “); | |
lcd.setCursor(0, 0); | |
lcd.print(daysOfTheWeek[now.dayOfTheWeek()]); | |
lcd.print(“ ,“); | |
lcd.print(now.day()); | |
lcd.print(‘/‘); | |
lcd.print(now.month()); | |
lcd.print(‘/‘); | |
lcd.print(now.year()); | |
} |
Applications
- Dengan bantuan antarmuka Arduino Real Time Clock, kami dapat mengimplementasikan beberapa proyek yang terkait dengan pencatatan data, alarm, jam, dll.
- Karena RTC Module DS1307 didukung dengan baterai, ia akan terus mempertahankan waktu bahkan ketika listrik mati.