Membuat Jam Digital Arduino (Tanpa Hardware RTC)

Ditulis oleh agan

بِسْــــــــــــــــمِ اﷲِالرَّحْمَنِ اارَّحِيم

Halo sahabat Arduino, kita berjumpa lagi disini di awal bulan September Tahun 2015.
Seperti biasanya, di awal bulan seperti ini selalu ada postingan terbaru di Blog Boarduino.

Pada hari ini di daerah saya sedang mendung, mungkin bagi segelintir orang menganggap ini adalah kesempatan yang ditunggu tunggu untuk mengistirahatkan badan (bermalas-malasan).
Saya pernah membaca kutipan dari Hadist Riwayat Bukhori Muslim yang berbunyi "Ilmu tidak dapat diraih dengan mengistirahatkan badan (bermalas-malasan)."

Maka dari itu kita harus memanfaatkan waktu kita dengan maksimal dan menjadi bermanfaat, disaat kebanyakan orang sedang mengistirahatkan badan, alangkah lebih baiknya kita terus belajar agar dinaikkan derajat kita oleh ALLAH Azza wa jalla, Amiin ya rabbal alamin.

Pada tutorial kali ini, kita akan Membuat Jam digital LCD dengan Arduino tanpa menggunakan hardware RTC (Real Time Clock). Lebih tepatnya, kita akan membuat Penampil waktu dan tanggal dengan Arduino. Kita hanya memanfaatkan library Time.h untuk menghitung waktu dan tanggal, tutorial ini bisa dibilang untuk menghemat biaya karena tidak membutuhkan hardware RTC, tetapi tentunya memiliki banyak kekurangan dibandingkan menggunakan hardware RTC.

Kekurangan tanpa menggunakan Hardware RTC :
  • Setting manual untuk penampil waktu dan tanggalnya
  • Akurasi tidak setinggi dengan Hardware RTC
  • Tidak dapat TimeKeeping (saat power dicabut, maka waktu akan mereset dari awal)
Next time, akan diposting juga untuk membuat jam digital dengan Arduino dan RTC DS1307!
Tetap kunjungi saja blog ini gan untuk melihat artikel Tutorial Arduino terbaru :) 
Okelah gan kalau begitu, mari langsung saja kita simak dan praktekkan tutorial kali ini!

Alat dan Bahan yang dibutuhkan :
  • 1x Arduino UNO / Compatible
  • 1x Potensiometer
  • 1x LCD 16x2
  • Kabel jumper secukupnya
  • Breadboard / Projectboard

Langkah - Langkahnya :

1.)  Pertama, Susunlah rangkaian berikut ini pada breadboard


Keterangan Konfigurasi Kabel :
  • Pin RS (kaki 4) di sambungkan dengan pin arduino digital pin 12
  • Pin E (kaki 6) di sambungkan dengan pin arduino digital pin 11
  • Pin D4 (kaki 11) di sambungkan dengan pin arduino digital pin 5
  • Pin D5 (kaki 12) di sambungkan dengan pin arduino digital pin 4
  • Pin D6 (kaki 13) di sambungkan dengan pin arduino digital pin 3
  • Pin D7 (kaki 14) di sambungkan dengan pin arduino digital pin 2
  • Sambungkan potensio 10 KOhm ke  +5v dan GND , dan Pin LCD 3 ke potensio
  • Pin 5 (R/W) ke Ground
2.) Setelah itu sambungkan Arduino pada Laptop/PC dengan menggunakan kabel serial.
3.) Download dan Install program Arduino IDE di Arduino.cc ( If Needed )
4.) Download Library Time.h [DOWNLOAD
5.) Setelah itu klik  menu "Tools -> Sketch -> Include Library -> Add .ZIP Library...
6.) Pilih file zip dari library Time.h tadi, lalu exit software arduino
7.) Setelah itu, jalankan program Arduino-nya.
8.) Klik menu "Tools -> Board -> Arduino Uno"
9.) Klik menu "Tools -> Port -> ( Pilih Port arduino yang terdeteksi di komputer anda )
10.) Lalu masukan Sketch dibawah ini.

