Подключение Uno Protoshield к Arduino и автоматическое управление вентилятором с помощью реле и датчика DHT11

Рекуператор на ARDUINO своими руками

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

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

Получится у меня или нет — вопрос. Но, поживем — увидим. Далее я буду писать порядок действий и выкладывать рабочие скетчи (прошивки) для конкретного оборудования.

Расчет потребных параметров системы вентиляции можно почитать в статье Вентиляция в каркасном доме своими руками .

Характеристики Uno Protoshield

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

реклама

ГП: Asus GTX1070 Dual

Оперативная память: Corsair value ram 2x8gb 15-15-15-35@2400

БП: be quiet! SFX Power 2 формата SFX

SSD1: Kingston V300 120gb

SSD2: Crucial MX300 525gb m.2

Изначально все вентиляторы (блок питания, ЦП и 2 вентилятора напротив видеокарты) подключались к разъемам на мат. плате, и экспериментальным путем были выставлены соответствующие зависимости оборотов/температуры средствами bios. Минусом такого метода была привязка всех вентиляторов к температуре ЦП (или к температуре самой платы), т.к. материнка не имела возможности подключить внешний термодатчик. Вентиляторы напротив видеокарты из-за этого работали не совсем адекватно, т.к. при интенсивных вычислениях на ЦП они могли раскрутиться, хотя видеокарта была холодной. И наоборот, в каких-то играх, которые не сильно нагружали процессор, вентиляторы напротив видеокарты могли крутиться на околоминимальных оборотах.

Это не так сильно проявлялось с i5 6600t, т.к. он достаточно холодный и редко разогревался выше 55 градусов под низкопрофильным кулером alpenföhn silvretta 92mm.

Apps and online services

I have been wondering about this project and how to control my 4 pin PWM fans. I had 5 laying around and thought mine as well give it a shot. The frequency values can be adjusted between 125 HZ — 8 MHZ as well as a variable duty cycle. The circuit utilizes the mode 10 PWM phase-correct on timer 1 OCR1A (Pin 9) and ICR1 (Pin 10). Some debugging was needed to figure out this and I do own a handheld oscilloscope. It makes seeing the frequencies and duty cycles much easier and no guessing is involved. Here’s the link: The Oscilloscope .

The oscilloscope makes quick work when analyzing the pulses.

The oscilloscope makes quick work when analyzing the pulses.

I do strongly advise you look up the datasheet for your fan as the control pin in my case was yellow (Which is normally referred as tach wire). Be sure to also find the acceptable frequency range (OR » CENTERING FREQUENCY «) for your chosen fan. You may need to change the code frequency to adjust to your needs. Finally you will need a good power supply (Mine is a converted ATX PSU from an old PC).

NOTE: I have attempted using another timer and controlling 2 fans independently. It doesn’t work. The reason for this is the resolution of the 2nd timer is lower (16 bit vs 8 bit). This means steps in frequency and duty adjustments are noisy and the waveforms are more and more deformed. This also is not as straightforward when entering values.

Необходимые компоненты

  1. Плата Arduino UNO (купить на AliExpress).
  2. Датчик температуры и влажности DHT11 (купить на AliExpress).
  3. Транзистор 2n2222 (купить на AliExpress).
  4. ЖК дисплей 16×2 (купить на AliExpress).
  5. Вентилятор постоянного тока.
  6. Резистор 1 кОм (купить на AliExpress).
  7. Батарейка на 9 В.
  8. Соединительные провода.

Наша конструкция будет состоять из трех частей. В первой части будет измеряться температура с помощью датчика температуры и влажности DHT11. Вторая часть будет считывать значение температуры с выходного контакта DHT11, преобразовывать ее в температуру по шкале Цельсия и управлять скоростью вращения вентилятора постоянного тока с помощью ШИМ. А третья часть проекта будет показывать значение температуры и скорости вращения вентилятора на ЖК дисплее.

В этом проекте мы использовали датчик DHT11, который подробно описан в статье про измерение температуры и влажности с помощью Arduino. Но в этом проекте мы этот датчик будем использовать только для измерения температуры.

Принцип функционирования проекта достаточно прост. Мы будем создавать сигнал ШИМ модуляции на соответствующем контакте ШИМ платы Arduino, который будем подавать на базу транзистора. В соответствии с этим управляющим напряжением транзистор будет изменять значение напряжения на своем выходе, с которого и подается управляющее напряжение на вентилятор.

Пример ШИМ модуляции на цифровом осциллографе представлен на следующем рисунке.

Пример ШИМ модуляции на осциллографе

