Score board futsal
Sistem Kerja Alat:
Alat ini bekerja sebagai penghitung skor futsal, skro ditambahh dan dikurangi dengan menekan tombol dan hasilnya ditampilkan pada 7 segment.
Seven segment sebagai display skor tim 1 dan tim 2 yang masing masing tim terdapat 2 digit seven segment. Sedangkan untuk kontrol naik dan turunya skor menggunakan tombol UP dan DOWN. Tombol RESET digunakan untuk mengembalikan skor menjadi nol kembali. Data skor disimpan pada EEPROM agar saat listrik mati data masih tersimpan.
Kebutuhan Hardware :
Modul Seven segment 2 digit x 2
5 Tombol push ON
Modul Arduino UNO
Power supply +9Volt
Diagram Blok:
Schematics
Modul 7 segment 2 digit Tombol push ON INKUBATEK
Seven Segment 2 Digit Tim 1
Arduino UNO
Tombol Up 1 Tombol Down 2
Tombol RESET Tombol Up 1 Tombol Down 2
Seven Segment 2 Digit Tim 1
Koneksi Arduino UNO dengan 7 segment:
Pin ARDUINO Segment Pin ARDUINO Koneksi
2 A 9 Digit 1
3 B 10 Digit 2
4 C 11 Digit 3
5 D 12 Digit 4
6 E
7 F
8 G
Koneksi Tombol:
Tombol Pin ARDUINO
UP 1 Pin A0
DOWN 1 Pin A1
UP 2 Pin A2
DOWN 2 Pin A3
RESET Pin A4
INKUBATEK
Source Code/Sketch :
/*************************************
* Program : Project 103. Score board futsal * 125 Proyek Arduino Inkubatek
* www.inkubator-teknologi.com * www.tokotronik.com
* ***********************************/
#include <EEPROM.h>
long lastButton = 0;
long delayAntiBouncing = 50;
byte skor1, skor2;
byte seven_seg_digits[10][7] = { { 0,0,0,0,0,0,1 }, // = 0 { 1,0,0,1,1,1,1 }, // = 1
{ 0,0,1,0,0,1,0 }, // = 2 { 0,0,0,0,1,1,0 }, // = 3 { 1,0,0,1,1,0,0 }, // = 4 { 0,1,0,0,1,0,0 }, // = 5 { 0,1,0,0,0,0,0 }, // = 6 { 0,0,0,1,1,1,1 }, // = 7 { 0,0,0,0,0,0,0 }, // = 8 { 0,0,0,0,1,0,0 }, // = 9 };
void setup(){
for(char i=2; i<13; i++){
pinMode(i,OUTPUT);
}
pinMode(A0,INPUT);
pinMode(A1,INPUT);
pinMode(A2,INPUT);
pinMode(A3,INPUT);
pinMode(A4,INPUT);
digitalWrite(A0,HIGH);
digitalWrite(A1,HIGH);
digitalWrite(A2,HIGH);
digitalWrite(A3,HIGH);
digitalWrite(A4,HIGH);
skor1 = EEPROM.read(1);
skor2 = EEPROM.read(2);
if(skor1 == 255)skor1 = 0;
if(skor2 == 255)skor2 = 0;
}
void loop(){
tampilSkor();
tombol();
}
void tampilSkor(){
digitalWrite(10,LOW); digitalWrite(11,HIGH);
digitalWrite(12,HIGH); digitalWrite(13,HIGH);
sevenSegWrite(skor1 / 10);
delay(5);
digitalWrite(10,HIGH); digitalWrite(11,LOW);
digitalWrite(12,HIGH); digitalWrite(13,HIGH);
sevenSegWrite(skor1 % 10);
delay(5);
digitalWrite(10,HIGH); digitalWrite(11,HIGH);
digitalWrite(12,LOW); digitalWrite(13,HIGH);
sevenSegWrite(skor2 / 10);
delay(5);
digitalWrite(10,HIGH); digitalWrite(11,HIGH);
digitalWrite(12,HIGH); digitalWrite(13,LOW);
sevenSegWrite(skor2 % 10);
delay(5);
}
void sevenSegWrite(byte segment){
byte pin = 2;
for (byte segCount = 0; segCount < 7; ++segCount) { digitalWrite(pin, seven_seg_digits[segment][segCount]);
++pin;
} }
void tombol(){
//---tombol UP 1 if(digitalRead(A0)==0){
if ((millis() - lastButton) > delayAntiBouncing){
if (skor1 < 99){
skor1++;
EEPROM.write(1, skor1);
} }
lastButton = millis();
}
//---tombol DOWN 1 if(digitalRead(A1)==0){
if ((millis() - lastButton) > delayAntiBouncing){
if (skor1 > 0){
skor1--;
EEPROM.write(1, skor1);
} }
lastButton = millis();
}
//---tombol UP 2 if(digitalRead(A2)==0){
if ((millis() - lastButton) > delayAntiBouncing){
if (skor2 < 99){
skor2++;
EEPROM.write(2, skor2);
} }
lastButton = millis();
}
//---tombol DOWN 2 if(digitalRead(A3)==0){
if ((millis() - lastButton) > delayAntiBouncing){
if (skor2 > 0){
skor2--;
EEPROM.write(2, skor2);
} }
lastButton = millis();
}
//---tombol RESET if(digitalRead(A4)==0){
if ((millis() - lastButton) > delayAntiBouncing){
skor1=0;
skor2=0;
EEPROM.write(1, skor1);
EEPROM.write(2, skor2);
}
lastButton = millis();
} }
Jalannya Alat :
1. Tampilan normal menampilkan skor 00 pada masing-masing skor tim:
2. Tekan tombol UP1 maka skor pada tim 1 bertambah 1. Begitu juga unutk tombol UP2.
3. Tekan tombol RESET untuk mengembalikan skor menjadi nol semua.
[Uji coba memakai hardware “Master Mikro ARDUINO V2” :
http://tokotronik.com/master-mikro-arduino-v2/ ]0 0 0 0
Home Guest
Tim 1 Tim 2