При каждом нажатии кнопки зажигается светодиод на соответствующем пине.
Как только счетчик led_counter достигает значение 9, его значение устанавливается = 4 и при кахдом нажатии кнопки
включенные светодиоды поочередно выключаются, но этого не происходит на пине 6.
Инверсия состояния светодиода реализована digitalWrite(led_counter, !digitalRead(led_counter)); , но почему то значение digitalRead(led_counter) на 6 пине при включенном светодиоде равно = 0 и при инверсии он остается включенным.
Вопрос к знатокам. Что не так?
boolean but1 = 0;
boolean led_flag = 0;
boolean flag = 0;
unsigned long last_press;
byte led_counter = 4;
void setup() {
pinMode(A5,INPUT_PULLUP);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
digitalWrite(4,0);
digitalWrite(5,0);
digitalWrite(6,0);
digitalWrite(7,0);
digitalWrite(8,0);
digitalWrite(9,0);
Serial.begin(9600);
}
void loop() {
boolean but1 = !digitalRead(A5);
if (but1==1 && flag==0 && millis()-last_press > 50){
flag = !flag;
Serial.println("Button pressed");
last_press = millis();
}
if (but1==0 && flag==1){
flag = !flag;
//Serial.println("Button released"+ String(led_counter));
led_flag = !led_flag;
digitalWrite(led_counter, !digitalRead(led_counter));
led_counter++;
if(led_counter>9) led_counter = 4;
}
}