Скорость вращения вентилятора и соответствующие ей значения ШИМ и ее коэффициента заполнения представлены в следующей таблице.

Температура Цикл занятости ШИМ Значение, передаваемое в функцию управления ШИМ в Arduino Скорость вращения вентилятора
менее 26 0% 0 выключен
26 20% 51 20%
27 40% 102 40%
28 60% 153 60%
29 80% 204 80%
больше 29 100% 255 100%

Что такое ШИМ? Простыми словами это такая технология, с помощью которой мы можем управлять напряжением или мощностью. К примеру, мы подаем на электродвигатель напряжение 5 Вольт, которое будет заставлять его вращаться с некоторой скоростью. Если после этого мы снизим подаваемое напряжение на 2 Вольта (т. е. до 3 Вольт), то скорость вращения электродвигателя также уменьшится. Более подробно об использовании ШИМ можно прочитать в следующей статье: управлению яркостью свечения светодиода с помощью ШИМ.

Пример ШИМ модуляции с высоким разрешением на осциллографе

Основная идея ШИМ состоит в использовании цифровых импульсов с определенным коэффициентом заполнения (циклом занятости), который и будет отвечать за скорость вращения вентилятора.

К примеру, мы будем использовать ШИМ с коэффициентом заполнения 50% — это будет означать что на управляемое устройство мы будем подавать половину максимального напряжения импульса.

Формула для расчета коэффициента заполнения будет выглядеть следующим образом:

Duty Cycle= Ton/T

где T – общее время импульса Ton+Toff (сумма его активного и пассивного состояния)
Ton – время активного состояния импульса (означает 1 )
Toff – время пассивного состояния импульса (означает 0)

Более наглядно это представлено на следующих рисунках.

ШИМ с коэффициентом заполнения 50%

ШИМ с коэффициентом заполнения 10%

ШИМ с коэффициентом заполнения 90%

За, против и вердикт

Финальные строки стоит начать с того, что Gelid Codi6 – это не столько контроллер для вентиляторов, сколько контроллер подсветки. По части подсветки он обеспечивает колоссальные возможности управления адресными светодиодами, но в отношении пропеллеров это не контроллер, а скорее хаб-разветвитель. Управлять скоростью вращения «карлсонов» по отдельности он не может, только всеми разом.

Gelid Codi6: обзор. Контроллер для ARGB-вентиляторов на базе Arduino

Лежащая в основе платформа Arduino допускает подключение многих дополнительных датчиков: вибро-, влаго-, свето- и целого спектра других. Датчиков натурально всего, что разительно расширяет функционал. Впрочем, распинаться про общие достоинства платформы Arduino не имеет никакого смысла. Arduino может почти всё.

Существенный плюс Codi6 кроется в ценнике. Он оценивается в $29, что сопоставимо контроллерами от других компаний, но возможностей обеспечивает кратно больше.

Gelid Codi6: обзор. Контроллер для ARGB-вентиляторов на базе Arduino

К недостаткам по сравнению с другими контроллерами можно отнести полуоткрытый корпус и множество проводов. Внутри готовой системы всё это аккуратно расположить будет проблематично. Во-вторых, он не допускает управления скоростью вращения вентиляторов по отдельности.

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

Gelid Codi6: обзор. Контроллер для ARGB-вентиляторов на базе Arduino

Gelid Codi6: обзор. Контроллер для ARGB-вентиляторов на базе Arduino

Что касается вентиляторов Gelid Radiant-D – это простые вентиляторы с двумя ключевыми «фишками»: ARGB-подсветкой и огромным заявленным ресурсом работы более десяти лет. Кроме того, на фоне конкурентных решений они выделяются скоромным ценником – $18. На фоне типичной цены за ARGB-вентиляторы около $30 это весомый аргумент.

Последние посетители 0 пользователей онлайн

  • Ни одного зарегистрированного пользователя не просматривает данную страницу

Dr. West

Ну да, есть намёки. Китаец с псевдонимом «Борода», имеющий сайт в зоне SU и применяющий в разработках советские транзисторы, выглядел бы несколько странновато.

