Permainan catur seringkali menjadi perlombaan, dalam perlombaan tersebut pemain memiliki timer untuk berpikir dalam memilih pion yang akan berjalan. Kali ini kita akan mencoba membuat timer yang akan berguna dalam permainan catur.
1. Alat / Bahan
- Arduino IDE Download
- Library: LiquidCrystal_I2C Download
- Arduino Uno 1 Buah
- LCD 1 Buah
- I2C 1 Buah
- Button 3 Buah
- Project Board 1 Buah
- Kabel Jumper Secukupnya
Segera dapatkan komponen elektronik silahkan temukan disini.
2. Skema Rangkaian
Gambar Rangkaian Membuat Timer Permainan Catur Arduino Uno
Keterangan:
- 5V – VCC I2C
- GND – GND I2C, GND Button1, GND Button2, GND Button3
- SDA – SDA I2C
- SCL – SCL I2C
- D2 – Button1
- D3 – Button2
- D4 – Button3
3. Langkah Kerja
- Pertama Siapkan alat dan bahan yang akan digunakan
- Kedua Lakukan proses wiring dengan menggunakan Gambar skematik rangkaian diatas
- 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
Segera Dapatkan puluhan ebook gratis dengan registrasi melalui tombol di bawah!
/* Program Membuat Timer Permainan Catur Arduino Uno dibuat oleh Indobot */ #include <LiquidCrystal_I2C.h> //Library LCD I2C LiquidCrystal_I2C lcd(0x27, 16, 2); //Alamat I2C #define p1 2 //Button player 1 pada pin D2 #define p2 3 #define ulang 4 //Button reset pada pin D4 long lastButton = 0; long delayAntiBouncing = 50; unsigned long TSekarang; unsigned long TAkhir; int setmenit1 = 1; //Set waktu main player 1 int setmenit2 = 1; int detik1 = 0; int detik2 = 0; bool giliran1 = true; bool done = true; void setup(){ pinMode(p1,INPUT_PULLUP); //Setting I/O pinMode(p2,INPUT_PULLUP); pinMode(ulang,INPUT_PULLUP); lcd.init(); //Mulai LCD lcd.backlight(); //Nyalakan backlight lcd.setCursor(0,0); //Tampilan Awal lcd.print(" P1 P2 "); } void loop(){ if (digitalRead(p1)==0 || digitalRead(p2)==0){ //Baca tombol if ((millis() - lastButton) > delayAntiBouncing){ if(giliran1 && digitalRead(p1)==0){ //Jika player 1 menekan tombol, maka lcd.setCursor(0,0); lcd.print(" P1 >P2< "); done = false; giliran1 = false; //Jalankan waktu player 2 } else if(!giliran1 && digitalRead(p2)==0){ lcd.setCursor(0,0); lcd.print(" >P1< P2 "); done = false; giliran1 = true; } } lastButton = millis(); } else if (digitalRead(ulang)==0){ //Ulang waktu jika reset ditekan setmenit1 = 1; setmenit2 = 1; detik1 = 0; detik2 = 0; done = true; lcd.clear(); lcd.setCursor(0,0); lcd.print(" P1 P2 "); } TSekarang = millis(); if(TSekarang - TAkhir > 1000){ //Kurangi waktu 1 detik pada if(giliran1 && !done){ //player 1 jika giliran 1 detik1--; } else if(!giliran1 && !done){ //player 2 jika giliran 2 detik2--; } TAkhir = TSekarang; } if(detik1 < 0){ detik1 = 59; setmenit1--; //Kurangi menit setiap 60 detik } if(detik2 < 0){ detik2 = 59; setmenit2--; } if(setmenit1 == 0 && detik1 == 0){ //Jika player 1 kehabisan waktu lcd.setCursor(0,0); lcd.print(" Waktu Habis "); lcd.setCursor(0,1); lcd.print("--Player 2 Win--"); done = true; } else if(setmenit2 == 0 && detik2 == 0){ //Jika player 2 kehabisan waktu lcd.setCursor(0,0); lcd.print(" Waktu Habis "); lcd.setCursor(0,1); lcd.print("--Player 1 Win--"); done = true; } else{ //Tampilkan waktu lcd.setCursor(1,1); lcd.print(setmenit1); lcd.print(":"); lcd.print(detik1); lcd.print(" "); lcd.setCursor(11,1); lcd.print(setmenit2); lcd.print(":"); lcd.print(detik2); lcd.print(" "); } }
Kesimpulan:
Sistem timer permainan catur ini memiliki 3 tombol berupa tombol player 1, player 2 dan tombol reset. Ketika tombol player 1 ditekan timer player 2 akan mulai berjalan mundur, sebaliknya jika tombol player 2 ditekan timer untuk player 1 akan mulai berjalan. Jika waktu player 2 berjalan hingga habis batas waktu, player 1 akan menang, hal itu terjadi pula pada player 1
Ingin mengadakan pelatihan Arduino / IoT (Internet of Things) bersama Indobot?