Klik LIHAT DONG untuk melihat sketch
/*Membuat Jam digital dengan Arduino Tanpa Hardware RTC
*24 July 2015
*www.boarduino.blogspot.com
*/

#include <Time.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
Serial.begin(9600);
lcd.begin(16,2);
setTime(00,55,00,24,7,14); //(Jam,Menit,Detik,Tanggal,Bulan,Tahun)
}

void loop(){
//Kalender Tahun 2015
if(day() >= 28 && month() == 2 && year() == 15){
  setTime(0,0,0,1,3,15); }
else if(day() >= 30 && month() == 4 && year() == 15){
  setTime(0,0,0,1,5,15); }
else if(day() >= 30 && month() == 6 && year() == 15){
  setTime(0,0,0,1,7,15); }
else if(day() >= 30 && month() == 9 && year() == 15){
  setTime(0,0,0,1,10,15); }
else if(day() >= 30 && month() == 11 && year() == 15){
  setTime(0,0,0,1,12,15); }

//Kalender Tahun 2016
else if(day() >= 29 && month() == 2 && year() == 16){
  setTime(0,0,0,1,3,16); }
else if(day() >= 30 && month() == 4 && year() == 16){
  setTime(0,0,0,1,5,16); }
else if(day() >= 30 && month() == 6 && year() == 16){
  setTime(0,0,0,1,7,16); }
else if(day() >= 30 && month() == 9 && year() == 16){
  setTime(0,0,0,1,10,16); }
else if(day() >= 30 && month() == 11 && year() == 16){
  setTime(0,0,0,1,12,16); }

//Kalender Tahun 2017
else if(day() >= 28 && month() == 2 && year() == 17){
  setTime(0,0,0,1,3,17); }
else if(day() >= 30 && month() == 4 && year() == 17){
  setTime(0,0,0,1,5,17); }
else if(day() >= 30 && month() == 6 && year() == 17){
  setTime(0,0,0,1,7,17); }
else if(day() >= 30 && month() == 9 && year() == 17){
  setTime(0,0,0,1,10,17); }
else if(day() >= 30 && month() == 11 && year() == 17){
  setTime(0,0,0,1,12,17); }

//Kelender Tahun 2018
else if(day() >= 28 && month() == 2 && year() == 18){
  setTime(0,0,0,1,3,18); }
else if(day() >= 30 && month() == 4 && year() == 18){
  setTime(0,0,0,1,5,18); }
else if(day() >= 30 && month() == 6 && year() == 18){
  setTime(0,0,0,1,7,18); }
else if(day() >= 30 && month() == 9 && year() == 18){
  setTime(0,0,0,1,10,18); }
else if(day() >= 30 && month() == 11 && year() == 18){
  setTime(0,0,0,1,12,18); }

//Kelender Tahun 2019
else if(day() >= 28 && month() == 2 && year() == 19){
  setTime(0,0,0,1,3,19); }
else if(day() >= 30 && month() == 4 && year() == 19){
  setTime(0,0,0,1,5,19); }
else if(day() >= 30 && month() == 6 && year() == 19){
  setTime(0,0,0,1,7,19); }
else if(day() >= 30 && month() == 9 && year() == 19){
  setTime(0,0,0,1,10,19); }
else if(day() >= 30 && month() == 11 && year() == 19){
  setTime(0,0,0,1,12,19); }

//Kelender Tahun 2020
else if(day() >= 29 && month() == 2 && year() == 20){
  setTime(0,0,0,1,3,20); }
else if(day() >= 30 && month() == 4 && year() == 20){
  setTime(0,0,0,1,5,20); }
else if(day() >= 30 && month() == 6 && year() == 20){
  setTime(0,0,0,1,7,20); }
else if(day() >= 30 && month() == 9 && year() == 20){
  setTime(0,0,0,1,10,20); }
else if(day() >= 30 && month() == 11 && year() == 20){
  setTime(0,0,0,1,12,20); }

else if(hour() == 0 && minute() == 0 && second() == 0){
  lcd.clear();
  lcd.print ("Date: ");
  printkurangdarinol(day());
  lcd.print(":");
  printkurangdarinol(month());
  lcd.print(":");
  printkurangdarinol(year());

  lcd.setCursor(0,1);
  lcd.print("Time:  ");
  printkurangdarinol(hour());
  lcd.print(":");
  printkurangdarinol(minute());
  lcd.print(":");
  printkurangdarinol(second());
}

lcd.print ("Date: ");
printkurangdarinol(day());
lcd.print(":");
printkurangdarinol(month());
lcd.print(":");
printkurangdarinol(year());

lcd.setCursor(0,1);
lcd.print("Time:  ");
printkurangdarinol(hour());
lcd.print(":");
printkurangdarinol(minute());
lcd.print(":");
printkurangdarinol(second());
delay (1000);
}

