Sebuah papan Arduino memang banyak gunanya. Kali ini kita akan coba memanfaatkan sebuah Arduino (Uno) sebagai RTC. Sudah pada tau RTC, kan? RTC kependekan dari ‘Real Time Clock’ alias jam digital yang presisi. RTC sebenarnya adalah solusi kebutuhan akan waktu yang presisi yang berupa hardware. Yang saya maksud ‘hardware’ di sini adalah sebuah IC (Integrated Circuit) RTC. Salah satu IC RTC yang terkenal dan sering dipakai adalah seri DS1307 buatan Dallas Semiconductor, Inc. IC RTC ini kecil dimensinya dan menggunakan protokol serial I2C/IIC untuk komunikasi data dengan kontrollernya. Di pasaran selain tersedia IC-nya saja, ada juga yang menjual dalam bentuk kit/modul yang siap pakai dan kompatibel dengan Arduino.
Tapi kali ini saya ngga membahas aplikasi IC RTC (DS1307) dengan Arduino ya, tetapi memanfaatkan Arduino itu sendiri sebagai RTC. Jadi solusi yang saya tawarkan disini adalah solusi yang bersifat software bukan RTC dalam bentuk hardware. Beberapa keuntungan menggunakan solusinya adalah bisa menghemat biaya (karena tidak memerlukan IC tambahan), menghemat jalur PCB sehingga bisa lebih kecil dan compact dimensinya (tentunya akan lebih mudah membuat jalur PCB-nya) dan tentunya bisa meminimalisir kesalahan pembuatan sistem. Tapi bukannya cara ini ngga ada sisi kekurangannya. Bagi sebagian orang mengganggap hardware IC RTC lebih presisi data waktunya karena memang dirancang khusus untuk kebutuhan RTC, tapi menurut saya sih RTC dengan Arduino cukup presisi dan memenuhi kebutuhan saya. Kekurangan kedua mungkin masalah script. Script Anda akan bertambah sedikit rumit dan memakan memori untuk processing timer untuk handling RTC secara software di dalam Arduino. Tetapi hal semacam ini relatif bagi tiap-tiap orang. Kalo menurut saya sih, script handling RTC di Arduino cukup mudah, karena sudah ada library yang menanganinya. Anda hanya cukup memanfaatkan subrutin-subrutin yang sudah tersedia tanpa harus mengetahui seluk beluk pengaturan register/timer yang dibutuhkan, bagaimana timing correction-nya, dsb.
Baiklah, untuk memanfaatkan Arduino sebagai RTC, Anda cukup memanfaatkan library yang bernama ‘Time’. Library ini gratis dan bisa Anda unduh di http://playground.arduino.cc/code/time. Setelah diunduh, ekstrak file zip-nya dan salinlah satu folder library ini ke direktori ‘libraries’ Arduino di laptop Anda (biasanya di folder C:\Program Files\Arduino\libraries). Jika sudah, restart aplikasi Arduino di laptop Anda, dan seharusnya sudah ada tambahan menu ‘Time’ di menu File | Examples. Di sana ada beberapa contoh program/sketch yang berhubungan dengan masalah waktu/RTC.
Demikian sedikit ‘pembukaan’ untuk penggunaan Arduino sebagai RTC. Untuk contoh aplikasinya akan saya bahas pada artikel berikutnya. Salam kreatif 🙂
update : contoh aplikasi RTC dengan Arduino
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com
MAS TOLONG BUATIN PROGARM BEL SEKOLAH DENGAN ARDUINO. DI BEL ITU ADA RTCDS1307 , LCD 16X2, RELAY, 3 TOMBOL, AMA ARDUINO UNO R3
Cara sinkronisasi untuk sensor RTC tipe DS1302 dengan arduino, gimana iya mas?
pake library nya aja mas. Yg penting koneksi SDA SCL nya jangan sampai salah
Kalau RTC tipe DS3102 gak mpake SCL dan SDA mas.
oh, ga tau mas, blm pernah make he he he
Hehe, Okk mas.
Makasih atas pencerahannya mas.
mau tanya mas, pkek RTC bisa nggk ngebuat Arduino jadi hidup dan mati secara otomatis? contohnya seperti televisi yang pkek alarm hidup dan mati otomatis
sangat bisa mas, tapi pengertiannya bukan membuat arduino atau mati ya. Kalo arduinonya mati siapa yg membaca data RTC? 🙂
yg benar, arduino mengatur hidup matinya switch kendali sesuai data waktu RTC secara otomatis. Switch ini bisa dihubungkan ke beban spt motor, televisi, kulkas, dll
Begini mas saya punya project tugas akhir tentang penetralisir asap rokok. Rencananya saya mengunakan metode time clock untuk menonaktifkan alat saya antara jam 22.00-06.00 untuk menghemat listrik. Komponen yang saya gunakan adalah Sensor MQ-9,LCD,Module RTC ,Arduino, Catu Daya, Module Relay, Exhaust Fan. Yang saya tanyakan adalah apa yang harus di control oleh RTC sehingga alat bisa menghemat listrik? . Mohon bantuannya mas terima kasih
untuk menghemat beban listrik mas harus cari diantara alat mas itu mana yang konsumsi arusnya paling besar. Kalo saya lihat sih sepertinya exhaust fan yang paling besar ‘makan’ arus. Nah itu aja yang dimatikan antara jam 22.00 s.d 06.00
siap mas, makasih banyak konsultasinya mas. Sangat membantu
Gan, gimana caranya untuk mengatur waktu On/Off relay sesuai jadwal yang sudah kita tentukan?
Saya menggunakan Arduino Uno R3 + Relay 4 Channel dan RTC DS1302, saya ingin mengontrol Relay secara otomatis berdasarkan waktu yang sudah diatur.
Pin ang saya gunakan adalah, 2,3,4,5.
Mohon bantuannya gan.
pake if aja gan, misalnya:
if ((hour==2)&&(minute==30)&&(second==00)){
//on kan relay
digitalWrite(2,HIGH);
}
Gan saya juga punya project akhir sekolah, dan kebetulan ide saya sama seperti mas ajie, bisa tolong kirimkan coding yang lebih mendetailnya @[email protected]. Terima kasih jika sudah menyempatkan diri membuatkan codingnya
tinggal copy contoh di atas aja mas
Mas kenapa ya, rtc saya kecepatan. Beda 1 menit dlm satu hari. Kira2 kalo mau presisi bgmna? Apakah hrus ganti tipe rtc?. Sy pake rtc ds1307.
coba disetting dulu RTC-nya supaya pas waktunya
Mas mau numpang tanya kalo penggunaan RTC DS1307 dengan DS 1302 apa bedanya yaah? kalo untuk setting time secara real time untuk ds 1302 bagaimana caranya? saya lebih baik menggunakan RTC jenis apa untuk real time seperti waktu pada komputer? soalnya masih bingung. maaf merepotkan dan terima kasih.
ds1302 sy blm pernah pake mas, jadi maaf blm bs membantu utk pertanyaannya.
Kalo sy merekomendasikan pake RTC DS3231 krn lbh stabil dan punya temperature compensation, jd lebih akurat, tdk tergantung pada suhu