Blog Archive

Arduino Indonesia. Gambar tema oleh Storman. Diberdayakan oleh Blogger.

Supported by Electronics 3 in 1

1. Jasa pencetakan PCB single layer dengan harga paling murah.

(Metode Pembuatan dengan Transfer Toner)
>PCB design sendiri (siap cetak) : Rp.150,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

(Metode Sablon Full Masking dan Silk Screen minimal pemesanan 100 Pcs)
>PCB design sendiri (siap cetak) : Rp.200,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

2. Jasa perancangan, perakitan, dan pembuatan trainer pembelajaran elektronika untuk SMK dan Mahasiswa.

3. Jasa perancangan, perakitan, dan pembuatan berbagai macam kontroller, sensor, aktuator, dan tranduser.
>Design Rangkaian / Sistem Elektronika
>Design Rangkaian / Sistem Instrumentasi
>Design Rangkaian / Sistem Kendali
>Kerjasama Riset (data atau peralatan)
>Kerjasama Produksi Produk-Produk KIT Elektronika
>Produksi Instrumentasi Elektronika

4. Jasa Pembuatan Proyek, Tugas Akhir, Tugas Laboratorium, PKM, Karya Ilmiah, SKRIPSI, dll

Like My Facebook

Popular Posts

Minggu, 12 Februari 2017

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 :


17 on: "Membuat StopWatch Sendiri menggunakan Arduino Uno dan LCD 16x2"
  1. bang mau nanya donk. klo bkin split timernya gimna yah

    BalasHapus
  2. Ketika direset dan diulang
    Stopwatch tidak mulai dari nol lagi. Harusnya direset waktu ke nol

    BalasHapus
  3. Supaya program di atas bisa berjalan, ganti aja variabel mulai dengan lastButton, pada hitungan natematik dataStopWath = mulai - selesai

    Tolong bagaimana menampilkan.dua stopwatch pada satu layar lcd

    BalasHapus
  4. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  5. Bang, kalau include liquidcrystalnya yg bermasalah solusinya apa bang?

    BalasHapus
    Balasan
    1. Library nya tidak cocok... atau malah library nya blm ada,,,

      Hapus
    2. Library nya tidak cocok... atau malah library nya blm ada,,,

      Hapus
    3. iya bro , liquidnya erorr mulu , pencerahan dong

      Hapus
    4. Library nya tidak cocok... atau malah library nya blm ada,,,

      Hapus
  6. Kak , waktu nyoba program ini kok detiknya sampek 59 trus ke 00 nya itu 9 nya nyantol , jadi nanti detiknya ngitung 19, 29 sampek 99 trus baru bener 10, 11 gitu

    BalasHapus
  7. caranya tombol start sama tombol finis biar beda gimana ya?

    BalasHapus
  8. exit status 1
    'POSITIVE' was not declared in this scope

    mas, permasalahan di atas maksudnya gimana ya?
    saya pake library https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library

    BalasHapus
  9. Tanya donk bro.. gimana caranya biar tombol start dan tombol stop berbeda yaa? Jadi ada 3 push button (start, stop, reset. Sketch dirubah spt apa yaa broo ?

    BalasHapus
    Balasan
    1. Silahkan dikreasikan sendiri... Tinggal Rubah dikit....

      Hapus
  10. int i=0;
    int fPaus = 0;
    long lastButton = 0;
    long delayAntiBouncing = 50;
    long dataPaus = 0;
    maksud dari setiap inisialisasi di atas apa ya?

    BalasHapus
    Balasan
    1. udah tau maksudnya belum? saya juga bingung maksud dari inisialisasinya

      Hapus