Блок с датойБлок с временемБлок с возрастом сайта
Mr.ALB

    Анатолий Беляев (aka Mr.ALB). Персональный сайт

    Да пребудут с вами Силы СВЕТА!

     

    Ардуино (Arduino). #6

    МТР-1.2
    (Модуль термометр-регулятор)

    На этой странице публикую скетч моего модуля термометра-регулятора (МТР-1.2). Для реализации вначале использовал Arduino UNO, а потом, когда пришла посылка с Arduino Nano, то переделал на него. Вообще можно использовать любой вариант, хоть бы и Arduino Pro Mini, если есть интерес уменьшить габариты.

    Сам модуль задумывался как устройство измерения температуры со световой и звуковой индикацией, с возможностью работы по управлению либо нагревателем, либо охладителем. Поэтому реализованы три режима работы модуля:

    1. Термометр (только измерение температуры)
    2. Нагреватель (режим управления)
    3. Охладитель  (режим управления)

    Схема модуля МТР-1.2

    Схема была собрана на Arduino UNO (можно Arduino Nano), а когда стал её отрисовывать, то оказалось, что слишком всё запутано. Поэтому сделал оптимизацию, для лучшей графической наглядности. Окончательный вариант вы можете видеть ниже на картинке.

    Схема для скетча #6
    Pic 1. Схема для скетча #6

    В качестве индикатора, использую 3-х разрядный 7-сегментный светодиодный индикатор. У меня это 3632AS – с общим анодом. На катоды установлены ограничивающие резисторы 2,2 кОм, чтобы минимизировать ток на сегменты.

    В схеме добавлены два индикаторных светодиода: красный – HL2 – показывает, что включено исполнительное реле К1 на нагрев, а когда модуль работает в режиме охладителя, то индикацию включения реле К1 указывает уже синий светодиод HL3. Сделал это для интуитивного воспринятия режима работы модуля термометра-регулятора. Начальный момент включения регулировки дополнительно сопровождается звуковой индикацией с помощью Buzzer-а (BZ1), для привлечения внимания к моменту включения управляющего сигнала.

    На диодах VD1, VD2 реализовано логическое устройство ИЛИ. Поэтому любой сигнал на нагрев или на охлаждение будет управлять реле К1.

    Датчик температуры использован DS18B20 – очень точный, надёжный и вообще хороший датчик. Никогда у меня с ним не было никаких проблем. Подключается по протоколу одного провода (OneWire). У меня он в качестве микросхемы в типовом корпусе ТО-92, а к нему припаян небольшой трёхжильный кабель. Продаются и влагозащищённые типы, удобны для измерения температуры воды или другой жидкой среды.

    DS18B20 в корпусе TO-92
    Pic 2. DS18B20 в корпусе TO-92

    DS18B20 влагозащищённый
    Pic 3. DS18B20 влагозащищённый

    Модуль К1 – самодельный. Вначале купил на алиэкспрессе модуль реле, но не обратил внимания, что у него управляющий сигнал низкого уровня (ноль). В моей же конструкции программа была написана под управляющий сигнал высокого уровня (единица), поэтому пришлось по-быстрому изготовить себе свой модуль реле. Габариты у него 42 * 16,5 * 16,5 мм, что чуть меньше, чем у покупного. А покупной модуль реле мне ещё пригодится в новых проектах, где будет учтена его особенность по управлению.

    Модули реле: самодельный и покупной
    Pic 4. Модули реле: самодельный и покупной

    Модули реле: самодельный и покупной. Обратная сторона
    Pic 5. Модули реле: самодельный и покупной. Обратная сторона

    Модуль реле самодельный
    Pic 6. Модуль реле самодельный

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

    Реализован скеч на макетных панельках. Несколько штук соединены в общую конструкцию. Подумываю со временем изготовить плату, на которой будет всё размещено и в оконцовке упрятано в копрус. Как будет сделано, то дополню фотографиями.

    Звуковой излучатель пока – обычная ЗП. Подключен к порту Ардуино и управляется функцией tone(), потом хочу его заменить активным излучателем и управлять уровнем напряжения.

    Начальная реализация скетча #6. Без реле К1
    Pic 7. Начальная реализация скетча #6. Без реле К1

    При работе МТР-1.2 в режиме охладителя, видно как включился модуль реле К1 (индикация светодиода на плате модуля реле) и включился синий светодиод – режим охлаждения.

    Реализация скетча #6. С реле К1.<br>Работа в режиме ОХЛАДИТЕЛЯ
    Pic 8. Реализация скетча #6. С реле К1.
    Работа в режиме ОХЛАДИТЕЛЯ

    Далее переходим к скетчу (программе).

    Скетч модуля МТР-1.2

    Опубликованный скетч модуля можно скопировать в Приложении:

    Код закоментирован достаточно подробно и понятно.

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

    Для управления семисегментным индикатором используется скачанная библиотека Led4Digits.h. В общем мне эта библиотека очень понравилась, с большими возможностями и легко применять. Однако, при такой конструкции, у Ардуино все порты вывода заняты, и в основном этим 3-х разрядным семисегментным индикатором. Подумываю использовать сдвиговые регистры SN74HC595 для управления индикатором и тем самым освободить порты от индикатора... возможно код управления индикатором опубликую на следующих страницах и проектах, а пока так как есть.

    Приложение

    Скетч и используемые библиотеки:

    2018-07-23

    Скетч использует 7298 байт, что избыточно для ARDUINO Nano и имеет смысл использовать ARDUINO Pro mini с микроконтроллером ATMEGA168P (16k флэш памяти), или ATTiny88 (8k флэш памяти).

    2021-06-07
    . Mr.ALB
    Предыдущая страница Страница 7 Далее