Привет У меня возникли небольшие проблемы с пониманием поведения, которое может показаться очень простым вопросом.
У меня есть 4 светодиода и резистора, связанных с кнопкой. Идея состоит в том, что я нажимаю кнопку, и светодиоды загораются последовательно, выключая предыдущий.
Это работает нормально, пока не настало время перезапустить петлю с самого начала, когда на последовательном мониторе все в порядке, но светодиоды почти не горят, кроме номера 4, который светится нормально.
Вот мой код:
const int buttonPin = 6;
const int ledPin1 = 2;
const int ledPin2 = 3;
const int ledPin3 = 4;
const int ledPin4 = 5;
int buttonState = 0;
int pressed = 0;
void setup() {
{
Serial.begin (115200);
Serial.println ();
Serial.println ("Starting up");
}
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
}
void loop()
{
if(digitalRead(buttonPin)==HIGH)
{
if(pressed==0)
{
pressed=1;
switch(buttonState)
{
case 0:
digitalWrite(ledPin1, LOW);
buttonState++;
break;
case 1:
digitalWrite(ledPin1, HIGH);
Serial.println ("1");
buttonState++;
break;
case 2:
digitalWrite(ledPin2, HIGH);
pinMode(ledPin1, LOW);
Serial.println ("2");
buttonState++;
break;
case 3:
digitalWrite(ledPin3, HIGH);
pinMode(ledPin2, LOW);
Serial.println ("3");
buttonState++;
break;
case 4:
digitalWrite(ledPin4, HIGH);
pinMode(ledPin3, LOW);
Serial.println ("4");
buttonState++;
break;
case 5:
digitalWrite(ledPin4, LOW);
Serial.println ("off");
buttonState=0;
return;
}
}
}
else
{
pressed=0;
}
}
Надеюсь, некоторые из вас, более умные люди, смогут пролить свет на это необычное поведение.
Кстати, я ОЧЕНЬ новичок в программировании на Arduino, поэтому, пожалуйста, успокойтесь.