byte pin[] = {2,4,5,18,19,21,22};
uint8_t LEFT_SWITCH = 23;
int number = 0;
bool isLeftSwitchOn = false;
const byte count[10] = { // this is data code for Seven segment
//GFEDCBA
B01000000, //0
B01111001, // 1
B00100100, // 2
B00110000, //3
B00011001, //4
B00010010, //5
B00000010, //6
B01111000, //7
B00000000, //8
B00010000, //9
};
void setup() {
Serial.begin(115200);
pinMode(pin[0], OUTPUT); // every pin is output
pinMode(pin[1], OUTPUT);
pinMode(pin[2], OUTPUT);
pinMode(pin[3], OUTPUT);
pinMode(pin[4], OUTPUT);
pinMode(pin[5], OUTPUT);
pinMode(pin[6], OUTPUT);
pinMode(LEFT_SWITCH, INPUT_PULLUP);
digitalWrite(pin[0], LOW);
digitalWrite(pin[1], LOW);
digitalWrite(pin[2], LOW);
digitalWrite(pin[3], LOW);
digitalWrite(pin[4], LOW);
digitalWrite(pin[5], LOW);
digitalWrite(pin[6], LOW);
}
void loop() {
if (digitalRead(LEFT_SWITCH) == LOW) {
AddNumber();
Serial.printf("On Pressing state = %s \n",isLeftSwitchOn ? "ON" : "OFF");
delay(200);
while(digitalRead(LEFT_SWITCH) == LOW) {
Serial.printf("On Exist state = %s \n",isLeftSwitchOn ? "ON" : "OFF");
}
}
// if (isLeftSwitchOn) {
// SevenSeg(count[number]);
// } else {
// number--;
SevenSeg(count[1]);
// }
// for(int i = 0; i<10; i++){ // printing the number on seven segment
// SevenSeg(count[i]);
// digitalWrite(pin[0], LOW);
// digitalWrite(pin[1], LOW);
// digitalWrite(pin[2], LOW);
// digitalWrite(pin[3], LOW);
// digitalWrite(pin[4], LOW);
// digitalWrite(pin[5], LOW);
// digitalWrite(pin[6], HIGH);
// for(int i=0; i<8; i++) {
// digitalWrite(pin[i],bitRead(1,i));
// }
delay(1000);
// }
}
void AddNumber() {
number++;
if (number > 10) {
number = 0;
} else if (number < 0) {
number = 9;
}
}
void SevenSeg(byte Bit) { // sending data on each pin
for(int i=0; i<8; i++)
digitalWrite(pin[i],bitRead(Bit,i));
}