Программа для альтернативного мигания 2 светодиодов, используя индикатор включения-выключения, кнопка в качестве переключателя
когда я нажимаю кнопку, она начинает работать, но если я нажму ее снова, она не остановится
вот мой код
int ledState=0;
int ledPin1=11;
int ledPin2=12;
int buttonPin=2;
int buttonStateNew;
int buttonStateOld=1;
void setup()
{
pinMode(ledPin1,OUTPUT);
pinMode(ledPin2,OUTPUT);
pinMode(buttonPin,INPUT);
}
void loop()
{
buttonStateNew= digitalRead(buttonPin);
if(buttonStateOld == 0 && buttonStateNew == 1)
{
if (ledState==0){
digitalWrite(ledPin1,HIGH);
digitalWrite(ledPin2,LOW);
delay(1000);
digitalWrite(ledPin2,HIGH);
digitalWrite(ledPin1,LOW);
delay(1000);
ledState=1;
}
else
{
digitalWrite(ledPin1,LOW);
digitalWrite(ledPin2,LOW);
ledState=0;
}
}
buttonStateOld=buttonStateNew;
}
@SAJISHVAR, 👍-1
Обсуждение1 ответ
▲ 0
Я думаю, у вас есть спорный вопрос. В той части, которая выключает светодиоды, добавьте задержку (скажем, 200 мс). В противном случае, если переключатель отскочит несколько раз, он будет зарегистрирован как несколько нажатий.
,
@Nick Gammon
Смотрите также:
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
начните с примера BlinkWithoutDelay, @Juraj
Стоило бы сделать шаг назад и критически подумать о том, что происходит в вашем коде. Подумайте, что происходит, когда "val == ВЫСОКИЙ" - состояние порта когда-либо считывается снова?, @Dave Newton
@SAJISHVAR в чем твой вопрос?, @jsotola
@jsotola схема с 2 светодиодами и кнопкой, когда я нажимаю кнопку, первые 2 светодиода должны поочередно мигать, а при моем 2-м нажатии на кнопку светодиоды должны остановиться, @SAJISHVAR
@SAJISHVAR это описание желаемого поведения программы ... это не вопрос ... пример вопроса: "как мне отладить программу?", @jsotola
@jsotola, Когда я пытался запустить код, последовательность мигания светодиода должна была быть в цикле до нажатия следующей кнопки, но когда я попытался сделать это в виде цикла, кнопка "выкл." не работает, @SAJISHVAR
Я изменил отступ, чтобы соответствовать логике. Похоже, что код мигания кнопки может возникать только при нажатии кнопки, потому что он находится внутри условного нажатия кнопки " если ()"., @Dave X