Друзья, подскажите, как сделать так, что бы по завершении всех действий arduino остановилась и ждала нажатия на кнопку, что бы запустить циклы заново. Пока что, ничего умнее, чем в конце поставить delay(дофига часов) и нажимать потом кнопку reset, не придумал. Понимаю что это глупо, прошу вашей помощи.
Если просто остановить то: Код (C++): while (digitalRead(KEYPIN)); или Код (C++): while (!digitalRead(KEYPIN)); в зависимости от подключения. Можно даже дребезг не давить в ряду случаев. Если же нужно "усыпить" ардуину, то это тема отдельной статьи.
Не получается. подскажите, что я делаю не так. Хотелось бы, что бы ардуина выполнила цикл for, и остановилась, ждала, пока я не нажму на кнопку. В таком варианте как сейчас, for идет бесконечно, и лишь не надолго замирает при нажатии кнопки. А если сделать while (!digitalRead(KEYPIN)), то вначале стоит, а потом бесконечно работает. #define KEYPIN 2 void setup() { pinMode(KEYPIN, INPUT); Serial.begin(9600); } void loop() { while (digitalRead(KEYPIN)) { for (int i =0; i <5; i++) { Serial.println(i); } } }
Код (C++): #define KEYPIN 2 void setup() { pinMode(KEYPIN, INPUT); Serial.begin(9600); } void loop() { for (int i = 0; i < 5; i++) Serial.println(i); while (!digitalRead(KEYPIN)); }
А так? Код (C++): #define KEYPIN 2 void setup() { pinMode(KEYPIN, INPUT);// это вход digitalWrite(KEYPIN, HIGH); // включим подтяжку Serial.begin(9600); } void loop() { while(digitalRead(KEYPIN) == HIGH) { // пока не нажата курим бамбук } { for (int i =0; i <5; i++) { Serial.println(i); } //конец Serial } //конец For }
Странно?Не думаю.Как учили http://tinyurl.com/oo6h792 А вот у Вас необычно надо попробовать.Вы же на Си пишете так PORTD=0хFF? //В порт D все единицы поэтому у меня логичнее
DrProg и Airbus , друзья, спасибо вам огромное за помощь. Все получилось, вы очень добрые и отзывчивые.