惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Application and Cybersecurity Blog
Application and Cybersecurity Blog
S
Securelist
K
Kaspersky official blog
Scott Helme
Scott Helme
C
CXSECURITY Database RSS Feed - CXSecurity.com
GbyAI
GbyAI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
C
Cisco Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - Franky
Security Latest
Security Latest
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Y
Y Combinator Blog
T
Threat Research - Cisco Blogs
L
LINUX DO - 热门话题
C
Cyber Attacks, Cyber Crime and Cyber Security
Project Zero
Project Zero
Cisco Talos Blog
Cisco Talos Blog
月光博客
月光博客
I
Intezer
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
人人都是产品经理
人人都是产品经理
L
Lohrmann on Cybersecurity
Recorded Future
Recorded Future
Latest news
Latest news
V2EX - 技术
V2EX - 技术
T
The Exploit Database - CXSecurity.com
H
Heimdal Security Blog
F
Fortinet All Blogs
Cloudbric
Cloudbric
IT之家
IT之家
博客园 - 叶小钗
Microsoft Security Blog
Microsoft Security Blog
P
Proofpoint News Feed
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
PCI Perspectives
PCI Perspectives
AWS News Blog
AWS News Blog
H
Help Net Security
S
Security @ Cisco Blogs
酷 壳 – CoolShell
酷 壳 – CoolShell
Recent Announcements
Recent Announcements
Hacker News - Newest:
Hacker News - Newest: "LLM"
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
F
Full Disclosure
S
Schneier on Security
S
Security Affairs
T
Tenable Blog

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Как я отказался от МК и собрал аналоговый увлажнитель воздуха
Андрей Ковалев · 2026-06-19 · via Все публикации подряд на Хабре

Как я отказался от МК и собрал аналоговый увлажнитель воздуха

Средний

11 мин

2.1K

IMG_0810

На микроконтроллере сделать такой увлажнитель было бы просто: таймер, опрос датчика, логика включения — все алгоритмы управления и обработки сигналов реализуются программно. 

В этом проекте я решил сознательно отказаться от МК и проверить, можно ли реализовать ту же функциональность на аналоговых и дискретных компонентах, без единой строки кода.

Такой подход потребовал больше времени и попыток при отладке, а также более тщательной проработки схемы. Однако результат — аналоговое устройство с предсказуемым поведением, полностью соответствующее поставленной задаче.

Краткий функционал

Увлажнитель реализует следующий набор функций:

  • Таймер работы — три фиксированных интервала: 30 минут, 1 час и 2 часа.

  • Автоматическое поддержание влажности — устройство работает до достижения заданного уровня влажности воздуха.

  • RGB-подсветка корпуса — декоративная подсветка с возможностью изменения цвета.

  • Защита от отсутствия воды — автоматическое отключение и индикация при обнаружении пустого резервуара.

Принципиальная схема

image

В устройстве реализована трёхуровневая система питания:

  • Силовая часть (ультразвуковая мембрана и вентилятор) питается от 24 В непосредственно от внешнего источника.

  • Логика (LM393, LM331, CD4040BM, CD4071BE, светодиоды) питается от 12 В через линейный стабилизатор MC78M12BDTG. От более эффективного импульсного преобразователя в данной схеме я отказался для исключения ВЧ-помех, которые могли бы внести погрешности в работу аналоговых узлов.

  • Таймер TLC555 и датчик HS1101 питаются от 5 В через линейный стабилизатор LD1117-5.0. Датчик допускает питание до 10 В, однако при напряжении выше 6 В микросхема TLC555 выходила из строя, что определило выбор данного уровня.

Основные узлы схемы

Таймер

Принцип работы: RC-цепочка задаёт время зарядки конденсатора. Пока напряжение на конденсаторе ниже порогового уровня (7,5 В), на выходе компаратора присутствует логическая «1». После достижения порога выход переключается в «0». На основе формулы τ = RC рассчитаны номиналы резисторов для интервалов 30 минут, 1 час и 2 часа.

После истечения времени любого из таймеров необходимо разрядить конденсатор. В 1 положении переключателя первая группа контактов заземляет верхнюю обкладку конденсатора, разряжая его до нуля. Чтобы одновременно установить на выходе компаратора логический ноль, использован двухгруппный галетный переключатель: вторая группа контактов подаёт на неинвертирующий вход компаратора +12 В, что соответствует нулю на выходе. Таким образом, в первом положении переключателя одновременно происходит разряд конденсатора и выключение нагрузки.

Выбор рабочей точки: порог 7,5 В соответствует t = 1τ. На этом участке рост напряжения близок к линейному. На рисунке представлена кривая заряда конденсатора. Показано сравнение временной ошибки при использовании порога в области 1τ (7,5 В) и в области 3τ (11,4 В). Пунктирными линиями условно обозначен разброс напряжения на обкладках — не реальные помехи, а наглядная иллюстрация.

