Stopwatch adalah alat yang digunakan
untuk mengukur lamanya waktu yang diperlukan pada suatu kegiatan, misalnya:
berapa lama seorang pelari memutari lapangan sepak bola, atau berapa waktu yang
dibutuhkan kendaraan mencapai jarak dari titik A ke titik B. Stopwatch dibagi
menjadi2 jenis yaitu stopwatch digital dan stopwatch analog.
Stopwatch digital dan analog mempunyai
ketelitian yang berbeda-beda, analog
memiliki batas ketelitian mencapai 0,1 detik sedangkan Stopwatch digital
memiliki batas ketelitian hingga 0,01.
Gambar
Stop watch
Pada tutorial kali ini saya akan menjelaskan
step-step membuat stopwatch dengan arduino. Komponen-komponen yang dibutuhkan
adalah
1. 1x Arduino Uno
2. 1x LCD Keypad Shield
3. 1x USB A
Gambar Komponen yang
dibutuhkan
Langkah
selanjutnya adalah colokkan LCD shield ke board arduino dan masukkan port usb ke
komputer, buka arduino dan masukkan source code berikut :
/*
Bahar Setiawan
7 September 2015
*/
// memanggil librari
#include <SPI.h>
#include <LiquidCrystal.h>
// konfigurasi lcd
LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);
unsigned long start, finished, elapsed;
boolean r = false;
// Variabel untuk jeda waktu bounching
long lastButtonPressTime = 0;
long debounceDelay = 50;
void setup()
{
lcd.begin(16, 2); // inisialisasi lcd (16 kolom, 2 baris)
lcd.setCursor(4, 0); // set the cursor to first character on line 1 - NOT needed (it sets automatically on lcd.begin()
lcd.print("Arduino");
lcd.setCursor(3, 1);
lcd.print("StopWatch");
delay(2000); // menunggu 2 detik
lcd.clear(); // clear lcd display
lcd.setCursor(3,0);
lcd.print("Bahar Setiawan");
lcd.setCursor(1,1);
lcd.print("Arif Hidayat");
delay(2000);
lcd.clear();
lcd.print("Press select for");
lcd.setCursor(2, 1);
lcd.print("Start & Stop");
}
void loop()
{
CheckStartStop();
DisplayResult();
}
void CheckStartStop()
{
int x = analogRead (0);
if (x < 800 && x > 600 )
{
if ((millis() - lastButtonPressTime) > debounceDelay)
{
if (r == false)
{
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Time Past");
start = millis();
}
else if (r == true)
{
lcd.setCursor(2, 0);
lcd.print(" Final Time ");
}
r = !r;
}
lastButtonPressTime = millis();
}
}
void DisplayResult()
{
if (r == true)
{
finished = millis();
float h, m, s, ms;
unsigned long over;
elapsed = finished - start;
h = int(elapsed / 3600000);
over = elapsed % 3600000;
m = int(over / 60000);
over = over % 60000;
s = int(over / 1000);
ms = over % 1000;
lcd.setCursor(0, 1);
lcd.print(h, 0);
lcd.print("h ");
lcd.print(m, 0);
lcd.print("m ");
lcd.print(s, 0);
lcd.print("s ");
if (h < 10)
{
lcd.print(ms, 0);
lcd.print("ms ");
}
}
}
Bahar Setiawan
7 September 2015
*/
// memanggil librari
#include <SPI.h>
#include <LiquidCrystal.h>
// konfigurasi lcd
LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);
unsigned long start, finished, elapsed;
boolean r = false;
// Variabel untuk jeda waktu bounching
long lastButtonPressTime = 0;
long debounceDelay = 50;
void setup()
{
lcd.begin(16, 2); // inisialisasi lcd (16 kolom, 2 baris)
lcd.setCursor(4, 0); // set the cursor to first character on line 1 - NOT needed (it sets automatically on lcd.begin()
lcd.print("Arduino");
lcd.setCursor(3, 1);
lcd.print("StopWatch");
delay(2000); // menunggu 2 detik
lcd.clear(); // clear lcd display
lcd.setCursor(3,0);
lcd.print("Bahar Setiawan");
lcd.setCursor(1,1);
lcd.print("Arif Hidayat");
delay(2000);
lcd.clear();
lcd.print("Press select for");
lcd.setCursor(2, 1);
lcd.print("Start & Stop");
}
void loop()
{
CheckStartStop();
DisplayResult();
}
void CheckStartStop()
{
int x = analogRead (0);
if (x < 800 && x > 600 )
{
if ((millis() - lastButtonPressTime) > debounceDelay)
{
if (r == false)
{
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Time Past");
start = millis();
}
else if (r == true)
{
lcd.setCursor(2, 0);
lcd.print(" Final Time ");
}
r = !r;
}
lastButtonPressTime = millis();
}
}
void DisplayResult()
{
if (r == true)
{
finished = millis();
float h, m, s, ms;
unsigned long over;
elapsed = finished - start;
h = int(elapsed / 3600000);
over = elapsed % 3600000;
m = int(over / 60000);
over = over % 60000;
s = int(over / 1000);
ms = over % 1000;
lcd.setCursor(0, 1);
lcd.print(h, 0);
lcd.print("h ");
lcd.print(m, 0);
lcd.print("m ");
lcd.print(s, 0);
lcd.print("s ");
if (h < 10)
{
lcd.print(ms, 0);
lcd.print("ms ");
}
}
}
Semoga Bermanfaat....!