RTC (Real Time Clock) adalah sebutan untuk IC yang menyediakan informasi waktu secara presisi mulai dari detik, menit, jam, tanggal, hari, bulan sampai dengan tahun. Ada banyak tipe IC RTC yang tersedia di pasaran, misalnya DS1307, DS1321, DS1332, dsb. Kebanyakan IC RTC yang banyak digunakan memang buatan Dallas Semiconductor. Produk mereka mudah dikenali dengan prefix ‘DS’ seperti contoh tipe IC yang saya sebutkan tadi.
Pada tutorial kali ini akan coba saya berikan contoh bagaimana melakukan handling RTC DS3231 dengan Arduino dengan waktu cukup 5 menit saja. Kalau saya bisa, tentunya Anda juga bisa kan? He he he. Mengapa dengan Arduino kita bisa membuat suatu rangkaian atau sistem? Setidaknya karena dua hal, dari sisi hardware, RTC yang tersedia di pasaran biasanya sudah dalam bentuk modul siap pakai atau shield yang kompatibel Arduino sehingga konek saja. Dan dari sisi software, sudah tersedia library yang siap digunakan untuk menangani hardware. Tinggal dipanggil saja function-function yang sudah tersedia.
[AdSense-B]
Untuk percobaan, dari sisi hardware siapkan modul RTC DS3231, 4 buah kabel jumper Male to Female, dan Arduino Uno. Kemudian hubungkan antara modul RTC DS3231 dengan Arduino Uno dengan koneksi sebagai berikut :
Vcc RTCÂ <==> Vcc Arduino
Gnd RTC <==> Gnd Arduino
SDA RTC <==> A4 Arduino
SCL RTC <==> A5 Arduino
[alert-announce]Catatan : modul RTC DS3231 adalah rangkaian modul RTC yang memiliki jalur komunikasi serial sinkron IIC/I2C sehingga dapat langsung dihubungkan dengan pin IIC/I2C Arduino di pin A4 dan A5.[/alert-announce]
Kurang lebih prototipe rangkaian di atas jadinya akan seperti gambar di bawah
Kalo kita zoom koneksi wiring RTC DS3231 dengan Arduino, gambarnya adalah sebagai berikut (perhatikan warna kabel jumper)
Untuk sisi software silahkan unduh dulu library yang dibutuhkan di sini dan di sana.  Kemudian tambahkan library tersebut ke IDE Arduino. Caranya bisa di baca di sini. Jika sudah, buka program ‘TimeRTC’ melalui menu File-Examples-DS3232RTC-TimeRTC. Verify program tersebut untuk memastikan semua library sudah dapat digunakan. Jika tidak ada error, silahkan mengunggah sketch tersebut ke papan Arduino Uno. Cara mengunggah sketch bisa Anda baca disini.
Jika sudah diunggah, bukalah jendela Serial Monitor untuk menguji prototipe rangkaian. Cara membuka jendela Serial Monitor dapat dibaca disini. Jika wiring Anda sudah benar, seharusnya akan muncul informasi waktu sebagai berikut :
Mudah, bukan? Sekarang Anda sudah memiliiki jam digital buatan sendiri. Kalau Anda perhatikan, waktu yang ditunjukkan di RTC adalah factory default. Karena dibuatnya di Amerika, maka waktu yang ditampilkan adalah waktu di sana. Untuk cara mengeset waktu RTC akan saya sampaikan pada tutorial berikutnya.
[AdSense-B]
Perbedaan DS3231 dengan DS3232
Pada dasarnya, semua arsitektur DS3231 dan DS3232 adalah sama. Pengalamatan, cara aksesnya juga sama. Yang membedakan adalah besarnya memori internal (SRAM), dimana DS3231 sebesar 12H (18), sedangkan DS3232 sebesar FFH (255). Perbedaan lainnya, pada RTC DS3232 memiliki battery backup untuk SRAM dan output 32 kHz-nya, sedangkan RTC DS3231 tidak memilikinya dan harus menambahkan battery backup sendiri (biasanya jika Anda membeli dalam bentuk modul sudah dibuatkan battery backup-nya). Selain itu, pada RTC DS3232, sampling rate untuk sensor temperatur dapat diset, sedangkan pada RTC DS3231 sudah fix, yakni sekitar 64 detik
Arduino sebagai RTC
Selain menggunakan RTC eksternal, Arduino juga dapat diprogram menjadi sebuah RTC. Dengan demikian Arduino seakan akan dapat memiliki RTC internal yang dapat digunakan untuk berbagai keperluan. Untuk lebih detailnya mengenai Arduino sebagai RTC dapat Anda baca di sini.
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com
Mas, antara RTC DS3231 dan RTC DS1307, yang lebih bagus yang mana ya?dr segi ketahanan, akurasi serta pemrogramannya. Untuk pemrograman antara arduino, RTC dan LCD menggunakan I2C, seperti apa ya?maksudnya RTC dan LCD tsb menggunakan I2C, bagaimana untuk pengaturannya dalam arduino?
1. kalo menurut saya lebih bagus DS3231 mas, karena ada internal clock yg punya kemampuan buat komepensasi temperatur, jadi mau suhu berapapun data clocknya tetap akurat
2. Kalo ada dua device (dua slave) menggunakan line I2C yg sama, tinggal pengalamatan slave-nya aja mas saat mau mengaksesnya.
ada contoh sketch nya mas?masih agak bingung mau menggabungkan 2 command I2C nya..
coba googling dulu mas
sudah bisa mas..tp setiap sy cabut power supply trs sy nyalakan lg, kok tgl dan jamnya tetap tidak berubah ya,maksudnya tidak real time.apa karakter rtc nya emg seperti itu?rtc tsb sy kombinasikan dg lcd 20×4 dan sensor dht22
harusnya real time mas, namanya juga RTC (Real Time Clock). Coba cek prosedur ambil data waktunya (tgl, jam, mnt, dst). Kesalahan bisa terjadi saat pengambilan data waktu atau bisa jadi saat menampilkan data waktu ke LCD
bang, saya pake modul DS3231 + EEPROM AT24C32 untuk jam jadwal shalat, krn sebelumnya menggunakan DS 1307 (jam perhari tambah cepat 3 detik dan jk mati lampu jam reset, sdh ganti D1307 + kristal berkali2 sama saja, dan battery kondisi OK). Efeknya setelah pake DS3231 jam normal walau bbrp kali mati tp jeda iqomat malah tereset. knp ya bang? apakah perlu setting lagi?
Bang , saya mau tanya kalau mau mengontrol beberapa mesin dengan jangka waktu yg berbeda tetapi durasinya tetap sama menggunakan ds3231. itu bagaimana codingannya bang?
mesin berputar dg durasi 20 menit jalan kemudian mati 1 jam lalu berulang sampai 2×24 jam. mohon pencerahan nya. terimaksih
pake library time/time alarm kayaknya bisa lebih mudah. Atau simpan waktu on/off mesin di EEPROM juga bisa
sip bang…
Terimakasih…
kak kalau program untuk bel sekolah otomatis yang pakek WTV dan RTC itu menggunakan arduino uno gmnaka kak???
contoh penggunaan rtc sudah ada di artikel di atas. Utk yg modul audio (WTV020) kapan-kapan saya tulis tutorialnya
Permisi mas ajie, mau tanya nih. Caranya bikin alarm yang aktif selama durasi tertentu saat RTC DS3231 mencapai waktu yang kita tentukan itu gimana ya ? Misalnya alarm aktif selama 1 menit ketika pukul 05.00 pagi. Trims
pake library TimeAlarms.h lebih mudah
bisa di konversi menjadi kecepatan atau tidak gan?
apanya yg dikonversi mas? waktunya? coba kita kembali lagi ke rumus V = S x t dengan V = kecepatan, S = jarak dan t = waktu. Kalau data waktu udah ada di RTC ini, tinggal data jarak yang ditempuh yang harus diketahui supaya bisa mendapatkan data kecepatan sesuai rumus
mas mau tanya
kenapa rtc yang dinyatakan trlalu lama waktunya tidak bisa real time lagi?
misalkan rtc saya nyalakan 7 hari berturut turut selisih errornya sampai 15 detik..
kenapa itu bisa terjadi mas?
kalau cuman sehari memang tidak ada error, tapi kalau seminggu keliatan meleset dari jam aslinya..
nuhun
mas pake rtc ds1307 bukan? kalo ds1307 memang banyak terjadi error karena tdk punya mekanisme error correction, khususnya kalo berada di suhu tinggi. Saya sarankan pake rtc ds3231 atau ds3232, udah ada temperature compensation buat mengurangi error
iya mas bner pakai RTC jenis itu, errornya kalau dinyalakan nambah terus. apa itu bisa pengaruh dari kristalnya ya mas ?
suhu tinggi disini suhu panas apa suhu dingin mas ?
nuhun mas… ini kebetulan buat penelitian skripsi…
suhu tinggi.
kristal juga pengaruh, kl ga salah ds1307 masih pake resonator, kurang presisi/banyak errornya
Mas mau tanya, kan saya setting rtc ds3231 jam 13.00 tanggal 16/02/2018. Pas di serial monitor hasilnya jam 00.00 tanggal 01/01/2000. Kira2 kenapa ya? 9
cara settingnya salah mas. Coba perlihatkan kode settingnya kyk gmn?
mas, rtc ds3231 apa bisa menyimpan melalui eeprom nya tanpa sd card
iya, bisa
Berarti untuk pin 32K itu di pakai ya? Dihubungkan ke mana ya?
Mas bisa kasih contoh program RTC DS3231 dengan Nodemcu esp8266, saya kesusahan nyari librarynya
sebaiknya nodemcu-nya diinstal arduino core aja mas, jadi programnya sama persis dengan yg di atas
ada referensi tutorialnya?
Mas ajie, saya mau nanya, gmna kira” bikin upload penjadwalan? Saya disini mau upload data ke server menggunakan esp8266, dan maunya itu setiap 30 menit /1 jam sekali datanya di upload.. masih belum ada pencerahan..
bisa pake http request mas, bisa http GET/POST, cuma di sisi server nanti harus disiapkan pula handler (API) supaya dapat menerima data
mas saya menggunakan modul rtc dan modul mpu 9250 tapi tidak bisa di satuin soalnya adress nya sama 0x68 cara ngerubah adress rtcnya gimana yah mas?
sepertinya tidak memungkinkan mengubah i2c address RTC karena sudah diset di hardware-nya. Jadi sebaiknya yang diubah adalah address MPU9250 nya dengan cara memberi logic HIGH ke pin ADO sehingga address-nya akan berubah dari 0x68 menjadi 0x69
mas mau nanya librari yang cock untuk membuat penjadwalan pakan dengan jadwal 3 x sehari dan sistem berjalan setiap hari apa ya ?
bisa pake library di atas
Saya kemarin udah coba tapi dia muncul nya 162 162 semua kak itu knpa ya gmm caranya viar dia bisa sesuai sama jam kita ?
pertama kali biasanya harus diset dulu jamnya, karena kadang baterainya mulai habis. Kalau setelah diset masih ngga bisa simpan data jam sekarang, berarti harus ganti baterai
Batrai nya masih baru kak
berarti hrs diset aja dulu waktunya
Mas, saya lagi uji jam sholat pakai RTC DS3231, kalau jam sedang docolok listrik jam RTCnya valid tidak ada selisih.
Tapi kalau jamnya dimatikan beberapa hari jamnya kok jadi lambat sampai 15 menit. Nah ini kenapa mas? Apa memang RTCnya seperti itu?