image

В области 1τ разброс напряжения проецируется на ось времени в небольшой интервал Δt₁ — момент переключения стабилен. В области 3τ тот же разброс даёт значительно больший интервал Δt₂, поскольку на пологом участке кривой небольшому изменению напряжения соответствует большое изменение времени.

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

Однако решение данной проблемы не идёт в сравнение со следующей. Открыв даташит на применяемый конденсатор, находим параметр «Capacitance Tolerance» — разброс ёмкости, составляющий ±20%. Соответственно, даже при корректной сборке временной интервал будет плавать из-за разброса номинала самого конденсатора. Такова особенность использования электролитических конденсаторов в RC-цепочках

Измерение влажности

В качестве чувствительного элемента выбран емкостный датчик влажности HS1101LF, который представляет собой конденсатор переменной ёмкости. Используя формулу плоского конденсатора можно понять принцип изменения емкости:

C = (εᵣ × ε₀ × S) / d

где:

  • C — ёмкость датчика

  • εᵣ — относительная диэлектрическая проницаемость материала.

При повышении влажности молекулы воды (εᵣ ≈ 80) проникают в чувствительный материал датчика, диэлектрическая проницаемость εᵣ увеличивается, что ведёт к росту ёмкости. При снижении влажности процесс обратим — ёмкость уменьшается. Диапазон изменения ёмкости: ≈161 пФ при 0% RH → ≈193 пФ при 100% RH.

Для преобразования изменения ёмкости в электрический сигнал датчик включён в мультивибратор на таймере TLC555. На выходе формируется частота, зависящая от влажности окружающей среды. Ниже приведена зависимость выходной частоты от относительной влажности (данные из документации на датчик).

image

Поскольку изменение частоты относительно невелико, необходимо точно фиксировать эти изменения. Для этой задачи выбран прецизионный преобразователь частоты в напряжение LM331, который обеспечивает линейность преобразования ±0,01% и низкий температурный дрейф. Это позволяет достоверно преобразовывать малые изменения частоты в стабильное выходное напряжение для последующей обработки компаратором. Частотный диапазон схемы (от 1 Гц до 10 кГц) полностью перекрывает выходной сигнал датчика.

Преобразование частоты в напряжение

LM331 преобразует частоту в напряжение. Входной импульс запускает внутренний таймер, длительность которого задаётся времязадающей цепочкой R20-C2. На это фиксированное время к конденсатору фильтра C3 подключается источник стабильного тока. Чем выше частота входных импульсов, тем чаще поступают порции тока в C3, и тем выше среднее напряжение на этом конденсаторе, которое и является выходным сигналом преобразователя.

Далее это напряжение подаётся на компаратор, где сравнивается с опорными уровнями, заданными резистивными делителями через галетный переключатель. Пороговое напряжение подаётся на инвертирующий вход, поскольку с ростом влажности выходное напряжение LM331 падает. Когда напряжение опускается ниже порога, компаратор включает увлажнитель; при достижении целевой влажности напряжение превышает порог — увлажнитель отключается.

В первом положении переключателя на инвертирующий вход компаратора подаётся +12 В — нагрузка отключена (управление по влажности не требуется). В положениях 2–5 заданы пороги влажности: 20%, 30%, 40% и 50% соответственно.

В версии платы 1.3 удалось добиться полного совпадения выходного напряжения преобразователя с расчётными значениями. Расчёт выполнялся по формуле из даташита LM331 для преобразователя частота–напряжения:

V_{OUT} = f_{IN} \times V_{REF} \times \frac{R_L}{R_S} \times (R_t C_t)

В типовых примерах из даташита часто используют значение V_{REF} = 2,09 В (внутреннее опорное напряжение микросхемы), однако согласно электрическим характеристикам LM331 типичное значение V_{REF} составляет 1,89 В. Применение в расчётах именно этого значения обеспечило точное соответствие теории и практики.

Расчет при влажности 40% (f_{IN} = 6760 Гц):

V_{OUT} = 6760Гц \times 1,89В \times \frac{100кОм}{10 кОм} \times (6,81 кОм\times 0,01мкФ) \approx 8,71 В

Практические измеренные значения совпадает на уровне 10-20 мВ

IMG_0618

Чтобы не перегружать страницу множеством фотографий, видео со всеми измерениями доступно по ссылке Rutube, где также демонстрируется, что включение нагрузки не влияет на показания преобразователя.

Гистерезис компаратора

