0 голосов
Всем привет.Я новичок в arduino и хотел бы узнать, как делать таймер который будет запускаться от условия, будет не плохо если вы объясните на примере если датчик пламени сработал то срабатывает таймер и горит светодиод 5 сек и потом выключается.И конечно же без  delay,
(5 баллов) 1 3

1 Ответ

+2 голосов
 
Лучший ответ

Понадобится переменная времени , константа периода и логический флаг. 

unsigned long timer1 =0;
const int per = 5000;
// или
// #define per 5000
bool flag=0;



//в loop

if(условие срабатывания датчика)
{
 timer1 = millis()+ per;
flag =1;
//включаем светодиод
}
if (timer1<millis() and flag)
{
flag=0;
//выключаем светодиод


}

Код представляет собой таймер , который отсчитает срок после окончания события. 

А вот код ниже с начала события.

unsigned long timer1 =0;
const int per = 5000;
// или
// #define per 5000
bool flag=0;



//в loop

if(условие срабатывания датчика and !flag)
{
 timer1 = millis()+ per;
flag =1;
//включаем светодиод
}
if (timer1<millis() and flag)
{
flag=0;
//выключаем светодиод


}

(3.1 тыс. баллов) 14 20 41
выбран
Спасибо большое.
Добро пожаловать на Бредборд! Сайт вопросов и ответов на тему Arduino, Raspberry Pi и хоббийной электроники в целом. Цель Бредборда — быть максимально полезным. Поэтому мы строго следим за соблюдением правил, боремся с холиворами и оффтопиком.
  1. Un_ka

    8 балл(ов)

  2. Eriak

    4 балл(ов)

  3. AlexGorr

    2 балл(ов)

...