Bagi yang sering melihat atau mengikuti kegiataan olah raga, seperti sepak bola, bulutangkis, tenis, dll. Kita pasti mengetehui sistem point yang digunakan. Biasanya nilai/point ditampilkan pada papan nilai/ papan skore berukuran besar. Selain pemain mengetahui nilai, agar para penonton juga mengetahui nilai hasil dari pertandingan. Papan skore biasanya menggunakan papan secara manual, atau juga tedapat yang sudah lebih canggih menggunakan display LED besar.
Pada artikel ini akan saya bahasa pemrograman project papan skor dengan menggunakan modul SFE Trainer Arduino (LCD dan input tombol dan android), Berikut ini adalah contoh hasil dari papan skornya.
https://github.com/SFEelectronics/Arduino_Library
Download aplikasi Android Score Board
Hubungkan masing-masing komponen sesuai dengan rangkaian diatas, dan pastikan sesuai dengan label module. Jangan lupa install terlebih dahulu library file yang dibutuhkan. Link dapat didownload diatas.
#include <LiquidCrystal.h>
#define bCLR 2
#define bRG 5
#define bLF 4
#define buzz 6
#define ON HIGH
#define OFF LOW
char BT;
int skrKiri, skrKanan, mnt, dtk;
// Keadaan awal , sesuaikan dengan kebutuhan anda.
byte waktu = 2; // 30 Menit
byte babak = 1; // Babak Pertama
LiquidCrystal lcd(A0, A1, A2, A3, A4, A5);
void setup() {
Serial.begin(38400);
lcd.begin(16, 2);
pinMode(bCLR, INPUT_PULLUP);
pinMode(bRG, INPUT_PULLUP);
pinMode(bLF, INPUT_PULLUP);
mnt = waktu;
dtk = 0;
}
void loop() {
if (Serial.available() > 0) {
BT = Serial.read();
}
if (digitalRead(bLF) == LOW || BT == 'A') {
skrKiri++;
}
if (digitalRead(bRG) == LOW || BT == 'B') {
skrKanan++;
}
if (digitalRead(bCLR) == LOW || BT == 'X') {
mnt = waktu; dtk = 0; babak = 1;
skrKiri = 0; skrKanan = 0;
}
lcdDisplay();
dtk--;
if (dtk < 0) {
dtk = 59; mnt--;
}
if (mnt == 0 and dtk < 1 and babak == 1) {
lcd.clear();
lcdBreak();
while (1) {
if (Serial.available() > 0) {
BT = Serial.read();
}
if (digitalRead(bCLR) == LOW or BT == 'X') {
mnt = waktu;
dtk = 0;
babak = 2;
break;
}
}
lcd.clear();
}
if (mnt == 0 and dtk < 1 and babak == 2) {
lcd.clear();
finalScore();
while (1) {
if (Serial.available() > 0) {
BT = Serial.read();
}
if (digitalRead(bCLR) == LOW or BT == 'X') {
mnt = waktu;
dtk = 0;
babak = 1;
skrKiri = 0;
skrKanan = 0;
break;
}
}
lcd.clear();
}
BT = (char)0;
delay(1000);
}
void lcdDisplay() {
// Display Score
lcd.setCursor(0, 0);
lcd.print("SCORE");
lcd.setCursor(0, 1);
lcd.print(duaDigit(skrKiri));
lcd.setCursor(2, 1);
lcd.print('-');
lcd.setCursor(3, 1);
lcd.print(duaDigit(skrKanan));
// Display Timer
lcd.setCursor(6, 0);
lcd.print("Time ");
lcd.setCursor(11, 0);
lcd.print(duaDigit(mnt));
lcd.setCursor(13, 0);
lcd.print(':');
lcd.setCursor(14, 0);
lcd.print(duaDigit(dtk));
// Display Babak
lcd.setCursor(6, 1);
lcd.print("Round ");
lcd.setCursor(13, 1);
lcd.print(duaDigit(babak));
}
void lcdBreak() {
lcd.setCursor(0, 0);
lcd.print(" Babak Ke Dua ");
lcd.setCursor(0, 1);
lcd.print("Klik OK Babak:2");
}
void finalScore() {
lcd.setCursor(0, 0);
lcd.print("TEAM 1 TEAM 2");
lcd.setCursor(7, 1);
lcd.print("VS");
lcd.setCursor(2, 1);
lcd.print(duaDigit(skrKiri));
lcd.setCursor(12, 1);
lcd.print(duaDigit(skrKiri));
}
String duaDigit(byte nilai) {
if (nilai < 10) {
return "0" + String(nilai);
}
else {
return String(nilai);
}
}
Dari program diatas cara kerjanya, Display LCD akan menampilkan Nilai skor , timer dan juga babak. Disini terdapat 2 cara mengakses papan skor ini. Pertama dengan mmenggunakan inputan tombol yang terdapat pada module Tombol Kanan dan Kiri digunakan untuk menambah nilai dari skor pertandingan sesuai posisi team. Tombol tengah digunakan untuk mereset skor/ mengembalikan menjadi 0-0. Dan cara kedua dengan menggunakan aplikasi android yang dapat anda download dari link file dokumen diatas. Berikut ini adalah tampilan dari aplikasia androidnya.
Untuk penggunaanya seperti berikut:
1. Install aplikasi pada Smartphone Android anda
2. Buka aplikasi, jika terdapat notifikasi untuk mengaktifkan bluetooth klik yes
3. Untuk mengkonekan pada modul bluetooth, klik icon Bluetooth dibagian atas aplikasi, maka akan
list bluetooth yang sudah terpairing dengan perangkat anda.
4. Namun jika nama bluetooth modul anda belum terdapat pada perangkat anda, anda harus melakukan pairing terlebih dahulu dengan masuk menu setting bluetooth pada perangkat anda. Setelah proses scaning selesai dan tampil nama bluetooth modul anda, lakukan pairing dan jika diminta untuk memasukan password. Masukan password 1234 untuk standart modul, jika belum perna diganti. untuk mengganti password dan nama modul bluetooth HC-05 anda dapat mebacanya pada artikel AT Command Bluetooth HC-05 .
5. Jika aplikasi sudah terkoneksi, anda sudah dapat mengakses papan skor menggunakan perangkat Android anda.
Nilai timer dapat diatur melaluo program. diprogram atas bernilai int waktu 30 = 30 menit. Selanjutnya setelah waktu babak petama berakhir makan display akan menampilkan waktu istirahat. Untuk memulai babak kedua, klik tombol OK/tengah kemudian timer akan berjalan setelah babak kedua berakhir display akan menampilkan skor akhir. Untuk memulai ulang tekan tombol tengah. Nah sekian dulu tutorial kali ini, jika terdapat pertanyaan tinggalkan pesan pada kotak komentar dibawah. Semoga bermanfaat.