Напряжение на выходе LM331 изменяется плавно пропорционально влажности. При медленном пересечении порога переключения это может вызвать дребезг компаратора LM393, поэтому для стабилизации его работы в схему введён гистерезис. Он реализован цепью положительной обратной связи через резистивный делитель R25 (49,9 кОм) и R28 (10 МОм) между выходом и входом. Гистерезис предотвращает многократные ложные переключения при медленном изменении сигнала или наличии шумов. Учитывая, что пороговые напряжения компаратора находятся в диапазоне 8,6–9,0 В, а разница между соседними уставками составляет около 150 мВ, расчётный гистерезис выбран равным 60 мВ — этого достаточно для подавления помех, но не мешает различию соседних уровней влажности

RGB подсветка

Управление RGB-подсветкой реализовано на 12-разрядном двоичном счётчике CD4040. Микросхема последовательно подсчитывает импульсы, поступающие на её тактовый вход, и меняет состояние выходов в двоичном коде. Три младших выхода через транзисторные ключи управляют красным, зелёным и синим каналами светодиода с общим анодом.

IMG_0768

Переключение режимов выполняется одной кнопкой, подключённой к тактовому входу. По спаду импульса с кнопки состояние счётчика увеличивается на единицу, обновляя комбинацию логических уровней на выходах. Благодаря тому, что задействованы три выхода, доступно восемь комбинаций — от 000 до 111. Семь из них задают различные цвета свечения, а одна (000) полностью отключает подсветку. Порядок смены цветов соответствует последовательному нарастанию двоичного кода.

tempsnip

Логика работы

Поскольку в схеме присутствуют два независимых управляющих сигнала — от таймера и от компаратора влажности — необходимо их корректно объединить. Для этой задачи использован логический вентиль 2ИЛИ на микросхеме CD4071. Он обеспечивает включение нагрузки при наличии хотя бы одного активного сигнала.

Принцип работы следующий:

  • Таймер выключен (первое положение переключателя таймера), управление по влажности также отключено (первое положение переключателя). На оба входа логического элемента поступают нули — на выходе ноль, нагрузка отключена.

  • Если запущен таймер или текущая влажность ниже заданного порога (то есть требуется увлажнение), на соответствующем входе 2ИЛИ появляется единица. На выходе элемента — логическая единица, нагрузка включается.

Таким образом, схема работает по принципу «или»: увлажнитель активен, пока работает таймер или требуется повышение влажности (или оба условия одновременно).

Индикация отсутствия воды

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

4

Для индикации отсутствия воды применён P-канальный MOSFET, управляющий красным светодиодом. При разомкнутом герконе на затворе транзистора присутствует логический ноль, и светодиод горит. При замкнутом герконе на затворе +12 В — транзистор закрыт, светодиод не горит.

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

Печатная плата

Топология (Altium Designer)

image
image

Особенности разводки

  • При 81 компоненте получилось обойтись одним переходным отверстием — только для питания 12 В

    image
  • В процессе отладки первой версии устройства обнаружена нестабильность выходного напряжения LM331 — при неизменной частоте на входе отклонение достигало 0,6 В, что превышает допустимую погрешность. Причиной стало неудачное расположение времязадающего конденсатора C2: он находился вблизи датчика HS1101 и генератора TLC555, которые создают импульсные помехи, наводящиеся на цепь C2 и искажающие работу LM331.

    1 0
  • Конденсатор C2 был отодвинут от датчика HS1101 и таймера TLC555 — этого оказалось достаточно, чтобы исключить наводки импульсных помех на времязадающую цепь LM331. В результате выходное напряжение перестало плавать, а показания стали стабильными.

    2
  • Организована топология печатной платы, при которой трассы возвратного тока силовой нагрузки и аналоговой части не пересекаются. Разделение выполнено таким образом, что обе цепи сходятся только в одной точке:

    • Возвратный ток от нагрузки направлен от правого нижнего угла платы;

    • Возвратный ток аналоговой части (LM331 и обвязка) направлен от середины левой области платы.

      3
  • По всем цепям питания добавлены блокировочные конденсаторы — на выводах питания каждой микросхемы, а также в обвязке линейных стабилизаторов.

  • В разводке для контактных площадок, подключённых к полигону, оставлен термобарьер — зазор без меди, упрощающий пайку. Однако для линейного стабилизатора MC78M12, рассеивающего около 0,6 Вт, эффективный отвод тепла критичен. Поэтому термобарьер был убран, стабилизатор в корпусе DPAK находится на сплошном полигоне меди, что позволило снизить тепловое сопротивление и улучшить охлаждение без установки дополнительного радиатора.

Готовая плата

Изготовлена классическим фоторезистивным методом, который позволил точно воспроизвести топологию. Сверху на плату нанесена паяльная маска, сформированная путём УФ-экспонирования через фотошаблон. Она защищает дорожки от окисления и случайных замыканий при пайке.

