// Геворкян Михаил общий катод
int segA = 2;
int segB = 3;
int segC = 4;
int segD = 5;
int segE = 6;
int segF = 7;
int segG = 8;
int buttonIncrement = A1;
int buttonDecrement = A0;
int count = 0;
void setup() {
pinMode(buttonIncrement, INPUT_PULLUP); // 1 без нажатия
pinMode(buttonDecrement, INPUT_PULLUP); // 1 без нажатия
pinMode(segA, OUTPUT);
pinMode(segB, OUTPUT);
pinMode(segC, OUTPUT);
pinMode(segD, OUTPUT);
pinMode(segE, OUTPUT);
pinMode(segF, OUTPUT);
pinMode(segG, OUTPUT);
displayDigit(count);
}
int lastButtonStateIncrement = 1;
int lastButtonStateDecrement = 1;
// Десять строк 0-9. Семь столбцов
int digits[10][7] = {
//A, B, C, D, E, F, G
{1, 1, 1, 1, 1, 1, 0}, // 0
{0, 1, 1, 0, 0, 0, 0}, // 1
{1, 1, 0, 1, 1, 0, 1}, // 2
{1, 1, 1, 1, 0, 0, 1}, // 3
{0, 1, 1, 0, 0, 1, 1}, // 4
{1, 0, 1, 1, 0, 1, 1}, // 5
{1, 0, 1, 1, 1, 1, 1}, // 6
{1, 1, 1, 0, 0, 0, 0}, // 7
{1, 1, 1, 1, 1, 1, 1}, // 8
{1, 1, 1, 1, 0, 1, 1} // 9
};
void loop() {
int currentButtonStateIncrement = digitalRead(buttonIncrement);
int currentButtonStateDecrement = digitalRead(buttonDecrement);
if(currentButtonStateIncrement == 0 && lastButtonStateIncrement == 1) {
count = (count + 1) % 10;
displayDigit(count);
delay(200);
}
if(currentButtonStateDecrement == 0 && lastButtonStateDecrement == 1) {
count = (count - 1 + 10) % 10;
displayDigit(count);
delay(200);
}
lastButtonStateIncrement = currentButtonStateIncrement;
lastButtonStateDecrement = currentButtonStateDecrement;
}
void displayDigit(int digit) {
digitalWrite(segA, digits[digit][0]);
digitalWrite(segB, digits[digit][1]);
digitalWrite(segC, digits[digit][2]);
digitalWrite(segD, digits[digit][3]);
digitalWrite(segE, digits[digit][4]);
digitalWrite(segF, digits[digit][5]);
digitalWrite(segG, digits[digit][6]);
}