Я же говорил, что у меня нет задачи выжать из корпуса 15АС-201 очень низкие частоты. Я их наоборот буду резать где-то в районе 100-120Гц фильтром, чтобы срезать горб на 100 Гц. А НЧ будут воспроизводить сабвуферы в спинке. И тут вообще мне плевать на СЧ и ВЧ частоты АЧХ сабвуферного динамика выше 80-100 Гц. Их я отрежу фильтром на оптимальной частоте, которую найду экспериментально. И возможно даже попробую сместить резонансную частоту этого динамика вниз за счет утяжеления диффузора. Временно можно приклеить пластилин. Я уже делал такие фокусы в корпусе от 15АС-201, правда с не очень герметично закрытым корпусом. Но не закончил эти эксперименты в спинке кресла. И из-за малого объема 15АС не происходит на этих графиках заметного подъема АЧХ ниже 80-60 Гц в результате утяжеления диффузора. В ящике объемом в 15 л подъем на 20 и 30 Гц будет на много заметней. Что гадать — нужно попробовать, что получится.

drubtsow

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

drubtsow

Вот поправьте меня, пожалуйста, если ошибку допущу. Кабель «юсб-8-пин» имеет максимум 5 проводов со стороны USB венчающих контактами и максимум 8 проводов с другой 8-пин стороны. В теле кабеля эти провода неким образом могут соединяться, а могут и оставлять внешний контакт без соединения (контакт «пустышка»). Но имея мультиметр и «прозвонив» все контакты кабеля с двух сторон, можно понять какой контакт или какие контакты ЮСБ выходят со стороны 8-пинов. Допустим я подключаю к мультиметру первый пин ЮСБ, и по очереди «прозваниваю» все 8-пин с другой стороны и вижу что мультиметр реагирует как «1», допустим на 5ый и 7ой пин 8ми пинового разъема. Значит я замыкаю 5 и 7ой и соединяю с 1ым на ЮСБ.

FonSchtirlitz

В вашем случае (и не только) он (звук ниже Fb) в таком спаде, что ни под требования хай фай (где рабочий диапазон строго определяется уровнем -3дб) и тем паче позиционируемого вами хай энд, у которого нет никаких официально признанных норм и правил, поэтому каждый что хочет то и ворочит) никаким боком. Плюс ко всему Хмах мидбасовика не резиновый и ход подвесной системы ограничен (нормирован) не только Xmeh но и НИ. Динамик у вас на руках. Снять ПТС и рассчитать оптимальное АО с минимально фазовыми искажениями не сложно. Глядя на график и без окуляров видно, что вашему мидбасовику «пиджачок 15ас201» явно маловат. Это у бокарёвского 25гдн3-4 Qts 0.35, поэтому тот же «пиджачок» ему «по фигуре». О чём свидетельствуют представленные бокаревым измеренные данные.

waso

Правы, мекка уся получается как раз там. не обязательно. Технически смысл заземления входа компенсатора на плату — не наловить помех на кусок провода от платы до разъёма на задней стенке, когда он висит в воздухе. Есть в любом случае, поскольку Ку компенсатора=-2, что удваивает падение на одиночном проводе (их два) и подаёт результат на точку суммирования УМ . Можно говорить о том, что повышение качества провода снижает потери, но о полной бессмысленности компенсации речь может заходить лишь в случае активной АС, где от уся до динамика — десяток другой сантиметров. Так оно и есть по сути, просто сопротивление провода и выходное сопротивление уся, складываясь, дают в точке подключения компенсатора R=0, независимо от качества и длины проводов. Играться с отрицательным Rвых можно, меняя Ку компенсатора.

Сборка контроллера

Этот контроллер снова прототип, поэтому монтаж сделал снова на макетке. Когда устройства на ESP8266 пойдут в серию, буду все делать на печатных платах.

Компоненты контроллера

В корпусе делаю необходимые отверстия под индикатор, фоторезистор и кнопку

Корпус контроллера

Окно под индикатор заклеиваю красным светофильтром. Дешевые и хорошие светофильтры получаются из папок для бумаг, купленных в магазине канцтоваров. Прозрачное окно для фоторезистора — защитная пленочка оставшаяся от какого-то телефона (заказывал когда-то с запасом, теперь валяются)

ESP-шку и индикатор монтирую на съемных панельках из штырьковых разъемов

Процесс сборки

Контроллер вентилятора

Вот что получилось в сравнении со старым контроллером

Сравнение старого и нового контроллера

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

Переделка фотодиода

И вот контроллер смонтирован. Старый функционал восстановлен. На 4-х разрядном индикаторе отображается влажность с таким хитрым значком процентов

Отображение влажности

Отображение температуры

И, бонусом, текущее время. А в момент включения вентилятора, вместо времени — таймер обратного отсчета.

Отображение времени

Подробно работу нового контроллера с WiFi, алгоритмы работы, особенности и настройки я описал в отдельной статье.

В комментариях и письмах все постоянно передают привет Тимофея.
Спасибо! Вам всем тоже большой привет от него!

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector