0 голосов
Всем привет.Я новичок в arduino и хотел бы узнать, как делать таймер который будет запускаться от условия, будет не плохо если вы объясните на примере если датчик пламени сработал то срабатывает таймер и горит светодиод 5 сек и потом выключается.И конечно же без  delay,
(5 баллов) 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;
//выключаем светодиод


}

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

    62 балл(ов)

  2. Un_ka

    24 балл(ов)

  3. Тигрыч

    10 балл(ов)

  4. N08I40K

    8 балл(ов)

  5. LeftyDeMilo

    6 балл(ов)

  6. Иван91

    5 балл(ов)

Награды месяца
1-е место: Raspberry Pi 3 Model A+
2-е место: Raspberry Pi Zero W
3-е место: Raspberry Pi Zero

...