В прошлой статья я объяснил, что работа программы Mega&Nano для Ардуино, строится на событиях.
![Пример выбора диапазона для программы ардуино Пример выбора диапазона для программы ардуино](http://cto40.ru/img_page/page_59/img59_2.jpg)
![Выбор термометра ds18b20 для термостата Выбор термометра ds18b20 для термостата](http://cto40.ru/img_page/page_59/img59_1.jpg)
![Задание порогов для термометра Задание порогов для термометра](http://cto40.ru/img_page/page_59/img59_3.jpg)
![Настройка работы выхода 1 Настройка работы выхода 1](http://cto40.ru/img_page/page_59/img59_4.jpg)
![График работы программы ардуино График работы программы ардуино](http://cto40.ru/img_page/page_59/img59_5.jpg)
Если с дискретными сигналами все вроде понятно, то как быть с термометров, датчиков влажности, АЦП и временем?
- Да все просто!
Для того чтобы привести к единичному событию, такой параметр как температура, надо выбрать диапазон и задать для него событие TH (выше порога) или TL(ниже порога).
Пример: Нам нужно включать выход Out1 при температуре ниже 23 °
С, т.е. мы сделаем термостат c термометром
ds18b20 и нагревательным элементом подключенным к выходу 1.
С, т.е. мы сделаем термостат c термометром
ds18b20 и нагревательным элементом подключенным к выходу 1.
Решение: Для начала визуализация, что бы понимать как выбирается диапазон, в нашем случае зададим две точки 23 °С и 25 °С:
![Пример выбора диапазона для программы ардуино Пример выбора диапазона для программы ардуино](http://cto40.ru/img_page/page_59/img59_2.jpg)
Программа написана таким образом, что в зависимости от текущей температуры произойдет одно из событий:
- ТxL - если температура меньше или равна 23 °С;
- TxH - если температура больше или равна 25 °С;
- ну и третий вариант не произойдет ни какого события если температура больше 23 °С и меньше 25 °С, но это не значит что нельзя обработать это событие.
Теперь я покажу, как это запрограммировать:
1. Определимся с каким датчиком мы работаем.
![Выбор термометра ds18b20 для термостата Выбор термометра ds18b20 для термостата](http://cto40.ru/img_page/page_59/img59_1.jpg)
Пусть будет термометр №1.
2. Зададим диапазон для нашего события, т.к. мы контролируем температуру ниже 23 °С, то наше событие T1L (1-номер термометра ds18b20)
![Задание порогов для термометра Задание порогов для термометра](http://cto40.ru/img_page/page_59/img59_3.jpg)
Наш диапазон от 23 °С до 25 °С.
3. Привязываем событие к выходу контроллера Ардуино.
![Настройка работы выхода 1 Настройка работы выхода 1](http://cto40.ru/img_page/page_59/img59_4.jpg)
Здесь мы фактически записываем состояние события T1L в порт Out1 (выход 1).
Вот так, всего три простых действия и у нас рабочий термостат ;)
Это очень простой термостат и в нем нет главного, гистерезиса, чтоб не щелкать попросту релюхой.
Это хорошо видно на графике сигналов, полученном с помощью нашей программы для программирования Ардуино.
![График работы программы ардуино График работы программы ардуино](http://cto40.ru/img_page/page_59/img59_5.jpg)
Как настроить гистерезис мы рассмотрим в следующем уроке.