Penjelasan singkat
RTC (Real Time Clock) merupakan chip IC yang mempunyai fungsi menghitung waktu yang dimulai dari detik, menit, jam, hari, tanggal, bulan, hingga tahun dengan akurat.
Untuk menjaga atau menyimpan data waktu yang telah di-ON-kan pada module terdapat sumber catu daya sendiri yaitu baterai jam kancing, serta keakuratan data waktu yang ditampilkan digunakan osilator kristal eksternal.
Sehingga saat perangkat mikrokontroler terhubung dengan RTC ini sebagai sumber data waktu dimatikan, data waktu yang sudah terbaca dan ditampilkan tidak akan hilang begitu saja. Dengan catatan baterai yang terhubung pada RTC tidak habis dayanya.
Contoh yang dapat ditemui dalam kehidupan sehari – hari yaitu pada motherboard PC yang biasanya letaknya berdekatkan dengan chip BIOS. Difungsikan guna menyimpan sumber informasi waktu terkini sehingga jam akan tetap up to date walaupun komputer tersebut dimatikan.
Fitur RTC DS1302
Pada Tutorial Arduino ini digunakan RTC dengan ic chip DS1302 yang merupakan produk dari Maxim.
Fitur dari IC DS1302 antara lain :
- Penghitung secara real time untuk detik, menit, jam, hari, tanggal, bulan, dan tahun (valid sampai tahun 2100)
- Format waktu dapat disetting ke dalam format 12 jam (AM/PM) atau 24 jam
- Memiliki kemampuan penyesuaian jumlah hari/bulan terhadap tahun kabisat
- 31 x 8 Battery-Backed General-Purpose RAM
- Menggunakan antarmuka i2c (Serial Data dan Serial Clock)
- Menggunakan tegangan input kerja 5 Vdc
- Harus memakai baterai back-up dengan range 2-5 Vdc
- Konsumsi arus pada baterai back-up yaitu hanya 200nA
- Range suhu kerja optimal antara -40°C sampai +85°C
Dipasaran sudah banyak ditemukan ic DS1302 ini dijadikan module sehingga tidak perlu membuat PCB dan menyiapkan komponen-komponen lainnya dan keunggulannya langsung siap untuk digunakan.
Bentuk fisik modul yang ada pasaran seperti ini
Tutorial mengakses Module RTC DS1302 via Serial monitor
Bahan yang perlu dipersiapkan antara lain :
- Arduino Uno
- Komputer + Software IDE Arduino
- Modul RTC DS1302
- Kabel Jumper
Skematik yang dirangkaikan
Keterangan pengkabelan
Module RTC ↔ Arduino Uno
- VCC ↔ +5V
- GND ↔ GND
- CLK ↔ pin 6
- DAT ↔ pin 7
- RST ↔ pin 8
Library yang dapat digunakan yaitu [ddownload id=”1363″]
Peletakan Library pada OS :
- Mac : (home directory)/Documents/Arduino/libraries
- PC (Windows) : program files (x86) -> Arduino -> libraries
- Linux : (home directory)/sketchbook/libraries
Contoh koding
/* --- www.nyebarilmu.com --- */ //memanggil library header virtuabotixRTC #include <virtuabotixRTC.h> //Inisialisasi pin (CLK, DAT, RST) virtuabotixRTC myRTC(6,7,8); void setup(){ //Inisialisasi port serial arduino dengan komputer Serial.begin(9600); //penulisan data pertama kali dan disarankan saat transfer //ke-2 ini tidak digunakan dikarenakan akan menghapus data //sebelumnya myRTC.setDS1302Time(00,59,23,6,20,10,2017); //detik, menit, jam, hari dalam seminggu, tanggal, bulan, tahun // 00:59:23 "Rabu" 7-September-2017 } void loop(){ //memanggil fungsi untuk update data waktu myRTC.updateTime(); //penulisan data pada serial monitor komputer Serial.print("Current Date / Time: "); //fungsi penulisan data untuk tanggal Serial.print(myRTC.dayofmonth); //penulisan data "/" sebagai separator Serial.print("/"); //fungsi penulisan data untuk bulan Serial.print(myRTC.month); //penulisan data "/" sebagai separator Serial.print("/"); //fungsi penulisan data untuk tahun Serial.print(myRTC.year); //penulisan data untuk jarak Serial.print(" "); //fungsi penulisan data untuk jam Serial.print(myRTC.hours); Serial.print(":"); //fungsi penulisan data untuk menit Serial.print(myRTC.minutes); Serial.print(":"); //fungsi penulisan data untuk detik Serial.println(myRTC.seconds); delay( 1000); }
Hasil simulasi program diatas :
Tutorial mengakses Module RTC DS1302 dengan Penampil LCD 16×2
Bahan yang perlu dipersiapkan antara lain :
- Arduino Uno
- Komputer + Software IDE Arduino
- Modul RTC DS1302
- LCD + PCF8574
- Kabel Jumper
Pada tutorial disini digunakan penampil LCD 16×2 yang dihubungkan dengan module PCF8574 guna menghemat penggunaan kabel jumper.
Artikelnya dapat dibaca : [irp posts=”742″ name=”Cara mengakses modul display LCD 16×2″]
Contoh program sederhana
/* --- www.nyebarilmu.com --- */ #include <Wire.h> #include <virtuabotixRTC.h> #include <LiquidCrystal_PCF8574.h> LiquidCrystal_PCF8574 lcd(0x38); //Inisialisasi pin (CLK, DAT, RST) virtuabotixRTC myRTC(6,7,8); void setup(){ //Inisialisasi port serial arduino dengan komputer Serial.begin(9600); //penulisan data pertama kali dan disarankan saat transfer //ke-2 ini tidak digunakan dikarenakan akan menghapus data //sebelumnya myRTC.setDS1302Time(00,59,23,6,20,10,2017); //detik, menit, jam, hari dalam seminggu, tanggal, bulan, tahun // 00:59:23 "Jumat" 10-Oktober-2017 lcd.begin(16, 2); lcd.setBacklight(255); lcd.home(); //menulis tulisan awal start lcd.setCursor(00,00); lcd.print("Trial RTC DS1302"); lcd.setCursor(00,01); lcd.print("nyebarilmu.com"); delay(2000); lcd.clear(); } void loop(){ //memanggil fungsi untuk update data waktu myRTC.updateTime(); //penulisan data pada serial monitor komputer Serial.print("Current Date / Time: "); //fungsi penulisan data untuk tanggal Serial.print(myRTC.dayofmonth); //penulisan data "/" sebagai separator Serial.print("/"); //fungsi penulisan data untuk bulan Serial.print(myRTC.month); //penulisan data "/" sebagai separator Serial.print("/"); //fungsi penulisan data untuk tahun Serial.print(myRTC.year); //penulisan data untuk jarak Serial.print(" "); //fungsi penulisan data untuk jam Serial.print(myRTC.hours); Serial.print(":"); //fungsi penulisan data untuk menit Serial.print(myRTC.minutes); Serial.print(":"); //fungsi penulisan data untuk detik Serial.println(myRTC.seconds); lcd.setCursor(00,00); lcd.print(myRTC.hours); lcd.setCursor(2,00); lcd.print(":"); lcd.setCursor(3,00); lcd.print(myRTC.minutes); lcd.setCursor(5,00); lcd.print(":"); lcd.setCursor(6,00); lcd.print(myRTC.seconds); lcd.setCursor(00, 1);lcd.print(myRTC.dayofmonth); lcd.setCursor(2,1); lcd.print("-"); lcd.setCursor(3,1); lcd.print(myRTC.month); lcd.setCursor(5,1); lcd.print("-"); lcd.setCursor(6,1); lcd.print(myRTC.year); /* --- 00:59:23 --- 10-10-2017 */ delay(1000); }
Hasil Simulasi menggunakan simulasi proteus :
Selamat mencoba!
Terimakasih sudah berkunjung, dan semoga bermanfaat. Salam nyebarilmu.com!
>> CMIIW <<
min nama penulis artikel ini siapa ya? mau saya masukin namanya di referensi saya min, thanks
admin tunggal : Agus Faudin
thanks
min nama penulis artikel ini siapa ya? mau saya masukin namanya di referensi saya min, thanks
admin tunggal : Agus Faudin
thanks
min mau tanya dong, itu kenapa ya programnya pas di run kenaikan detiknya itu langsung 5 dan kelipatan 5
delaynya ternyata belum masih (5000), sudah diganti, thanks
min mau tanya dong, itu kenapa ya programnya pas di run kenaikan detiknya itu langsung 5 dan kelipatan 5
delaynya ternyata belum masih (5000), sudah diganti, thanks