#define offset 6 // смещение пина светодиода относительно пина кнопки
#define DELAY_MS 300
#define BUTTON_PIN_2 2
#define BUTTON_PIN_3 3
#define BUTTON_PIN_4 4
#define BUTTON_PIN_5 5
#define BUTTON_PIN_6 6
#define BUTTON_PIN_7 7
#define BEGIN_LED_PIN 8
#define END_LED_PIN 13
bool BUTT = 0;
bool BUTT_FLAG = 0;
void oneClick(short);
void setup() {
for(size_t i=BUTTON_PIN_2; i<=BUTTON_PIN_7; ++i)
pinMode(i, INPUT_PULLUP);
for(size_t i=BEGIN_LED_PIN; i<=END_LED_PIN; ++i)
pinMode(i, OUTPUT);
}
void loop() {
oneClick(BUTTON_PIN_2);
oneClick(BUTTON_PIN_3);
oneClick(BUTTON_PIN_4);
oneClick(BUTTON_PIN_5);
oneClick(BUTTON_PIN_6);
oneClick(BUTTON_PIN_7);
}
void oneClick(short BUTTON_PIN){
BUTT = !digitalRead(BUTTON_PIN);
if(BUTT_FLAG == false && BUTT == true && digitalRead(BUTTON_PIN+offset) == false){
BUTT_FLAG = true;
digitalWrite(BUTTON_PIN+offset, true);
delay(DELAY_MS);
}
if(BUTT_FLAG == false && BUTT == true && digitalRead(BUTTON_PIN+offset) == true){
BUTT_FLAG = true;
digitalWrite(BUTTON_PIN+offset, false);
delay(DELAY_MS);
}
if(BUTT == false && BUTT_FLAG == true){
BUTT_FLAG = false;
}
}