Arduino dapat diprogram untuk bekerja selayaknya IC RTC (Real Time Clock). Dengan demikian Anda dapat membuat sistem RTC tanpa membutuhkan hardware IC RTC. Cukup dengan membuat script handler RTC di dalam Arduino, maka fungsi-fungsi yang berhubungan dengan waktu dapat Anda dapatkan dengan mudah dan presisi.
Caranya cukup mudah, yakni dengan menggunakan library ‘Time’. Cara menginstalnya dan tempat mengunduhnya dapat Anda baca tutorialnya di artikel sebelumnya, Arduino sebagai RTC. Jika library ‘Time’ sudah berhasil terinstal di laptop Anda, Anda dapat meneruskan membaca tutorial sebagai berikut, tapi jika belum, sebaiknya dibaca dulu artikel tersebut. [AdSense-A]
Sebagai pengantar, library ‘Time’ adalah library yang memiliki fungsi-fungsi yang berhubungan dengan waktu. Library ini bukan bawaan dari Arduino, melainkan dari komunitas penggemar Arduino dan menyebarkannya secara gratis di internet. Library ini sangat bermanfaat jika Anda membutuhkan sistem waktu yang presisi seperti halnya yang Anda dapatkan jika menggunakan IC RTC semisal DS1307. Function yang berhubungan dengan waktu bawaan Arduino sebenarnya sudah ada, yakni delay (millisecond), namun kurang presisi. Sehingga kurang cocok jika Anda membutuhkan data waktu seperti jam, hari, minggu, tahun, dst. Tapi dengan adanya library ‘Time’ masalah Anda dengan mudah dan cepat akan terselesaikan, dan hebatnya lagi tanpa hardware tambahan!
Berikut ini adalah contoh penggunaan Arduino sebagai RTC. Pada aplikasi ini akan dibuat sebuah program/sketch sederhana yang digunakan untuk mengambil data jam dan tanggal dan ditampilkan ke dalam jendela Serial Port Monitor.
Buka aplikasi Arduino di laptop/komputer Anda dan isikan contoh sketch berikut ini
#include <Time.h> void setup() { Serial.begin(9600); setTime(8,00,0,24,6,15); } void loop(){ Serial.print ("Tanggal = "); Serial.print(day()); Serial.print(":"); Serial.print(month()); Serial.print(":"); Serial.print(year()); Serial.print(" - Jam = "); Serial.print(hour()); Serial.print(":"); Serial.print(minute()); Serial.print(":"); Serial.println(second()); delay (1000); }
Berikut penjelasan script di atas :
Baris [1] : mendefinisikan library ‘Time’ di sketch Arduino
Baris [4] : menginisialisasi port serial
Baris [5] : mengeset waktu awal dari RTC. Ini dilakukan jika Arduino belum disinkronisasikan dengan waktu yang sebenarnya. Untuk sinkronisasi waktu dapat dilakukan dengan waktu komputer, IC RTC, Ethernet shield, atau GPS modul. Kapan-kapan akan saya bahas dalam modul terpisah.
Baris [9-22] : memanggil function day(), month(), year(), hour(), minute(), second() untuk mendapatkan data tanggal, bulan, tahun, jam, menit dan detik, sekaligus mengirimnya ke port serial untuk ditampilkan di jendela port Serial Monitor
Langkah berikutnya, hubungkan papan Arduino Anda dengan laptop melalui kabel USB. Upload sketch di atas dengan menekan shortcut ‘Upload’ atau dengan menekan tombol ‘CTRL+U’. Untuk mengetahui hasilnya, bukalah jendela Serial Port Monitor melalui menu Tools | Serial Monitor. Hasilnya seperti pada gambar di bawah.
Cukup mudah bukan? Aplikasi RTC sendiri kebanyakan digunakan untuk aplikasi yang berhubungan dengan waktu seperti jam digital, pengingat waktu sholat di masjid, pengendali genset, dsb. Anda dapat memanfaatkan library ini untuk menghemat budget, space PCB dan waktu Anda. Selamat berkreasi 🙂 [AdSense-A]
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com
gan mau nanya..gmna cara deteksi sensor tegangan AC di arduino..soalx outputx ngga sma dengan tegangan PLN gan..
pengaturan source codex gmna gan..mhon pencerahannya gann
mksh sblmnya
ini cuma mau deteksi ‘ada tidaknya’ tegangan AC atau ‘mengukur’ tegangan AC?
kalo cuma mau deteksi ada tidaknya teg AC bisa dipake cara spt di http://saptaji.com/2014/05/05/sensordetektor-tegangan-ac-220v-sederhana-dengan-optocoupler-h11aa1/
kalo mau mengukur teg ac bisa pake trafo step down dulu (max 5VDC) kemudian disearahkan baru diukur pake pin analog Arduino (A0-A5)
mksdx gini gan..program yg dipke gan arduino.. //#include int analogIn = A1; int RawValue= 0; double Voltage = 0; //LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { //lcd.begin(16, 2); // komunikasi serial 9600 bit per sekon: Serial.begin(9600); } void loop() { RawValue = analogRead(analogIn);// baca input analog pada pin A0: Voltage = RawValue * (5.0 / 1023.0); // Konversi NilaiSensor (dari 0 – 1023) menjadi tegangan (0 – 5V); //Voltage = RawValue * 5; //Voltage = RawValue ; Voltage = Voltage / 1023; // Menampilkan hasil: //lcd.print( Voltage ); Serial.println(Voltage); delay (800); } ni sorce code yg dipke… Read more »
jadi gini gan, yg diukur arduino nantinya adalah Vrms atau tegangan AC rata-ratanya. yg masuk ke pin analog tidak mesti teg DC, bisa tegangan AC asal tidak melebihi 5V kalo pake sketch di atas, teg yg terukur hanya valid saat itu aja, padahal kita tahu bahwa tegangan ac kan berbentuk sinusoidal yang berubah-ubah setiap waktu dg frekuensi 50Hz. Nah solusinya, agan harus mengukur teg scr terus menurus tiap 20 ms sekali kemudian diambil rata-ratanya (Vrms). Time sampling 20 ms diambil berdasarkan periode gelombang sinusoidal yg frekuensinya 50Hz (T=1/f=1/50 = 20 ms). kalo susah bikin sketch-nya ga usah kuatir gan, pake… Read more »
trus gan mau nanya juga ..knpa output dri modul RTC gini gan…..
1: 00-01-01 00:00:00
2: 00-01-01 00:00:00
3: 00-01-01 00:00:00
4: 00-01-01 00:00:00
5: 00-01-01 00:00:00
6: 00-01-01 00:00:00
7: 00-01-01 00:00:00
8: 00-01-01 00:00:00
9: 00-01-01 00:00:00
belum diset itu mas, coba diset dulu pake cara ini http://saptaji.com/2015/07/21/cara-mudah-setting-waktu-rtc-ds3231ds3232-dengan-arduino/
tpi RTC yg dipke DS1307…apa sma gan
sama, krn pengalamatan datanya sama persis (identik).
kalo ragu boleh donlot dulu library ‘DS1307.h’ (googling aja)
mnta juga source code yg gan udh prnh ngetes
ke sini aja gan http://saptaji.com/2015/07/19/5-menit-handling-rtc-ds3231ds3232-dengan-arduino/
ada contoh programnya juga
source code yg dipke ini gan..
#include
#include
#include “RTClib.h”
#include
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
RTC_DS1307 RTC ;
void setup() {
// Wire.begin();
Serial.begin(9600);
Wire.begin();
RTC.begin();
lcd.begin(16, 2);
pinMode(8,OUTPUT);
if(!RTC.isrunning());
Serial.println(“RTC is NOT running!”);
RTC.adjust(DateTime(_DATE_,_TIME_));
}
}
void loop() {
DateTime now = RTC.now();
lcd.setCursor(0,0);
lcd.print(now.day(),DEC);
lcd.print(‘/’);
lcd.print(now.month(),DEC);
lcd.print(‘/’);
lcd.print(now.year(),DEC);
lcd.print(‘ ‘);
lcd.setCursor(0,1);
if(now.hour()<10)
lcd.print('0');
lcd.print(now.hour(),DEC);
lcd.print(':');
if(now.minute()<10)
lcd.print('0');
lcd.print(now.minute(),DEC);
lcd.print(':');
if(now.second()<10)
lcd.print('0');
lcd.print(now.second(),DEC);
delay(1000);
}
coba baca ini dulu gan http://saptaji.com/2015/07/19/5-menit-handling-rtc-ds3231ds3232-dengan-arduino/
coba dulu contoh programnya
gan… pernah buat jam digital + alarm dengan arduino dan RTC…?
monitornya dengan LCD 16 x 2
klo pernah tolong dishare codingnya..
thank’s
itu mah mudah mas, tinggal search aja di blog sy ini, tinggal digabung2in aja script-nya
saya pernah pakai model Alarm,alarmRepeat saya gabungkan dengan jam digital. begitu waktunya mununjukkan settingan alarm knp di LCD monitornya tidak mau berubah tulisannya ya… padahal sudah saya setting tulisan utk indikasi alarm. tulisannya masih yg muncul jam digitalnya. kira2 scripnya ada yg salah ga mas..?
thank’s
gan, saya mau buat alarm tp gak pake RTC hardware, pakenya ya RTC software ini, bsa gak?
bisa dong
Mas gimana caranya untuk cek hari pada RTC ds3231 ??? Mohon bantuannya mas
tinggal manggil function ‘day()’ mas, contohnya : Serial.print(day());
catatan : jangan lupa define library-nya lebih dulu
mas, kalo hasil output nya mau dtampilin di led matrix p10 kira kira gmana ya gan?
tinggal ditambahkan dmd-library mas buat handling led matrix P10 nya
gan itu pake arduino uno r3 bisa ?
bisa aja
Gan ane rencana mau bikin blower otomatis pakek arduino , kira2 alat yg diperlui untuk pembuatan apa aja ya gan , soalnya masih newbie mau coba bikin gan , tolong gan pencerahannya terimakasih
dilihat dulu spek blowernya kayak gimana (tegangan? arus?). Habis itu bikin driver-nya (penghubung) antara arduino dan blower. Driver ini hubungannya dengan tujuan pengendalian. Jika tujuannya hanya untuk on/off blower, drivernya akan beda jika tujuannya untuk mengendalikan kecepatan.
Jadi alat yg diperlukan:
1. Arduino
2. Blower
3. Driver –> berdasarkan spesifikasi, menyesuaikan tujuan pengendalian
Mas mau nanya, berkaitan dengan skripsi saya, kan saya buat alat monitoring baterai.
Sensor tegangan mnggunakan voltage divider
Sensor arus dengan ACS712
Nah semisal mau buat wh/kwh meter DC untuk waktunya ambil dari mana ya ?
Syukur kalo ad contoh sketchnya ^_^
Trimakasih, semoga semakin barokah ilmunya
dari RTC eksternal atau dari internal arduino pake library time/timealarm juga bisa.
Utk library time/timealarm bisa dibaca di sini http://saptaji.com/2015/06/24/arduino-sebagai-rtc-real-time-clock/ atau http://saptaji.com/2015/06/24/contoh-aplikasi-rtc-menggunakan-arduino/
udah ada contoh sketch-nya di artikel masing2, bisa dikembangkan sesuai kebutuhan
Mas Aji,
Mohon pencerahannya.
Bagaimana caranya agar waktu yang ditampilkan tetap sesuai walaupun arusnya diputus dan disambungkan kembali.
Yang saya alami ketika arusnya diputus dan disambungkan kembali, waktu yang ditampilkan tidak berlanjut.
Demikian mas, terima kasih
kalo modul RTC biasanya udah ada baterai-nya mas (kita menyebutnya baterai jam). Biasanya ada di balik IC RTC. Kemungkinan modul RTC punya mas sedang habis baterainya. Coba aja diganti
Gan… Kalau mau menjadikan timer arduino seperti plc itu gmna gan ?? apakah harus pakek rtc jga?
misal buat mengontrol 3 relay dengan masing-masing relay timernya berbeda. relay 1 menyala slama 30 mnit kemudian mati selama 1 jam. relay 2 menyla slama 10 menit kemudian mati slama 30 menit. terus relay 3 menyala slama 1 jam mati slama 1 jam. programnya itu harus berjalan bebarengan saat pertma kali arduino dihidupkan seperti PLC. itu skectnya bagaimana ya mas ?? mohon pencerahannya.
mudah itu mas. Coba pake library simpleTimer.h atau TimeAlarms.h. Untuk timealarms contohnya ada di http://saptaji.com/2015/06/25/membuat-alarm-berdasarkan-waktu-dengan-arduino/ , tinggal dikembangkan sesuai kebutuhan
Mas klau buat nampilin jam di led matrix p10 ya gmane. Mas atu bisa kirim coding ya mas ke imeil.
[email protected]
Trimakash
led matrix p10 atau yang lain pake metode scanning, bisa langsung ke arduino (+driver) tp karakter terbatas atau pake shift register (karakter lebih panjang).
Bang bisa kasih tutornya arduino ama xbee endak lagi bingung nih.
Terimakasih
mau nanyak mas ini maksutnya apa ya mas saya belum ngerti masih pemula liquidcrystal lcd(12,11,5,4,3,2) sedangkan di lcd itu adanya(D0,D1,D2,D3,D4,D5,D6,D7) masang nya gimana ya mas terimakasih
jadi gini mas, kalo kita ake library LiquidCrystal.h, kita harus patuh dengan ‘aturan’ semua function yang ada di library ini. Salah satunya adalah ketika kita mau mendefinisikan sebuah ‘instance’ lcd dengan memanggil function ‘LiquidCrystal’. Maka kita harus patuh dengan ‘aturan’ yang sudah ditetapkan di LiquidCrystal.h, yaitu : LiquidCrystal lcd(rs, en, d4, d5, d6, d7); Setelah itu kita tinggal menghubungkan pin rs, en , d4 sd d7 milik LCD ke pin Arduino. Kalo misalkan konfigurasi wiring kabel adl: * LCD RS pin konek ke pin 12 * LCD Enable pin konek ke pin 11 * LCD D4 pin konek ke pin… Read more »
gan kira kira kalau kita mau mengatur waktu pake RTC terus nginputnya pakai push button dan outputnya tampil di lc 16 x 2 tersimpan di eeprom bisa nggak?
dan terus saya juga ingin menginputnya dengan hp android …tolong jawabannya gan , terima kasih
bisa, bisa dan bisa. Intinya kalo mas bisa membayangkannya, berarti diwujudkan juga bisa 🙂
Selamat pagi mas Saptaji. Tutorialnya sangat membantu. Terima kasih.
Mas, bikin tutorial buat tentang penyimpanan data finger print ke Microsoft SD menggunakan Arduino dong mas..biar tambah ilmu baru bagi kami yang belum tahu. Terima kasih 😀
alatnya ngga punya mas 🙂
Gan mau tanya
Rtc yang internal arduino itu klau power d matikan lalu d nyalakan lagi?
Waktunya perlu setting ulang apa tdk?
Klau pakai eksternal ic kan ada baterai cmos nya untuk backup.
perlu setting ulang mas, krn ‘rtc’ di sini hanya software aja. Sebaiknya arduino nya diberi baterai backup spy tidak hilang datanya
setting waktu dan tanggal tersinkronisasi langsung dengan waktu di pc gimana caranya gan?
intinya ‘get pc time’, kirim ke arduino via usb trus eksekusi script sbb:
rtc.setTime(12, 0, 0); // Set the time to 12:00:00 (24hr format)
rtc.setDate(1, 1, 2014); // Set the date to January 1st, 2014
angka-angka di atas di dapat setelah function ‘get pc time’
keterangan : script di atas ada di dalam library ds3231.h, silahkan di download dulu
Mass mau nanya. Kalau mau atur waktu rtc sesuai dengan waktu yang sekarang bagaimana.?
langsung aja diset di script-nya. Hanya saja krn ini sifatnya ‘RTC by software’ harus dijaga supaya arduino tidak mati kalo powernya mati (dikasih battery backup)
mau tanya bg ajii, tambahan koding nya utk pengaplikasian dengan menggunakan servo dong bg, makasii 🙂
tutorial servo ada di sini servo arduino. Tinggal digabungkan 🙂
siang, maaf saya mau tanya . saya punya auto adzan yang bisa mengontrol lampu untuk mati selama 10 kemudian menyala kembali, tampa sengaja codingnya saya reset dan saya mau upload kembali tidak bisa, apakah anda membantu saya
programnya punya ga mas?
saya sudah pake arduino 1.8.0 dan sudah saya buat bahasa coodingnya karena saya merubah posisi gps nya, tetapi tulisannya error pas saat mau upload
coba lepas semua koneksi pin/port arduinonya mas, kemudian coba upload programnya
saya lanjut ke email anda ya, soalnya coodingnya begitu verify error tanpa konek ke port
mas saya mau tanya, jadi saya lagi ada project nih, projectnya yaitu “pemberi pakan ternak otomatis” nah kan saya sudah hidupin servonya pake Delay, bisa sih tpi ada batasnya. gk bisa terlalu lama, semisal 3jam-dst. nah cara programnya gimana agar aku bisa nge-SET si servo akan hidup setiap semisal (6-jam sekali) dengan jumlah waktu delay sebesar (2000) HIGH &LOW.
terima kasih , ini nomer wa saya : 081235965623
pake library TimeAlarms.h lebih mudah mas contohnya bisa dibaca di http://saptaji.com/2015/06/25/contoh-aplikasi-alarm-jam-digital-dengan-arduino/
kak mau tanya, kalau saya membuat penyiraman otomatis menggunakan rtc dan sensor kelembapan dengan output pompa untuk memprogram agar pompanya menyala saat waktu dan kelembapan yang sesuai bagaimana ya kak? sejauh ini pompa baru bisa menyala sesuai kelembapan saja tidak sesuai dengan waktu yg di jadwalkan utk menyiram. trmks kak mohon pencerahannya.
untuk mudahnya tambahkan RTC DS3231 + library TimeAlarm.h. Nanti tinggal di-define aja waktunya
kebetulan saya sudah membeli rtc nya tapi yang tipe DS1307 kak, apakah bisa juga?