добавить паузу в цикле без delay
- Войдите на сайт для отправки комментариев
Чт, 31/05/2018 - 16:17
const int ledPin_1 = 3; //номер пина unsigned long next_time_1; // время включения long timeout_1 = 1000; // половина периода long led_state_1 = 1; // начальное состояние - 1 включен void setup() { pinMode(ledPin_1, OUTPUT); digitalWrite(ledPin_1, led_state_1); // гасим led 1 next_time_1 = millis() + timeout_1; // вычисляем время следующего переключения } void loop() { long now_time = millis(); // текущее время millis функция таймера if ( now_time >= next_time_1 ) { // если текущее время превысило намеченное время, то next_time_1 = now_time + timeout_1; // вычисляем время следующего переключения. led_state_1 = !led_state_1; // меняем состояние на противоположное digitalWrite(ledPin_1, led_state_1); // зажигаем или гасим светодиод } }
// как мне добавить паузу, светодиод горит 1 сек, 10сек, не горит. Помогите пожаоуйста
Вопрос о том как добавить паузу упирается в то, для чего её добавлять. От этого зависит как это делать.
Поэтому объясните пожалуйста:
1) чем Вас не устраивает delay?
2) что должно делаться во время паузы, ради чего она "безделэйная"?
Кстати, при таком коде, как у Вас, будут проблема с переполнением значения millis
мне надо, что бы параллельно, другие Пины работали, без Delay
led 1 горит 1сек, -пауза 5сек.
2) что должно делаться во время паузы, ради чего она "безделэйная"? ничего не должно делаться просто off
снова горит 1 сек. между горением, пауза 5 сек , как еще объяснить я не знаю.
одну 1 секунду горит, 5 секунд не горит без delay
без delay, чтобы другие пины работали асинхронно
одну 1 секунду горит, 5 секунд не горит без delay
у вас выше в скетче уже есть "пауза без делей" на 1 секунду.Так добавьте ниже точно такую же на 5 секунд и все...
Как еще обьяснить - я не знаю. Писать код за вас мне лень.
ник какбэ намекает.....
Элементарнейшая задача для моих таймеров. Светлодиот 1 секунду горит, 10 - не горит. И весь loop() свободен...
Занимает, правда, 3884 байта флэш и 360 АЗУ. :)