Оглавление:

Контроллер настольного вентилятора Arduino: 4 шага
Контроллер настольного вентилятора Arduino: 4 шага

Видео: Контроллер настольного вентилятора Arduino: 4 шага

Видео: Контроллер настольного вентилятора Arduino: 4 шага
Видео: Программируемый ШИМ контроллер управления вентилятором от температуры 2024, Ноябрь
Anonim
Настольный контроллер вентилятора Arduino
Настольный контроллер вентилятора Arduino
Настольный контроллер вентилятора Arduino
Настольный контроллер вентилятора Arduino
Настольный контроллер вентилятора Arduino
Настольный контроллер вентилятора Arduino

Когда я недавно сменил должность в компании, я переместил сайты из Брэдфорда в наш головной офис в Уэйкфилде. Я попрощался со своим верным старым столом с обязательным настольным вентилятором, чтобы сохранять спокойствие, пока все вокруг меня ……. Как бы то ни было, в нашем главном офисе трендом были маленькие вентиляторы с питанием от USB размером от 4 до 6 дюймов. Итак, на следующий день была быстро заказана красивая старинная 6-дюймовая модель с эффектом латуни и доставлена.

Проблема со всеми вентиляторами, независимо от того, есть ли у них настройки скорости или режимы механического колебания, заключается в том, что они либо включены, либо выключены, и вы в конечном итоге их включаете и выключаете все время. Искра воображения в сочетании с требованием поднять мой монитор на добрые 3 дюйма - вот и родился мой следующий проект. Войдите в Fanomatic.

Я играл с Arduino много лет, так что это была первая логическая остановка.

Шаг 1. Список покупок и кейс

Список покупок и чехол
Список покупок и чехол
Список покупок и чехол
Список покупок и чехол
Список покупок и чехол
Список покупок и чехол

Список покупок:

  • 1 лист МДФ 12мм - для корпуса
  • 1 Arduino Uno - мозги
  • 1 см макетная плата и провода
  • 1 DHT11 - цифровой датчик температуры и влажности - только для измерения температуры пробы
  • 1,96-дюймовый OLED-дисплей - для отображения переменных - скорости, температуры и т. Д.
  • 1 модуль IRF520 Mosfet - для включения и выключения питания вентилятора через USB.
  • 4 потенциометра 10k с ручками разного цвета - для контроля скорости вентилятора, времени включения, времени выключения, уставки температуры
  • 1 выключатель питания
  • Краска для жестяной доски толщиной 1 см - подходит для МДФ в 1 слой
  • 1 usb-кабель и 1 usb-разъем

Случай:

Размер корпуса определялся размером основания моего 24-дюймового монитора и 4-портового KVM-переключателя при ширине 220 мм и конечной высоте, на которую я хотел установить свой монитор. Глубина была довольно гибкой, поэтому я выбрал 180 мм, чтобы дать достаточно Итак, размер 220 мм x 180 мм x 60 мм. Теперь нужно сделать и заполнить.

12-миллиметровый МДФ был довольно легко разрезан в домашних условиях, прежде чем приклеить и прикрутить, чтобы сформировать рабочую основу и переднюю часть. Затем на передней панели было просверлено 4 потенциометра по 10 кОм и 1 на верхнем выключателе, который будет управлять питанием Arduino и вентилятора. Было проделано прямоугольное отверстие для маленькой дымчато-серой акриловой панели, за которой я планировал закрепить один из этих симпатичных OLED-дисплеев. На полпути я хотел бы использовать 3-миллиметровый слой для передней части вместо 12-миллиметрового МДФ, так как древесины было удалено больше, чем осталось.

После того, как отверстия были просверлены и вырублены сзади и сбоку для датчика температуры, гнезда USB и входа питания USB. Было нанесено несколько слоев краски для школьной доски. Отличная краска для мдф, так как хорошо впитывается и не требует грунтовки. Он дает очень неумолимый матовый оттенок, именно то, что я искал.

Кастрюли и переключатели были прикреплены, дымчатый акрил наклеен горячим способом, а этикетки Dyno изготовлены для этого ретро-образа.

Рядом с элементами управления…

Шаг 2: элементы управления

Элементы управления
Элементы управления

