Halo bro, selamat datang saya ucapkan kembali pada semua pengunjung di blog BoArduino ini.
Tidak terasa libur telah berakhir, kita mulai kembali rutinitas tak terbatas kita dengan semangat.
Pada artikel kali ini kita akan mencoba membuat countdown timer dengan Arduino. Apa itu Countdown timer gan? Menurut Wikipedia Indonesia, Penghitung waktu mundur (countdown timer) adalah sejenis stopwatch yang dapat menunjukan banyaknya sisa waktu yang tersedia sampai batas waktu yang ditentukan.
Okelah kalau begitu mari langsung kita simak saja ya gan Artikel kali ini :)
Yah seperti yang tertera pada judulnya, Countdown timer banyak sekali manfaatnya untuk kehidupan sehari - hari apabila kita menggunakannya dengan bijak. Contoh kecilnya adalah Timer pada Mesin cuci, Timer pada Oven, Timer pada stop kontak dan lain lain.
Dan pada tutorial kali ini, kita akan mencoba men-setting Timer countdown pada Arduino dengan menggunakan aplikasi Android dan komunikasi Wireless via Bluetooth. Dengan aplikasi ini kita dapat Set Countdown Timer maksimal 24 Jam, dan output dari countdown timer ini dapat ente sesuaikan dengan kebutuhan ente. Bila pada tutorial ini, output dari countdown timernya ane gunakan untuk mengaktifkan led dan buzzer sebagai indikator. Jangan disalah gunakan ya :)
Alat dan Bahan yang dibutuhkan :
1x Arduino UNO (Compatible)
1x LCD 16x2
1x Potensiometer 10K Ohm
1x Bluetooth modul
1x Project board (Breadboard)
Smartphone Android
Aplikasi Android Arduino Countdown Timer, Download di Google Playstore.
Kabel jumper secukupnya
Langkah - Langkahnya :
1.) Pertama, susunlah rangkaian untuk bluetooth seperti gambar dibawah ini
Keterangan Konfigurasi kabel rangkaian Bluetooth :
Pin 5v Arduino dihubungkan ke VCC pada modul Bluetooth
Pin GND pada Arduino dihubungkan ke GND pada modul Bluetooth
Pin RXD pada Arduino dihubungkan ke TX pada modul Bluetooth
Pin TXD pada Arduino dihubungkan ke RX pada modul Bluetooth.
2.) Setelah sudah dengab modul bluetooth, susunlah rangkaian untuk LCD dibawah ini
Keterangan Konfigurasi kabel rangkaian LCD :
Pin RS (Kaki 4) pada LCD dihubungkan ke Pin 12 pada Arduino
Pin E (Kaki 6) pada LCD dihubungkan ke Pin 11 pada Arduino
Pin D4 (Kaki 11) pada LCD dihubungkan ke Pin 5 pada Arduino
Pin D5 (Kaki 12) pada LCD dihubungkan ke Pin 4 pada Arduino
Pin D6 (Kaki 13 pada LCD dihubungkan ke Pin 3 pada Arduino
Pin D7 (Kaki 14) pada LCD dihubungkan ke Pin 2 pada Arduino
Sambungkan potensio 10 K Ohm ke 5V dan GND dan pin LCD 3 ke Potensio
Pin 5 (R/W) ke Ground
3.) Setelah itu sambungkan Arduino pada Laptop/PC dengan menggunakan kabel serial.
4.) Download dan Install program Arduino IDE di Arduino.cc( If Needed )
5.) Setelah terinstall, jalankan program Arduino-nya.
6.) Klik menu "Tools -> Board -> Arduino Uno"
7.) Klik menu "Tools -> Port -> ( Pilih Port arduino yang terdeteksi di komputer anda )
8.) Lalu masukan Sketch dibawah ini, dan terakhir klik upload.
Klik LIHAT DONG untuk melihat sketch
#include<LiquidCrystal.h>intjam=0;//jam (hours)intmenit=0;//menit (minutes)intdetik=0;//detik (seconds)intled=13;charhasil;LiquidCrystallcd(12,11,5,4,3,2);voidsetup(){lcd.begin(16,2);Serial.begin(38400);pinMode(13,OUTPUT);lcd.print(" Aktif Dalam:");lcd.setCursor(4,2);(jam<10)?lcd.print("0"):NULL;lcd.print(jam);lcd.print(":");(menit<10)?lcd.print("0"):NULL;lcd.print(menit);lcd.print(":");(detik<10)?lcd.print("0"):NULL;lcd.print(detik);lcd.display();}voidloop(){if(Serial.available()>0){hasil=Serial.read();lcd.clear();delay(3);lcd.print(" Aktif Dalam:");lcd.setCursor(4,2);(jam<10)?lcd.print("0"):NULL;(jam<10)?Serial.print("0"):NULL;lcd.print(jam);Serial.print(jam);lcd.print(":");Serial.print(" : ");(menit<10)?lcd.print("0"):NULL;(menit<10)?Serial.print("0"):NULL;lcd.print(menit);Serial.print(menit);lcd.print(":");Serial.print(" : ");(detik<10)?lcd.print("0"):NULL;(detik<10)?Serial.print("0"):NULL;lcd.print(detik);Serial.print(detik);lcd.display();}if(hasil=='1'){jam++;delay(200);}elseif(jam>24){jam=0;lcd.setCursor(4,2);(jam<10)?lcd.print("0"):NULL;lcd.print(jam);}if(hasil=='2'){jam-=1;delay(100);}elseif(jam<0){jam=24;lcd.clear();delay(3);lcd.print(" Aktif Dalam:");lcd.setCursor(4,2);(jam<10)?lcd.print("0"):NULL;lcd.print(jam);lcd.print(":");(menit<10)?lcd.print("0"):NULL;lcd.print(menit);lcd.print(":");(detik<10)?lcd.print("0"):NULL;lcd.print(detik);lcd.display();}if(hasil=='3'){menit++;delay(200);}elseif(menit>59){menit=0;lcd.setCursor(4,2);(menit<10)?lcd.print("0"):NULL;lcd.print(menit);}if(hasil=='4'){menit-=1;delay(200);}elseif(menit<0){menit=59;lcd.clear();delay(3);lcd.print(" Aktif Dalam:");lcd.setCursor(4,2);(jam<10)?lcd.print("0"):NULL;lcd.print(jam);lcd.print(":");(menit<10)?lcd.print("0"):NULL;lcd.print(menit);lcd.print(":");(detik<10)?lcd.print("0"):NULL;lcd.print(detik);lcd.display();}if(hasil=='5'){detik++;delay(200);}elseif(detik>59){detik=0;lcd.setCursor(4,2);(detik<10)?lcd.print("0"):NULL;lcd.print(detik);}if(hasil=='6'){detik-=1;delay(200);}elseif(detik<0){detik=59;lcd.clear();delay(3);lcd.print(" Aktif Dalam:");lcd.setCursor(4,2);(jam<10)?lcd.print("0"):NULL;lcd.print(jam);lcd.print(":");(menit<10)?lcd.print("0"):NULL;lcd.print(menit);lcd.print(":");(detik<10)?lcd.print("0"):NULL;lcd.print(detik);lcd.display();}if(hasil=='8'){jam=0;menit=0;detik=0;lcd.setCursor(4,2);(jam<10)?lcd.print("0"):NULL;lcd.print(jam);lcd.print(":");(menit<10)?lcd.print("0"):NULL;lcd.print(menit);lcd.print(":");(detik<10)?lcd.print("0"):NULL;lcd.print(detik);lcd.display();}elseif(hasil=='7'){lcd.clear();delay(3);lcd.print(" Aktif Dalam:");lcd.setCursor(4,2);(jam<10)?lcd.print("0"):NULL;(jam<10)?Serial.print("0"):NULL;lcd.print(jam);Serial.print(jam);lcd.print(":");Serial.print(" : ");(menit<10)?lcd.print("0"):NULL;(menit<10)?Serial.print("0"):NULL;lcd.print(menit);Serial.print(menit);lcd.print(":");Serial.print(" : ");(detik<10)?lcd.print("0"):NULL;(detik<10)?Serial.print("0"):NULL;lcd.print(detik);Serial.print(detik);lcd.display();hitungMundur();delay(1000);}}voidhitungMundur(){if(detik>0){detik-=1;}else{if(menit>0){detik=59;menit-=1;}else{if(jam>0){detik=59;menit=59;jam-=1;}else{aktif();}}}}voidaktif(){lcd.clear();lcd.setCursor(5,1);lcd.println("BOOM");for(intboom=0;boom<4;boom++){digitalWrite(13,HIGH);delay(50);digitalWrite(13,LOW);delay(50);}lcd.display();}
NOTE : Sketch diatas masih dapat ente sederhanakan dengan menggunakan Library Time.h
Terimakasih telah berkunjung, selamat mencoba, semoga bermanfaat.
Mau pakai button virtual atau button hardware? tinggal di sesuaikan saja... Kalau pakai aplikasi android, bisa tambahkan chekbox repeat untuk mejalankan fungsi repeat bila di ceklis.
Kalau mau pakai button hardware (tacticle switch) bisa di buat buttonState di sketch untuk state repeat atau tidak. Sesuaikan saja sketchnya.
Maksudnya itu kan cm start & reset...umpama mau nambahin "mengulang"...gmana ya sketch nya...hehe....buat masukan aja...biar lebih sip gan...hehe...makasih
saya udah mngikitin tutor di atas tapai pas download softwre countdown nya trus mau rubah waktunya..tapi gak berubah trus saya coba buat coding print serial monitor hasil inputan dari androidnay ..terhnya hasail print serialnya 00:00:00 mogon solusinya gan
Mantap gan,artikelnya byk yg aplikatif dan bermanfaat. Ditunggu artikelnya yg berkaitan dgn nfc + arduino..
ReplyDeleteTerimakasih sudah berkunjung dan berkomentar.
DeleteTrimakasih gan...akhirnya coundown timer keluar juga tutorialnya...Gan umpama mau nambahin tombol repeat perintah gmana caranya?
ReplyDeleteMau pakai button virtual atau button hardware? tinggal di sesuaikan saja... Kalau pakai aplikasi android, bisa tambahkan chekbox repeat untuk mejalankan fungsi repeat bila di ceklis.
DeleteKalau mau pakai button hardware (tacticle switch) bisa di buat buttonState di sketch untuk state repeat atau tidak. Sesuaikan saja sketchnya.
Maksudnya itu kan cm start & reset...umpama mau nambahin "mengulang"...gmana ya sketch nya...hehe....buat masukan aja...biar lebih sip gan...hehe...makasih
ReplyDeleteKalau pakai chekbox bisa dengan jika chekbox repeat di ceklis, maka panggil sub rutin hitungMundur()
DeleteKalau pakai button bisa dengan stateButton, misal jika stateButtonTerakhir = repeat maka panggil sub rutin hitungMundur()
Sketch? kan sudah saya bilang coba dibuat sendiri sesuai kebutuhan :)
Maju Terus Boarduino Kembang kan lg Kreatifitas nya bang..
ReplyDeleteTerimakasih telah berkunjung dan berkomentar yang membangun :)
DeleteKnp gag bsa ya mas? Waktu diupload muncul
ReplyDelete"avrdude : stk500_getsyn(): not in sync:resp=0x00
Saat upload, pastikan modul bluetooth dalam keadaan tidak ready. Cabut terlebih dahulu power yang terhubung di modul bluetooth.
DeleteSiap mas, berhasil. gmana ya mas kalo pas sdh hbs wktunya, bsa mengidupkan relay ? Apa yg perlu di rubah dr sketchnya
DeleteTerimakasih
Tinggal diubah saja pada bagian Function Aktif
Deletevoid aktif() {
//Nyalain Relay
}
kalo bluetooth nya diganti pake keypad 4X4 trus sketch nya gimana?
ReplyDeleteTinggal dibuat saja sketchnya, coba lihat contoh sketch keypad dan silahkan dibuat sesuai dengan keinginan.
DeleteMS.jika dengan push button bagaimana ya codenya.makasih.
ReplyDeleteSalam kenal. Sebelumnya sudah pernah mencoba arduino dan button? Kalau sudah pernah, tinggal dibuat saja sesuai keinginan.
Deletesaya udah mngikitin tutor di atas tapai pas download softwre countdown nya trus mau rubah waktunya..tapi gak berubah trus saya coba buat coding print serial monitor hasil inputan dari androidnay ..terhnya hasail print serialnya 00:00:00 mogon solusinya gan
ReplyDeleteSalam kenal. Coba sesuaikan baudrate di sketch sesuai dengan baudrate modul bluetooth ente.
Deleteuntuk tampil di P10 Dot matrix seperti apa programnya pak ?terimakasih
ReplyDeleteCoba dilihat saja yang contoh menampilkan suhu pada panel p10, nanti di modifikasi saja.
Deletebang kalau pakai software serial bisa gak?
ReplyDeleteBisa gan.
DeleteMas Kalau timer dan counter ini digabung dengan menghidupkan lampu dengan android pada tutorial sebelumnya bisa gak mas..?
ReplyDeleteTentu bisa dong..
Delete