Stopwatch merupakan alat penghitung waktu yang banyak di gunakan pada kegiatan sehari-hari. Saat ini stopwatch sudah banyak di sematkan dalam berbagai macam perangkat elektronik. Kali ini kita akan mencoba membuat stopwatch dengan memanfaatkan arduino uno.
[membership level=”0,1,2,4″]
[lwptoc numeration=”none” title=”Daftar Isi”]
Membuat Stopwatch Arduino Uno
1. Alat / Bahan
- Arduino IDE Download
- Library: LiquidCrystal_I2C Download
- Arduino Uno 1 Buah
- LCD 1 Buah
- I2C 1 Buah
- Button 2 Buah
- Project Board 1 Buah
- Kabel Jumper Secukupnya
Untuk mendapatkan komponen elektronik di atas silahkan temukan di sini.
Baca Juga : Timer Penghitung Waktu Mundur Arduino Uno
2. Skema Rangkaian
Gambar Rangkaian Membuat Stopwatch Arduino Uno
Keterangan:
- 5V – VCC LCD I2C
- GND – GND LCD I2C, GND Button1, GND Button2
- SDA – SDA LCD I2C
- SCL – SCL LCD I2C
- D2 – Pin Data Button1
- D3 – Pin Data Button2
[/membership]
Baca Juga : Lampu Otomatis (LDR) Arduino Uno
3. Langkah Kerja
- Pertama Siapkan alat dan bahan.
- kedua, Lakukan proses wiring dengan menggunakan Gambar skematik rangkaian
- Ketiga, Buka software Arduino IDE yang telah terinstal pada laptop/komputer
- Kemudian, Unduh semua library di atas dan masukkan libray tersebut dengan cara buka Arduino IDE pilih Sketch->Include Library->Add.Zip Library
- Selanjutnya Ketikkan sketch program pada halaman Arduino IDE
- Setelah itu Masukan alamat I2C LCD pada sketch program, untuk mengetahui alamat I2C pelajari materi berikut:
Mencari Tahu Alamat I2C Pada Modul I2C - Segera Lakukan proses uploading program
4. Sketch Program
/* Program Membuat Stopwatch Arduino Uno dibuat oleh Indobot */ #include <LiquidCrystal_I2C.h> //Library LCD I2C LiquidCrystal_I2C lcd(0x27, 16, 2); //Alamat I2C #define start 2 #define berhenti 3 unsigned long mulai, selesai, dataStopWatch; int i=0; int fPaus = 0; long lastButton = 0; long delayAntiBouncing = 50; long dataPaus = 0; void setup(){ pinMode(start,INPUT_PULLUP); pinMode(berhenti,INPUT_PULLUP); lcd.init(); //Mulai LCD lcd.backlight(); //Nyalakan backlight lcd.print(" Tekan Tombol"); lcd.setCursor(0, 1); lcd.print(" Start / Stop"); } void loop(){ if (digitalRead(start)==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(berhenti)==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; // Rumus Penghitungan Waktu 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(" "); } } }
Kesimpulan:
Hasil proyek ini adalah ketika tombol 1 di tekan maka waktu akan mulai berjalan, ketika tombol 1 ditekan kembali maka waktu akan berhenti. Tombol 2 digunakan untuk mengembalikan waktu ke angka 0.