Все основано на Arduino Uno. Я накормил компоненты и приступил к наброску.

В скетче используются 3 библиотеки:

  • Один для управления МОП-транзистором irf520 для включения вентилятора.
  • Один для управления OLED-дисплеем
  • Один для чтения и перевода данных о температуре с DHT11

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

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

Логика:

Один USB-кабель обеспечивает питание Arduino и USB-вентилятора. Arduino не может запустить вентилятор, так как ток, который он тянет, может повредить Arduino (на самом деле, это немного драматично! Это приведет к срабатыванию встроенного предохранителя). Поэтому нам нужно найти способ использовать Arduino для включения или выключения питания вентилятора.

Требуется транзистор, я сначала заказал транзистор Дарлингтона, но после прочтения я решил использовать модуль драйвера полевого МОП-транзистора irf520 с сайта HobbyComponents.com. Внимание компьютерщиков !! IRF520 отлично подходит для переключения логического уровня (вывод с контактов Arduino). Напряжение, подаваемое на устройство, определяет сопротивление полевого МОП-транзистора, т.е. отправка от 0 до 255 на цифровой вывод приведет к выключению вентилятора (или другого подключенного устройства) на полную скорость.

Мы вернемся к значениям от 0 до 255 позже.

Итак, мы включаем вентилятор с помощью Arduino, зачем беспокоиться? Что ж, мы же не хотим, чтобы он загорался, когда слишком холодно, не так ли? Поэтому, если мы добавим датчик температуры, мы можем написать код и протестировать, чтобы увидеть, горячий ли он, и включить вентилятор (255) или выключить (0). Я выбрал DHT11, потому что он очень дешевый, простой в программировании и достаточно точный для этого проекта.

Вернемся к тому, что от 0 до 255. Если мы знаем, что бит кода включит вентилятор (255), если температура высокая, или выключит (0), если температура низкая, если бы у нас было значение от 0 до 255, сопротивление будет расти или падать через MOSFET и ускорить или замедлить вентилятор.

Введите потенциометр, подключенный к аналоговому выводу! При повороте генерирует значение от 0 до 1023. Это значение затем можно проверить в коде, чтобы изменить скорость вентилятора !! yipeeeee.

И последнее (ну, пара). Библиотека управления двигателем, которую мы будем использовать для управления драйвером MOSFET, принимает 2 параметра: один для установки сопротивления (для скорости), а другой для установки продолжительности. Таким образом, с помощью этого волшебного параметра мы можем установить, как долго вентилятор включен и как долго он выключен.

Итак, у нас есть 4 горшка для управления 4 переменными. Далее посмотрим на дисплей.

Шаг 3: Дисплей

Дисплей
Дисплей
Дисплей
Дисплей

НУЖЕН ли дисплей? Не совсем. Так почему он у него есть? Ну, потому что я хотел, чтобы симпатичный дисплей отображал текущую температуру, скорость вентилятора, время работы вентилятора, время выключения вентилятора и заданное значение температуры.

Библиотека U8G великолепно управляет этим крошечным OLED-дисплеем. На поиски потребовался вечер, и я разобрался с командами, чтобы получить желаемый размер шрифта для 5 строк и отобразить переменные с помощью команд u8g.print (). Преимущество этого дисплея заключается в том, что это не 2- или 4-строчный дисплей, к которому так привыкло сообщество Arduino, поэтому графика и шрифты очень удобны.

Если честно, большая часть кода управляет дисплеем. если операторы определяют значения, которые должны отображаться, например, преобразовать значение из аналоговых потенциометров (от 0 до 1023) в значение для отображения на экране. В целом, существует несколько наборов блоков операторов, которые определяют скорость вращения вентилятора от горшка, конвертируют в значение% для экрана и значение от 0 до 255 для управления вентилятором.

Ну, пока, ребята. Надеюсь, вам понравится этот первый взнос. Я буду редактировать и обновлять ссылки и код. Если есть какие-то подробности, пожалуйста, оставьте комментарий и спросите.

Шаг 4: Код

Я обещал загрузить скетч, когда опубликовал это, 3 года назад, и так и не сделал.

Итак, вот оно ……

Рекомендуемые: