В прошлой статья я объяснил, что работа программы Mega&Nano для Ардуино, строится на событиях.
Если с дискретными сигналами все вроде понятно, то как быть с  термометров, датчиков влажности, АЦП и временем?

- Да все просто!

  Для того чтобы привести к единичному событию, такой параметр как температура, надо выбрать диапазон и задать для него событие TH (выше порога) или TL(ниже порога).

Пример: Нам нужно включать выход Out1 при температуре ниже 23 °
С, т.е. мы сделаем термостат c термометром 
ds18b20 и нагревательным элементом подключенным к выходу 1.

Решение: Для начала визуализация, что бы понимать как выбирается диапазон, в нашем случае зададим две точки 23 °С и 25 °С:

Пример выбора диапазона для программы ардуино

Программа написана таким образом, что в зависимости от текущей температуры произойдет одно из событий:

  1.  ТxL - если температура меньше или равна 23 °С;
  2.  TxH - если температура больше или равна 25 °С;
  3. ну и третий вариант не произойдет ни какого события если температура больше 23 °С и меньше 25 °С, но это не значит что нельзя обработать это событие.

Теперь я покажу, как это запрограммировать:

  1. Определимся с каким датчиком мы работаем.

Выбор термометра ds18b20 для термостата

Пусть будет термометр №1.

   2. Зададим диапазон для нашего события, т.к. мы контролируем температуру ниже 23 °С, то наше событие T1L (1-номер термометра ds18b20)

Задание порогов для термометра

Наш диапазон от 23 °С до 25 °С.

   3. Привязываем событие к выходу контроллера Ардуино.

Настройка работы выхода 1

Здесь мы фактически записываем состояние события T1L в порт Out1 (выход 1).

Вот так, всего три простых действия и у нас рабочий термостат ;)

    Это очень простой термостат и в нем нет главного, гистерезиса, чтоб не щелкать попросту релюхой.
Это хорошо видно на графике сигналов, полученном с помощью нашей программы для программирования Ардуино. 

График работы программы ардуино

Как настроить гистерезис мы рассмотрим в следующем уроке.




Гость

    Логин:    
    Пароль: 

Авторское право © 2020 cto40.ru Все Права Защищены.