#include "LedControl.h"
//DataIn = Pin 12
//CLK = Pin 11
//CS = Pin 10
LedControl lc = LedControl(12, 11, 10, 2);
int btnPilih, btnTambah, btnKurang;
int kecerahan = 15;
int j = 0;
int skor[2] = {0, 0};
int skor_ant[2] = {0, 0};
unsigned long delaytime = 200;
void setup() {
Serial.begin(9600);
pinMode(6, INPUT_PULLUP);
pinMode(7, INPUT_PULLUP);
pinMode(8, INPUT_PULLUP);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
digitalWrite(3, HIGH);
lc.shutdown(0, false);
lc.shutdown(1, false);
lc.setIntensity(0, kecerahan);
lc.setIntensity(1, kecerahan);
lc.clearDisplay(0);
lc.clearDisplay(1);
writeOnMatrix(0, 0);
writeOnMatrix(0, 1);
}
void loop() {
btnPilih = digitalRead(6);
if (btnPilih == 0) {
j = !j;
if (j == 0) {
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
}
else {
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
}
while (digitalRead(6) == 0) {
delay(50);
}
}
btnTambah = digitalRead(7);
if (btnTambah == 0) {
skor[j] = skor[j] + 1;
if (skor[j] <= 0 || skor[j] >= 10) {
skor[j] = 0;
}
if (skor_ant[j] != skor[j]) {
writeOnMatrix(skor[j], j);
btnKurang = digitalRead(8);
skor_ant[j] = skor [j];
}
while (digitalRead(7) == 0) {
delay(50);
}
}
btnKurang = digitalRead(8);
if (btnKurang == 0) {
skor[j] = skor[j] - 1;
if (skor[j] <= 0 || skor[j] >= 10) {
skor[j] = 0;
}
if (skor_ant[j] != skor[j]) {
writeOnMatrix(skor[j], j);
btnKurang = digitalRead(8);
skor_ant[j] = skor [j];
}
while (digitalRead(8) == 0) {
delay(50);
}
}
}
void writeOnMatrix(int nomor, int tampil) {
byte N0[8] = {B00000000, B00000000, B00111110, B01000001,
B01000001, B00111110, B00000000, B00000000
};
//1
byte N1[8] = {B00000000, B00000000, B00000000, B01000010,
B01111111, B01000000, B00000000, B00000000
};
//2
byte N2[8] = {B00000000, B00000000, B01100010, B01010001,
B01001001, B01000110, B00000000, B00000000
};
//3
byte N3[8] = {B00000000, B00000000, B00100010, B01000001,
B01001001, B00110110, B00000000, B00000000
};
//4
byte N4[8] = {B00000000, B00000000, B00001100, B00001010,
B00001001, B01111111, B00000000, B00000000
};
//5
byte N5[8] = {B00000000, B00000000, B00100111, B01000101,
B01000101, B00111001, B00000000, B00000000
};
//6
byte N6[8] = {B00000000, B00000000, B00111110, B01001001,
B01001001, B00110000, B00000000, B00000000
};
//7
byte N7[8] = {B00000000, B00000000, B01100001, B00010001,
B00001001, B00000111, B00000000, B00000000
};
//8
byte N8[8] = {B00000000, B00000000, B00110110, B01001001,
B01001001, B00110110, B00000000, B00000000
};
//9
byte N9[8] = {B00000000, B00000000, B00001110, B01001001,
B01001001, B00111110, B00000000, B00000000
};
switch (nomor)
{
case 0:
lc.setRow(tampil, 1, N0[0]);
lc.setRow(tampil, 1, N0[1]);
lc.setRow(tampil, 2, N0[2]);
lc.setRow(tampil, 3, N0[3]);
lc.setRow(tampil, 4, N0[4]);
lc.setRow(tampil, 5, N0[5]);
lc.setRow(tampil, 6, N0[6]);
lc.setRow(tampil, 7, N0[7]);
break;
case 1:
lc.setRow(tampil, 1, N1[0]);
lc.setRow(tampil, 1, N1[1]);
lc.setRow(tampil, 2, N1[2]);
lc.setRow(tampil, 3, N1[3]);
lc.setRow(tampil, 4, N1[4]);
lc.setRow(tampil, 5, N1[5]);
lc.setRow(tampil, 6, N1[6]);
lc.setRow(tampil, 7, N1[7]);
break;
case 2:
lc.setRow(tampil, 1, N2[0]);
lc.setRow(tampil, 1, N2[1]);
lc.setRow(tampil, 2, N2[2]);
lc.setRow(tampil, 3, N2[3]);
lc.setRow(tampil, 4, N2[4]);
lc.setRow(tampil, 5, N2[5]);
lc.setRow(tampil, 6, N2[6]);
lc.setRow(tampil, 7, N2[7]);
break;
case 3:
lc.setRow(tampil, 1, N3[0]);
lc.setRow(tampil, 1, N3[1]);
lc.setRow(tampil, 2, N3[2]);
lc.setRow(tampil, 3, N3[3]);
lc.setRow(tampil, 4, N3[4]);
lc.setRow(tampil, 5, N3[5]);
lc.setRow(tampil, 6, N3[6]);
lc.setRow(tampil, 7, N3[7]);
break;
case 4:
lc.setRow(tampil, 1, N4[0]);
lc.setRow(tampil, 1, N4[1]);
lc.setRow(tampil, 2, N4[2]);
lc.setRow(tampil, 3, N4[3]);
lc.setRow(tampil, 4, N4[4]);
lc.setRow(tampil, 5, N4[5]);
lc.setRow(tampil, 6, N4[6]);
lc.setRow(tampil, 7, N4[7]);
break;
case 5:
lc.setRow(tampil, 1, N5[0]);
lc.setRow(tampil, 1, N5[1]);
lc.setRow(tampil, 2, N5[2]);
lc.setRow(tampil, 3, N5[3]);
lc.setRow(tampil, 4, N5[4]);
lc.setRow(tampil, 5, N5[5]);
lc.setRow(tampil, 6, N5[6]);
lc.setRow(tampil, 7, N5[7]);
break;
case 6:
lc.setRow(tampil, 1, N6[0]);
lc.setRow(tampil, 1, N6[1]);
lc.setRow(tampil, 2, N6[2]);
lc.setRow(tampil, 3, N6[3]);
lc.setRow(tampil, 4, N6[4]);
lc.setRow(tampil, 5, N6[5]);
lc.setRow(tampil, 6, N6[6]);
lc.setRow(tampil, 7, N6[7]);
break;
case 7:
lc.setRow(tampil, 1, N7[0]);
lc.setRow(tampil, 1, N7[1]);
lc.setRow(tampil, 2, N7[2]);
lc.setRow(tampil, 3, N7[3]);
lc.setRow(tampil, 4, N7[4]);
lc.setRow(tampil, 5, N7[5]);
lc.setRow(tampil, 6, N7[6]);
lc.setRow(tampil, 7, N7[7]);
break;
case 8:
lc.setRow(tampil, 1, N8[0]);
lc.setRow(tampil, 1, N8[1]);
lc.setRow(tampil, 2, N8[2]);
lc.setRow(tampil, 3, N8[3]);
lc.setRow(tampil, 4, N8[4]);
lc.setRow(tampil, 5, N8[5]);
lc.setRow(tampil, 6, N8[6]);
lc.setRow(tampil, 7, N8[7]);
break;
case 9:
lc.setRow(tampil, 1, N9[0]);
lc.setRow(tampil, 1, N9[1]);
lc.setRow(tampil, 2, N9[2]);
lc.setRow(tampil, 3, N9[3]);
lc.setRow(tampil, 4, N9[4]);
lc.setRow(tampil, 5, N9[5]);
lc.setRow(tampil, 6, N9[6]);
lc.setRow(tampil, 7, N9[7]);
break;
}
}