Monday, September 7, 2015

Membuat Stop Stopwatch Arduino




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 ");
}
}
}

Semoga Bermanfaat....!