Membuat StopWatch Sendiri menggunakan Arduino Uno dan LCD 16x2

Artikel Terkait Proyek Arduino
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: mycoding.id

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 :











Katalog produk arduino, cek dibawah ini.


Rekomendasi Web Hosting
  1. 20rb perbulan. Diskon hingga 40% kode kupon: MCP Daftar disini (apache).
  2. 10rb perbulan. Diskon hingga 75% kode kupon: MCP Daftar disini (litespeed).
  3. 10rb perbulan. Diskon hingga 70% kode kupon: aff-MCP Daftar disini (apache).