void printkurangdarinol(int data){
  if (data >= 0 && data < 10){
    lcd.write('0');
  }
  lcd.print(data);
}

*Keterangan :
setTime(00,55,00,24,7,14); //Ubah sesuai dengan waktu dan tanggal anda
Lihat video simulasi Jam digital Arduino dibawah ini


Terimakasih telah berkunjung, selamat mencoba, semoga bermanfaat.

Blog, Updated pada: 14:05:00

38 comments:

  1. keren brow, tp segera dong yang pake RTC biar bisa digunakan/dpake jam nya.. lbh keren lg kalo pake jadwal sholat,ane sedih blm bisa bikin(pnjuk wktu sholat) akhirny mesjid d lingkungan ane beli yg kecil(krn yg besar mahal),ironisnya madeinchina lg yg notabene kty negara kom****,

    ReplyDelete
  2. bagus banget... mdhan jadi amal jariyah bagi mas andi...

    ReplyDelete
  3. Nice info bro.,, saya juga lagi belajar Arduino niht., mohon pencerahannya yak??

    ReplyDelete
  4. mantap mas muhammad andi prasetyo cuman kok saya ada problem di sketch nya yah kenapa yah bisa bantu ga ??

    ReplyDelete
    Replies
    1. Terimakasih mas, problemnya dimana? insyaAllah saya bantu sebisanya.

      Delete
  5. Trima kasih mas atas infonya saya jadi sedikit mengerti soalnya saya baru belajar dengan arduino

    ReplyDelete
  6. ini kodingnya eror ya? kok ga bisa mas tolong bantu

    ReplyDelete
    Replies
    1. Salam kenal, gak error kok gan... ente dapet pesan error apa?

      Delete
  7. mas mw tanya, fungsi dari potensiometernya untuk ap y? terima kasih

    ReplyDelete
    Replies
    1. Salam kenal, oh itu potensionya untuk ngatur kecerahan Text di LCDnya gan, bukan untuk kecerahan backlight.

      Delete
  8. mas kalo cara narik output datetime nya ke database gimana ya?

    ReplyDelete
  9. Sore gan...salam kenal...
    Maap...mau tanya...ada tutorial buat countdown timer gak gan...

    Kalau bisa yg sekalian di gabungin thermostat control...

    Maap buat belajar gan...newby
    Makasih

    ReplyDelete
    Replies
    1. Malam, salam kenal.

      Countdown timer? untuk saat ini belum ada di blog ini, karena masih ada di draft artikelnya... rencanannya bulan ini mau saya publish gan.

      Contact saya bisa di : muhandi.prasetyo@gmail.com atau Whatsapp 089666285492

      Delete
  10. Terbaek.. min.. gimana caranya supaya jam digital tersebut bisa di set alarm dan nanti nya bisa diaplikasikan untuk menggerakan relay pada jam yang sudah di set.. mohon pencerahan nya min ane pendatang baru

    ReplyDelete
    Replies
    1. Sip, saya catet dulu idenya... mungkin suatu saat saya buatkan artikelnya di blog ini :)

      Delete
  11. kok tak coba listing programnya detiknya itu tidak sesuai ya kecepatannya? lebih lama dari detik yang asli gitu
    bagaimana cara mengaturnya ya?
    terima kasih

    ReplyDelete
    Replies
    1. Salam kenal. Apa iya? padahal pada sketch hanya delay 1detik, tidak ada delay lainnya... Kalau mau lebih akurat, pakai Hardware RTC saja gan.

      Delete
  12. Assalamu'alaikum mas.. postingannya sangat bagus, dan membantu sekali. Oia, saya mw nanya kalo arduinonya mati otomatis kan kembali ke waktu default settingannya. solusinya gimana biar waktunya tetap ngikutin waktu real mas... terima kasih.

    ReplyDelete
    Replies
    1. Waalaikum salam. Coba ke pojok kanan atas blog ini nanti ada searchbox, ketik saja "Jam digital"

      Nanti klik artikel yang berjudul "Membuat Jam Digital dengan Arduino dan RTCDS1307. Terimakasih sudah berkunjung.

      Delete
  13. mas, kalau menggunakan modul dmd p10 gimana yah?

    ReplyDelete
    Replies
    1. Coba ente cari di blog ini, artikel berjudul "Menampilkan suhu pada p10 Led Matrix".

      Ubah aja bagian print dengan hasil Jam dan menit.

      Delete
  14. saya error set time belum dideklarasi
    nah deklarasinya apa min ?

    ReplyDelete
  15. mas . sketch ga ada error tapi kok lcd nya ga nyala . rangkaian nya udah bner tpi ttp aj ga nyala . mohon bantuannya mas ?

    ReplyDelete
    Replies
    1. LCD menampilkan text, tapi backlightnya tidak menyala? atau tidak menyala sama sekali?

      Kalau ada text, tapi backlight (lampu latar) nya gak menyala, hubungkan kaki 15 LCD ke 5v dan kaki 16 ke GND

      Delete
  16. thanks gan, bisa di coba nihh....
    siipp lahhh
    coba cuss...

    ReplyDelete
    Replies
    1. Iya gan, silahkan dicoba.. Semoga Sukses :)

      Delete
  17. Assalamualaikum pa terima kasih banyak atas panduan belajarnya sangat membantu :)
    Oh iya pa untuk jam digital tanpa rtc ini kalo lcd diganti denggan 7 segment ada? Lagi nyoba tapi belum berhasil

    ReplyDelete
    Replies
    1. Waalaikum salam, saya juga blum coba sih ditampilkan di seven segment, karena blum ada seven segmentnya.

      Dicoba coba lagi aja, pahami juga multiplexing.

      Delete
  18. Error gan
    exit status 1
    'setTime' was not declared in this scope

    ReplyDelete
    Replies
    1. Library Timenya ditambahkan dulu ke software Arduino IDE.

      Delete
  19. Gan bisa buat projec tentang memonitoring suhu dan kelembapan ruangan menggunakan sensor suhu DHT11 dan terhubung ke jaringan internet pakai teleduino jadi kita akses ny di web gitu nanti tampilan di web ny Jam sama suhu dan kelembapan boleh di buat video ny gk gan terima kasih

    ReplyDelete
    Replies
    1. Bisa, masih memungkinkan... silahkan dibuat :)

      Delete

Masih Bingung atau Hal Lainnya? Silahkan Bertanya di Kolom Komentar :)

~ Dilarang SARA
~ Dilarang PORNOGRAPHY
~ Dilarang SPAM
~ Dilarang MENINGGALKAN LINK AKTIF
~ Maaf untuk Anonymous, tidak bisa Berkomentar.

Apabila Komentar anda belum muncul, Tunggu sampai di Moderasi.
Terimakasih atas Perhatiannya.


English French German Spain Italian Dutch Russian