Membuat StopWatch Sendiri menggunakan Arduino Uno dan LCD 16x2
Pada Artikel sebelumnya saya sudah berbagi mengenai Cara Menampilkan Karakter pada LCD dengan Menggunakan I2C Module. Kali ini kita akan belajar Membuat StopWatch Sendiri menggunakan Arduino Uno dan LCD 16x2.
Kebutuhan Hardware :
1. Arduino Uno
2. Module I2C LCD 16x2
3. LCD 16x2
4. Tact Switch
Untuk Pembelian Komponen bisa BELI DISINI.
Berikut ini adalah Schematicnya :
Setelah terkoneksi dengan baik silahkan upload Sketch dibawah ini :
Kebutuhan Hardware :
1. Arduino Uno
2. Module I2C LCD 16x2
3. LCD 16x2
4. Tact Switch
Untuk Pembelian Komponen bisa BELI DISINI.
Berikut ini adalah Schematicnya :
Setelah terkoneksi dengan baik silahkan upload Sketch dibawah ini :
/***************************
StopWatch LCD 16x2
Oleh : Workshop Electronics 3 in 1
Website : www.arduinoindonesia.id
Toko Online : www.workshopelectronics3in1.com
Blog : www.edukasielektronika.com
Profil : www.workshopelectronics3in1.co.id
Copyright @2017
****************************/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F ,2,1,0,4,5,6,7,3, POSITIVE);
unsigned long mulai, selesai, dataStopWatch;
int i=0;
int fPaus = 0;
long lastButton = 0;
long delayAntiBouncing = 50;
long dataPaus = 0;
void setup(){
pinMode(A0,INPUT);
pinMode(A1,INPUT);
digitalWrite(A0,1);
digitalWrite(A1,1);
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("ArduinoIndonesia");
lcd.setCursor(0, 1);
lcd.print(" StopWatch");
delay(2000);
lcd.clear();
lcd.print(" Tekan Tombol");
lcd.setCursor(0, 1);
lcd.print(" Start / Stop");
}
void loop(){
if (digitalRead(A0)==0){
if ((millis() - lastButton) > delayAntiBouncing){
if (i==0){
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Start Timer");
mulai = millis();
fPaus = 0;
}
else if (i==1){
lcd.setCursor(0, 0);
lcd.print("Stop Timer ");
dataPaus = dataStopWatch;
fPaus = 1;
}
i =!i;
}
lastButton = millis();
}
else if (digitalRead(A1)==0 && fPaus == 1){
dataStopWatch = 0;
dataPaus = 0;
lcd.clear();
lcd.print("Reset Stopwatch");
lcd.setCursor(0, 1);
lcd.print("0:0:0.0");
delay(2000);
lcd.clear();
lcd.print(" Tekan Tombol");
lcd.setCursor(0, 1);
lcd.print(" Start / Stop");
}
if (i==1){
selesai = millis();
float jam, menit, detik, miliDetik;
unsigned long over;
// MATH time!!!
dataStopWatch = selesai - mulai;
dataStopWatch = dataPaus + dataStopWatch;
jam = int(dataStopWatch / 3600000);
over = dataStopWatch % 3600000;
menit = int(over / 60000);
over = over % 60000;
detik = int(over / 1000);
miliDetik = over % 1000;
lcd.setCursor(0, 1);
lcd.print(jam, 0);
lcd.print(":");
lcd.print(menit, 0);
lcd.print(":");
lcd.print(detik, 0);
lcd.print(".");
if (jam < 10){
lcd.print(miliDetik, 0);
lcd.print(" ");
}
}
}
Untuk lebih jelasnya silahkan lihat video berikut ini :
Komentar
Posting Komentar