IMG_0698
IMG_0690

Изготовление платы вручную требует внимательности и аккуратности. Наиболее сложным этапом традиционно оказывается точное совмещение фотошаблонов и равномерное проявление рисунка — каждый из этих шагов влияет на конечное качество. Ключевая проблема при проявке негативного фоторезиста — это перепроявка, из-за которой незасвеченные участки начинают разбухать, что ведёт к сужению дорожек и снижению разрешения. В данном проекте удалось добиться минимальной ширины сигнальных дорожек 350 мкм, что на 100 мкм меньше, чем в предыдущих работах.

На плате установлены разъёмы для удобного подключения: малые PH-K-S — для слаботочных цепей, крупные CWF — для нагрузки.

Корпус

Конструкция и материалы

Нижнее основание корпуса напечатано из белого пластика PETG, верхний бак — из прозрачного. Для поддержания строго определённого уровня воды в нижнем основании в конструкции бака предусмотрен клапан: при установке бака клапан открывается, вода поступает в нижнюю часть, а когда уровень достигает нужной отметки, клапан перекрывается — вода сама блокирует доступ воздуха, и подача прекращается. Объём бака составляет 600 мл. При производительности ультразвукового модуля около 200 мл/ч этого запаса воды достаточно для 3 часов непрерывной работы. Увлажнитель получился компактным по сравнению с покупными аналогами, что позволило сократить расход пластика: на печать белой части ушло 160 г, прозрачной — 140 г.

IMG_0807

Компоновка и управление

  • Для вывода пара наружу используется вентилятор, воздух от которого подаётся через прямоугольный воздуховод с небольшой направляющей, предотвращающей попадание капель воды с распылителя на вентилятор. Рядом размещён RGB-светодиод, обеспечивающий подсветку бака. Для предотвращения попадания воды внутрь устройства место установки защищено герметиком

    rROS4lUxqycNa8pEmsXh9QHctmAtaSO4RM80QKS7KkjzmWA3hXwomQM2Q8070mJc0rfEQP8QexO0N7tlkPUajih_
  • На передней панели расположены два поворотных переключателя и кнопка управления подсветкой, а также скрыто установлен красный светодиод, сигнализирующий об отсутствии воды.

    IMG_0802
  • На задней панели размещены разъём питания, выключатель и датчик влажности. Датчик выведен наружу корпуса: размещение сзади предотвращает попадание на него пара, а вынос за пределы корпуса исключает влияние вентилятора на измерения.

    IMG_0804

Благодарности

Выражаю благодарность Передовой инженерной школе «ЛЭТИ» и аспиранту кафедры ЭПУ Кушнаревой Олесе Андреевне за содействие и предоставленную возможность реализовать корпус для проекта!

Меры защиты

Защита от отсутствия воды

Для предотвращения работы увлажнителя без воды в конструкцию добавлен поплавковый выключатель на герконе (подробное описание работы приведено в разделе «Индикация отсутствия воды»). При падении уровня воды ниже допустимого геркон размыкается и отключает ультразвуковой модуль и вентилятор. После восстановления уровня воды работа возобновляется автоматически.

Защита от короткого замыкания

В цепи питания установлен плавкий предохранитель на 0,75 А. Его основная функция — защита элементов устройства от перегрузки по току и последствий короткого замыкания. Предохранитель включён последовательно в цепь питания и при превышении допустимого тока перегорает, разрывая электрическую цепь.

Защита электроники от влаги

Основная печатная плата и плата вентилятора покрыты электроизоляционным лаком Plastik 71 для защиты от конденсата и случайных брызг. Все электрические соединения дополнительно изолированы с помощью термоусадочной трубки.

IMG_0709

Демонстрация работы устройства

Проверка всех режимов и защиты представлена на видео по ссылке: Rutube

Все исходные материалы — схемы платы, 3D-модель корпуса и расчёты компонентов — выложены на GitHub

Итог

Проект завершён. Без микроконтроллера пришлось столкнуться с аппаратными особенностями, которые в цифровой реализации решаются несколькими строками кода. Из-за разброса ёмкости электролитического конденсатора (±20%) временные интервалы таймера могут плавать в пределах допуска. Индикация отсутствия воды работает корректно только при включённом хотя бы одном режиме. Эти нюансы не критичны для бытового использования, но они объективно присутствуют и напоминают о том, что аппаратная реализация требует принятия компромиссов.

Если бы стояла задача получить абсолютную точность временных интервалов и безупречную логику работы — МК решение оказалось бы проще, быстрее и предсказуемее.

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


А вы пробовали реализовывать подобную логику на аналоговых компонентах? Или всегда выбираете микроконтроллер? Буду рад услышать ваш опыт в комментариях!