// ДИАГНОСТИКА КНОПКИ
const int segPins[] = {6, 7, 8, 9, 10, 11, 12, 13};
const int digitPins[] = {2, 3, 4, 5};
const int buttonPin = A2;
const byte digitMasks[10] = {
0b11111100, 0b01100000, 0b11011010, 0b11110010, 0b01100110,
0b10110110, 0b10111110, 0b11100000, 0b11111110, 0b11110110
};
void setup() {
Serial.begin(9600);
for (int i = 0; i < 8; i++) { pinMode(segPins[i], OUTPUT); digitalWrite(segPins[i], LOW); }
for (int i = 0; i < 4; i++) { pinMode(digitPins[i], OUTPUT); digitalWrite(digitPins[i], HIGH); }
pinMode(buttonPin, INPUT_PULLUP);
}
void loop() {
int btn = digitalRead(buttonPin);
Serial.println(btn);
// Показывает "1111" когда кнопка нажата, "0000" когда отпущена
byte d = digitMasks[btn == LOW ? 1 : 0];
byte digits[4] = {d, d, d, d};
for (int i = 0; i < 4; i++) {
for (int dd = 0; dd < 4; dd++) digitalWrite(digitPins[dd], HIGH);
for (int s = 0; s < 8; s++) digitalWrite(segPins[s], bitRead(digits[i], 7 - s));
digitalWrite(digitPins[i], LOW);
delay(2);
}
}