const int SEGMENT_PIN [7] = {2, 3, 4, 5, 6, 7, 8,};
#define PB1 10
#define PB2 11
#define PB3 12
#define buzzer 1
int i;
bool digit[10][7] ={
{ 0, 0, 0, 0, 0, 0, 1}, //angka 0
{ 1, 0, 0, 1, 1, 1, 1}, //angka 1
{ 0, 0, 1, 0, 0, 1, 0}, //angka 2
{ 0, 0, 0, 0, 1, 1, 0}, //angka 3
{ 1, 0, 0, 1, 1, 0, 0}, //angka 4
{ 0, 1, 0, 0, 1, 0, 0}, //angka 5
{ 0, 1, 0, 0, 0, 0, 0}, //angka 6
{ 0, 0, 0, 1, 1, 1, 1}, //angka 7
{ 0, 0, 0, 0, 0, 0, 0}, //angka 8
{ 0, 0, 0, 0, 1, 0, 0}, //angka 9
};
void setup() {
Serial.begin(9600);
for (int i=0; i<7; i++) pinMode(SEGMENT_PIN[i], OUTPUT);
pinMode(PB1, INPUT_PULLUP);
pinMode(PB2, INPUT_PULLUP);
pinMode(PB3, INPUT_PULLUP);
pinMode (buzzer, OUTPUT);
}
void loop() {
int button1 = digitalRead(PB1);
int button2 = digitalRead(PB2);
int button3 = digitalRead(PB3);
if (button1 == 0){
while(digitalRead(PB1)==0){}
i++;
buzz();
}
if (button2 == 0){
while(digitalRead(PB2)==0){}
i--;
buzz();
}
if (button3 == 0) {
while(digitalRead(PB3)==0){}
i =0;
buzz();
}
if (i > 9) {
i = 9;
}
if (i < 0) {
i = 0;
}
DisplayDigit(i);
}
// PB 1 DI TEKAN MENGHITUNG 1-9, PB 2 DI TEKAN MENGHITUNG 9-1
// if (button1 == 0) {
// for(i=0; i<10; i++) {
// DisplayDigit(i);
// delay(1000);
// }
// }
// if (button2 == 0) {
// for(i=9; i>0; i--){
// DisplayDigit(i);
// delay(1000);
// }
// }
// SEVEN SEGEMENT 1-9
// for (int i=0; i<10; i++){
// DisplayDigit(i);
// delay(500);
// }
// SEVEN SEGEMENT 9-1
// for (int i=9; i> 0; i--){
// DisplayDigit(i);
// delay(500);
// }
void DisplayDigit(int num) {
for (int i=0; i<7; i++){
digitalWrite(SEGMENT_PIN[i], digit[num][i]);
}
}
void buzz(){
digitalWrite(buzzer, LOW);
delay(200);
digitalWrite(buzzer, HIGH);
}