Цикл for
- Войдите на сайт для отправки комментариев
Пнд, 08/01/2018 - 14:41
Всем привет. Подскажите, пожалуйста, почему при единичном нажатии на кнопку проходит полный цикл последовательного зажигания светодиодов с последующим последовательным выключением. Как сделать, что бы зажигались/гасли по одному при каждом нажатии?
#define LED1 2 #define LED2 3 #define LED3 4 #define LED4 5 #define LED5 6 #define LED6 7 #define LED7 8 #define LED8 9 #define LED9 10 #define LED10 11 #define BUTTON1 A0 boolean buttonState1 = LOW; unsigned long last_pressed = 0; void setup() { pinMode (LED1, OUTPUT); pinMode (LED2, OUTPUT); pinMode (LED3, OUTPUT); pinMode (LED4, OUTPUT); pinMode (LED5, OUTPUT); pinMode (LED6, OUTPUT); pinMode (LED7, OUTPUT); pinMode (LED8, OUTPUT); pinMode (LED9, OUTPUT); pinMode (LED10, OUTPUT); pinMode (BUTTON1, INPUT); } void loop() { buttonState1 = digitalRead (BUTTON1); if (buttonState1 == HIGH && millis() - last_pressed > 200) { for ( int i = 2; i < 12 ; i++) { digitalWrite (i, HIGH); delay (200); } for (int i = 12; i > 1; i--) { digitalWrite (i, LOW); delay(200); } last_pressed = millis(); } }
или так, не очень понятно, что вам надо
я думал, в моем примере видно, что я хочу- при каждом нажатии кнопки загорается диод (предыдущий не гаснет), когда включены все - при следующих нажатиях на кнопку они поочередно выключаются. В принципе. в моем скетче это работает, только почему-то при единичном нажатии сначала все поочередно загораются, а потом поочередно выключаются. А мне нужно, что бы каждое отдельное нажатие выполняло одну операцию в итерации: нажал кнопку - включил диод, нажал еще раз - следующий включий (предыдущий не гаснет). Включил все - последующие нажатия выключают всю цепочку.
просто у меня работает так, вроде бы кнопка нажата постоянно.
если условие в строке 36 совпадет, то цикл for выполнит все , пока его условие не совпадет и прервать не возможно, делайте в цикле loop
именно, но когда кнопка отпущена, почему условие выполняется?
Ну начинал бы я так ;)
Потом добавил это
Потому, что так написано в программе
Написать в программе, чтобы они зажигались/гасли по одному при каждом нажатии.
Программа, как я понимаю, цельнотянутая? И понимаешь ты что в ней написано, примерно какесли бы она была написана на языке древник инков?
Программа, как я понимаю, цельнотянутая? И понимаешь ты что в ней написано, примерно какесли бы она была написана на языке древник инков?
Лол:)) что там тянуть. Зачем писать, если не имеешь предложений. Нашел решение и без твоего тупорылого комментария. Добавил 2 кнопку и сделал через if. Учись, а то так и будешь в комментах гадить.
вау, громоздко, но работает. спасибо.