добрый день подскажите пожалуйста как мне сделать чтоб при нажатии кнопки у меня мигал светодиод циклично а то он 1 раз моргает и все какой команды не хватает вот в этом скетче int svet1 = 0; int knop1 = 2; int knop2 = 3; int led1 = 4; int led2 = 5; void setup() { pinMode(knop1, INPUT); pinMode(knop2, INPUT); pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); digitalWrite(knop1, HIGH); } void loop() { if(digitalRead(knop1) == 1 || (digitalRead(knop2)==1) && svet1 == 0) { { digitalWrite(led1, HIGH); delay(1000); digitalWrite(led1, LOW); delay(1000); } svet1 = 1; while (digitalRead(knop1)) delay(100); } if (digitalRead(knop1) == 1 && svet1 == 1) { digitalWrite(led1, LOW); svet1 = 0; while (digitalRead(knop1)) delay(100); } }
Этой инструкцией "нажимаете" кнопку 'knop1'. После чего: программа уходит в бесконечный цикл. Какой функционал Вы хотите получить на "выходе"?
Не, все верно: while (digitalRead(knop1)); будет что-то там ждать либо нажатия либо отжатия в зависимости от схему подключения. А вот: digitalWrite(knop1, HIGH); непонятно, так как: pinMode(knop1, INPUT);
"Не все верно", будет в случае, если кнопка завмыкает контакты на "землю", а если на "+", то верно. Автору топика, если он хочет получить ответ, следует подробней описать, что он делает (там есть еще 'knop2', предположительно вторая кнопка, и на какую кнопку жмет автор не понятно). А что по поводу записи HIGH в пин, который настроен как INPUT, то в этом случае пин подтягивается к +5. Это то же, что пин инициировать вызовом функции: Код (Text): pinMode(knop1, INPUT_PULLUP); Чтение из этого пина будет возвращать HIGH, если этот пин не будет замкнут на "землю".