Waktu adalah
urutan gerak atau peristiwa menurut persepsi yang mengamatinya, dan waktu itu
relatif, karena di setiap tempat dan bagi setiap orang itu beda. Nah... dalam
postingan kali ini saya ingin berbagi informasi yang bersangkutan tentang
waktu, dan dapat berguna untuk yang sedang belajar tentang elektronika dan
pemprograman yaitu RTC (Real Time Clock).
RTC (Real
Time Clock) merupakan sebuah IC yang memiliki fungsi untuk menghitung waktu,
mulai dari detik, menit, jam, tanggal, bulan, serta tahun. Ada beberapa RTC
yang di jual di pasaran, seperti : DS1307, DS1302, DS12C887, DS3234.
Tiny RTC DS1307
Jam ini
menggunakan baterai memungkinkan Anda untuk menjaga waktu yang cukup akurat
bahkan ketika Arduino dimatikan. Yang sangat berguna dalam data logging dan
aplikasi waktu sensitif lainnya.
Perangkat ini
menggunakan I2C untuk berkomunikasi dengan Arduino Anda.
Yang saya
miliki menggunakan sel LIR2032 Lithium.
Ada beberapa
referensi internet yang dapat digunakan untuk antarmuka perangkat ini.
Pin Outs
Perangkat ini hanya menggunakan 4
pin untuk aktif.
Pemrograman RTC (Real Time Clock)
DS1307 menggunakan Arduino IDE.
Tidaklah sulit untuk memprogram
RTC DS1307 menggunakan Arduino IDE karena telah di sediakan library khusus
untuk mengakses data DS1307, jadi kita tinggal menggunakanya. Anda bisa mengunduh librarynya di sini.
Menghubungkan Arduino Dengan RTC
Rangkaian
Copy Paste dan Upload Sketch
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 RTC;
void setup () {
Serial.begin(9600);
Wire.begin();
RTC.begin();
// Periksa apakah RTC menyimpan waktu.
Jika tidak, waktu dari komputer akan di settingkan ke RTC.
if (! RTC.isrunning()) {
Serial.println("RTC is NOT
running!");
// This will reflect the time that your
sketch was compiled
RTC.adjust(DateTime(__DATE__, __TIME__));
}
}
void loop () {
DateTime now = RTC.now();
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), 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);
}
Tidak ada komentar:
Posting Komentar