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 :

/***************************
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

Postingan populer dari blog ini

Cara Mengakses dan Pemrograman Sensor Infrared (IR) Proximity FC-51 Menggunakan Arduino Uno

Cara Mengakses dan Pemrograman MQ-2 Gas Sensor (Methane, Butane, LPG, Smoke) Menggunakan Arduino Uno

Cara Mengakses dan Pemrograman Soil Moisture Sensor (Sensor Kelembaban Tanah atau Hygrometer) Menggunakan Arduino Uno