Простой датчик протечки воды |
![]() |
Добавил(а) microsin | ||
Три года назад сделал для банки слива воды кондиционера датчик, который предупреждал бы о том, что пора воду слить. И почему-то только сейчас дошли руки его опубликовать. Проект получился очень простой, на основе платки AVR-USB162 [1]. При разработке акцент был сделан на то, чтобы микроконтроллер потреблял как можно меньше энергии, и работал максимально долго от Li-Ion аккумулятора. Результат меня вполне удовлетворил - вот уже 3 года не было необходимости подзарядки. Использовался датчик только летом, когда было жарко, в течение пары месяцев, и аккумулятор подключался только на это время.
Как все работает: если макрос DEBUG_CDC_OUTPUT закомментирован, то после сброса/включения питания активируется WDT на 8 секунд, зажигается на 1 мс светодиод, проверяется компаратор. Если компаратор показывает контакт с водой, то на 1 секунду включается пищалка. Далее активируется режим Power Down с током потребления 40 мкА. Через 8 секунд срабатывает WDT, сбрасывает микроконтроллер, и цикл повторяется. Работает это все так, чтобы устройство пищало раз в 8 секунд, если контакты, подключенные к компаратору, показали наличие воды. Если макрос DEBUG_CDC_OUTPUT раскомментирован, то программа работает как виртуальный COM-порт, декодируя команды, вводимые в консоли, и может выводить в консоль отладочные сообщения. Этот режим оставлен исключительно для отладки. Схема подключения к компаратору микроконтроллера AT90USB162: VCC VCC Подстроечником 1M устанавливается напряжение на AIN1 порядка VCC/5. Резистор 10M может быть и поменьше, наверное 1M. Исходный код проекта и указания как компилировать см. в архиве [2]. [Ссылки] 1. Макетная плата AVR-USB162. |