Почему в void setup() не работает данный код Код (Text): int button = 2; int led = 8; void setup() { Serial.begin(9600); pinMode(led, OUTPUT); pinMode(button, INPUT); if (digitalRead(button) == HIGH) { digitalWrite(led, HIGH); } } void loop(){ } Светодиод не горит
Как кнопка и светодиод подключены? И вы ведь понимаете что функция setup выполняется один раз при включении питания?
В теории диод будет гореть только при определенном подключении кнопки и при зажатой в момент включения или перезапуска ардуины кнопке.
Ошибки: Не указана переменная, где будет храниться состояние, считанное с кнопки. Перед if необходимо это состояние считать. Должно быть вот так: PHP: int button = 2; int led = 13; int a; void setup() { pinMode(led, OUTPUT); pinMode(button, INPUT); a = digitalRead(button); if (a == HIGH) { digitalWrite(led, HIGH); } else { digitalWrite(led, LOW); } } void loop() { } Да, диод будет гореть, если кнопка зажата при старте arduino. Но проблема в коде
И зачем загромождать программу этими конструкциями, если значение кнопки больше не используется? Не путайте человека, все правильно.
Не большая переплата за наглядность... Да все верно, проверил. Значит проблема в подключении кнопки...
у меня просто программа написана в setup. И необходимо нажать на кнопку,что бы программа запустилась.
Тогда надо не один раз считать, а считывать до тех пор, пока кнопку не нажмут. Т.е. написать так: Код (Text): while(digitalRead(button) == LOW); digitalWrite(led, HIGH);
if не нужен. while будет работать как пустой цикл и постоянно считывать значение кнопки. Как только кнопка перестанет быть в LOW программа перейдет к следующей строчке