Добавить в корзинуПозвонить
Найти в Дзене
PHP&JS&C++

Таймер для холодильника

С++
У меня холодильник работает по таймеру. Несколько лет назад он стал хуже морозить и перестал отключаться, видимо холода не хватает для отключения.
Я это заметил, первые несколько дней просто отключал вручную.
Потом решил что надо что-то делать, и самым простым было это создать таймер на ардуинке и реле, которые будут включать и выключать холодильник в определённом режиме. Режим был прописан один: 15 к 5, то есть 15 минут работает, 5 выключен.
Структурная схема такова, что сигнал с выхода Arduino подаётся на затвор IRFZ24, который управляет реле. Вся схема запитана от 5-вольтовой телефонной зарядки оч. малой мощности. Пяти вольтовое реле было выбрано для упрощения.
Кроме этого в схеме использован пьезо излучатель для сигнализации переключения режимов. В моём случае при вкл. один сигнал какой-то частотой, а выключение двойным и другой частотой.
Так оно работало много лет. Но ничто не вечно, реле стала залипать во включенном состоянии, а реле с 5-вольтовой катушкой, др. такой нет.
Оглавление


С++
У меня холодильник работает по таймеру. Несколько лет назад он стал хуже морозить и перестал отключаться, видимо холода не хватает для отключения.
Я это заметил, первые несколько дней просто отключал вручную.
Потом решил что надо что-то делать, и самым простым было это создать таймер на ардуинке и реле, которые будут включать и выключать холодильник в определённом режиме.

LGT8F328 Type-C
LGT8F328 Type-C

Режим был прописан один: 15 к 5, то есть 15 минут работает, 5 выключен.
Структурная схема такова, что сигнал с выхода Arduino подаётся на затвор IRFZ24, который управляет реле. Вся схема запитана от 5-вольтовой телефонной зарядки оч. малой мощности. Пяти вольтовое реле было выбрано для упрощения.
Кроме этого в схеме использован пьезо излучатель для сигнализации переключения режимов. В моём случае при вкл. один сигнал какой-то частотой, а выключение двойным и другой частотой.

Так оно работало много лет. Но ничто не вечно, реле стала залипать во включенном состоянии, а реле с 5-вольтовой катушкой, др. такой нет.

Пришло время заправить холодильник создать новую схему.
Так как есть только 12-вольтовое реле, а питание схемы прежнее, то нужно использовать повышайку. (фото ниже)

Повышающий DC-DC преобразователь J5019
Повышающий DC-DC преобразователь J5019

У этого преобразователя есть "крутилка" которой заранее выставляется 11,5 ... 12,0 вольт. Можно использовать иную другую, где есть вход +5, выход +12.

А еще этот преобразователь хорош тем, что если холодильник работает от какого-то резервного источника, то эту схему тоже нужно запитать альтернативно. Для этого на клеммы BAT+ и BAT- нужно подключить Li-ion.

Схема такая: Ардуино запитан постоянно, а повышающий модуль через транзистор. Плюс на повышающий подключен постоянно, а минус на сток транзистора, исток на общий минус. Затвор транзистора подключен на A6 и через 100к к минусу.
На выход повышающего модуля подключено реле(нет полярности).
Транзистор в этот раз использован D412 (
AOD412):

MOSFET D412
MOSFET D412

Также к Ардуино подключен переключатель и светодиод D5(+) и D6(минус).
Переключатель нужен для включения стартующего режима режима, то есть когда холодильник был выключен длительное время по каким-то причинам,
и теперь надо его быстрее охладить, поэтому реле включено на 20 минут в цикле.
после 20 циклов время меняется сокращается до 16 мин.

Описание работы программы для Arduino Nano

1. Назначение выводов (пинов)

  • D5 — используется для ШИМ‑сигнала (PWM). Управляет каким‑то устройством (например, мотором, светодиодом, нагревателем).
  • D10 — вход с подтяжкой к питанию (pull‑up). Используется для выбора режима работы.
  • D11 — постоянно находится в состоянии LOW (логический 0 / низкий уровень).
  • D12 — вход с подтяжкой к питанию (pull‑up).
  • A6 — выход, который включается и выключается по определённому циклу (активное/неактивное состояние).

2. Определение режима работы

Режим работы определяется состоянием пина D10:

  • Если на D10 уровень LOW (кнопка/переключатель замкнут на землю) — активируется режим запуска.
  • Если на D10 уровень HIGH (кнопка/переключатель разомкнут, срабатывает подтяжка) — активируется обычный режим.

3. Работа пина D5 (ШИМ)

В зависимости от выбранного режима, пин D5 ведёт себя следующим образом:

  • В режиме запуска: на пине D5 включается ШИМ‑сигнал. Его коэффициент заполнения (скважность) плавно меняется от 30 % до 100 % каждые 2 секунды.
  • В обычном режиме: пин D5 выключен, на нём устанавливается уровень LOW.

4. Работа пина A6 (циклическое включение)

Пин A6 циклически включается и выключается. Длительность активного и неактивного состояния зависит от режима и количества циклов.

А. В режиме запуска:

  1. Программа начинает считать циклы включения/выключения пина A6.
  2. Если количество циклов меньше 20:
    Активное состояние (A6 = HIGH): 20 минут.
    Неактивное состояние (A6 = LOW): 5 минут.
  3. Если количество циклов 20 или больше:
    Активное состояние (A6 = HIGH): 16 минут.
    Неактивное состояние (A6 = LOW): 5 минут.

Б. В обычном режиме:

  • Независимо от количества циклов, цикл работы A6 фиксированный:
    Активное состояние (A6 = HIGH): 13 минут.
    Неактивное состояние (A6 = LOW): 5 минут.

Краткий итог (сводка логики)

  1. Система проверяет состояние пина D10, чтобы определить режим («запуск» или «обычный»).
  2. В зависимости от режима:
    Управляет ШИМ на
    D5.
    Запускает цикл включения/выключения на
    A6 с соответствующими временными интервалами.
  3. В «режиме запуска» система отслеживает количество циклов на A6, чтобы после 20‑го цикла изменить длительность активного состояния с 20 минут на 16 минут.

Временные интервалы можно и вероятно нужно изменить, так как у разных ардуинок разные задающие генераторы, где-то кварц 12, где-то 16 Мгц, а где-то внутренний генератор, предположительно 4 Мгц. Из-за этого установленные интервалы могут не соотв. заданным.
Поэтому первое время нужно засекать время и вычислить отставание\опережение.