Меню

Скорость вентилятора ардуино по температуре



Digitrode

цифровая электроника вычислительная техника встраиваемые системы

Управляем вентилятором с помощью Arduino

Хотите автоматизировать работу вентилятора? С помощью Arduino и датчика температуры LM35 это возможно!

При желании для визуализации значения температуры можно использовать LCD-дисплей. Для этого в код включена библиотека LiquidCrystal. Также следует для конкретного типа вентилятора подобрать свой транзистор. В данном случае используется широко распространенный BD139.

Важно задать требуемые значения tempMin и tempMax. Значение tempMin определяет теипературу, при которой вентилятор начинает вращаться, а tempMax представляет температуру, при достижении которой загорится красный светодиод, оповещающий о достижении максимальной температуры. Например, если установить tempMin=30, а tempMax=35, то кулер начнет вращаться при температуре 30°C, и достигнет максимальной скорости при температуре 35°C.

Текущее значение температуры сохраняется в переменной temp, а затем используются структуры if() для сравнения этой переменной с tempMin. Если temp меньше tempMin, то вентилятор отключается. Следующий if() сравнивает, больше ли temp значение minTemp и меньше tempMax. И если это так, то используется функция map() для преобразования temp из одного значения в другое. В нашем случае переменная fanSpeed будет иметь значение 32 при tempMin и 255 при tempMax. Этизначения применяются для управления скоростью вентилятора с помощью ШИМ и функции analogWrite().

fanLCD преобразует temp в диапазон от 0% до 100%, что соответствует полной остановки кулера и максимальной скорости вращения.

Источник

Контроллер оборотов вентилятора от температуры

Контроллер оборотов вентилятора от температуры. Бегущая строка на LCD 1602.

Ссылки на компоненты:

ЖК-дисплей LCD1602 (синий экран) — http://ali.pub/alnru

Модуль расширителя интерфейса (I2C) — http://ali.pub/dwj5n

Контроллер оборотов вентилятора от температуры

Оставьте комментарий:

Навигация по сайту:

Юный Технарь:

Помощь проекту:

Деньги можно перечислить на карту Сбербанка России:

4276 5400 2194 5088

Поиск

Последние статьи

Подключаем шаговый двигатель NEMA17 к Ar…

Подключаем шаговый двигатель NEMA17 к Arduino.

Информер на матрице 8 на 32 из WS2812

Информер на матрице 8 на 32 из WS2812.

Мой канал на YouTube

Подпишитесь!

2015, Arduinoprom.ru — блог Чилингаряна Грачика. Все авторские права на тексты принадлежат ему.

При размещении текстов и видеоматериалов на сторонних ресурсах активная гиперссылка ОБЯЗАТЕЛЬНА.

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

Источник

Вентилятор на Arduino Uno, управляемый с помощью температуры

В этом проекте на Arduino мы будем управлять скоростью вращения вентилятора постоянного тока в соответствии с температурой в комнате и показывать изменения этих параметров (температуры и скорости вращения вентилятора) на жидкокристаллическом (ЖК) дисплее 16×2. В проекте будет происходить обмен данными между Arduino, ЖК дисплеем и датчиком температуры DHT11. Управлять скоростью вращения вентилятора постоянного тока мы будем с помощью широтно-импульсной (ШИМ) модуляции, с помощью которой можно управлять средним значением напряжения, подаваемого на вентилятор.

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

  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, который будем подавать на базу транзистора. В соответствии с этим управляющим напряжением транзистор будет изменять значение напряжения на своем выходе, с которого и подается управляющее напряжение на вентилятор.

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

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

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

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

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

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

Duty Cycle= Ton/T

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

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

Работа схемы

Схема устройства представлена на следующем рисунке.

ЖК дисплей подключен к плате Arduino в 4-битном режиме, более подробно об этом можно прочитать в статье про подключение ЖК дисплея к Arduino. Контакты ЖК дисплея RS, EN, D4, D5, D6 и D7 подсоединены к цифровым контактам Arduino 7, 6, 5, 4, 3 и 2. Датчик DHT11 подсоединен к контакту 12 Arduino через подтягивающий резистор. Контакт 9 Arduino используется для управления скоростью вращения вентилятора (с помощью транзистора).

Исходный код программы

Сначала мы произведем подключение библиотек для работы с ЖК дисплеем и датчиком температуры (dht), а затем инициализируем контакты для подключения ЖК дисплея, датчика температуры и вентилятора.

Затем инициализируем все остальные нужные нам вещи в секции setup. А затем в секции loop мы будем использовать dht-функции для считывания значений с датчика температуры, извлекать из этих значений температуру, переводить ее в температуру по шкале Цельсия и отображать ее значение на ЖК дисплее.

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

Для генерации ШИМ мы будем использовать функцию analogWrite(pin, PWM value). Мы будем использовать все 8 бит. Значение ШИМ будет эквивалентно аналоговому значения напряжения. То есть, к примеру, если мы хотим сгенерировать ШИМ с коэффициентом заполнения 20%, то мы в эту функцию (analogWrite) должны передать значение 255/5.

Источник

Управление скоростью вращения вентилятора с помощью Arduino и симистора

В микроконтроллерной технике обычно для плавного управления чем-либо (интенсивность свечения лампы, скорость вращения двигателя, вентилятора и т.д.) используется широтно-импульсная модуляция (ШИМ). И подобные проекты мы уже рассматривали на нашем сайте, например, управление яркостью свечения светодиода, скоростью вращения вентилятора. Но в данной статье мы рассмотрим способ управления скоростью вращения вентилятора переменного тока с помощью платы Arduino и симистора (TRIAC).

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

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

  1. Плата Arduino Uno (купить на AliExpress).
  2. Оптопара 4N25 (для детектора перехода через ноль) (купить на AliExpress).
  3. Потенциометр 10 кОм (купить на AliExpress).
  4. Оптопара MOC3021 (купить на AliExpress).
  5. Понижающий трансформатор (0-9)V, 500 mA (купить на AliExpress).
  6. Симистор (TRIAC) BT136 (купить на AliExpress).
  7. Вентилятор переменного тока на 220 В.
  8. Соединительные провода.
  9. Резисторы (купить на AliExpress).

Принцип управления вентилятором переменного тока с помощью Arduino

Данный принцип управления мы разделим на следующие 4 части:

  1. Детектор перехода через ноль.
  2. Схема управления углом сдвига фаз.
  3. Потенциометр для управления скоростью вращения вентилятора.
  4. Схема генерации ШИМ сигнала.

Рассмотрим эти этапы более подробно.

1. Детектор перехода через ноль

В нашей домашней сети напряжение переменного тока составляет 220 В, которое изменяется с частотой 50 Гц. Полярность этого сигнала периодически изменяется: в первой половине периода ток течет в одном направлении – возрастает, достигает своего максимального значения, и затем снова уменьшается до нуля. Затем в следующем полупериоде ток начинает течь в обратном направлении (отрицательном), достигает своего максимума и затем снова возвращается к нулю. Для управления скоростью вращения вентилятора нам необходимо будет управлять пиковыми значениями тока в обоих полупериодах. Для этого нам необходимо будет знать точку перехода через ноль (zero voltage crossing) сигнала.

Читайте также:  Дверь для санузла для вентиляции

На рисунке ниже представлена схема детектора перехода через ноль, которая как раз и предназначена для обнаружения этой самой точки. В этой схеме на первом этапе напряжение понижается с 220 В до 9 В с помощью понижающего трансформатора и затем оно подается на контакты 1 и 2 оптопары 4N25. В составе оптопары 4N25 есть светодиод, который подключен к ее контактам 1 и 2. Следовательно, когда напряжение переменного тока приближается к нулю, светодиод в составе оптопары выключается, транзистор оптопары закрывается и на выходе схемы будет напряжение 5V. А когда напряжение переменного тока достигает своего максимума, светодиод в составе оптопары загорается, транзистор оптопары открывается, и на выходе схемы будет напряжение 0V. Таким образом, сигнал с выхода этой схемы можно непосредственно подавать на плату Arduino и с ее помощью можно будет обнаруживать эти переходы напряжения переменного тока через ноль.

2. Схема управления углом сдвига фаз

После обнаружения момента перехода сигнала через ноль нам необходимо будет управлять промежутками времени, в течение которых на двигатель вентилятора необходимо будет подавать напряжение, и промежутками, в течение которых на двигатель вентилятора не надо будет подавать напряжение (интервалы ON и OFF). Таким образом, мы получим своеобразный ШИМ сигнал, с помощью которого будет происходить управление скоростью вращения вентилятора. Для формирования этого сигнала в нашем проекте мы будем использовать симистор BT136, который отлично подходит на роль электронного переключателя мощности для сигнала переменного тока.

Симистор (TRIAC) представляет собой переключатель переменного тока с 3 контактами, который можно переключать сигналом небольшой мощности, подаваемым на его вывод затвора (управляющий контакт). При этом в отличие от тиристора, который управляет переключением мощности только в одном направлении, с помощью симистора можно управлять переключением мощности в двух направлениях.

Принцип управления симистора переменным током показан на следующем рисунке.

Как показано на рисунке, мы можем переключать, к примеру, симистор на угле 90 градусов при помощи подачи отпирающего импульса на его управляющий вывод. В этом случае мы будем подавать ток на лампу только в половине времени положительной полуволны сигнала (на графике время t1), соответственно, лампа будет гореть вполовину мощности. Уменьшая или увеличивая это время мы можем заставить лампу гореть ярче или тусклее.

Частота сигнала переменного тока в нашей сети составляет 50 Гц, соответственно, период сигнала равен 1/f =20 миллисекунд. Значит, половина периода будет равна 10 мс. Поэтому мы можем изменять время t1 на приведенном графике для управления яркостью свечения лампы переменного тока в диапазоне от 0 до 10 мс (10000 мкс).

Оптопара

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

На следующем рисунке представлена схема соединения оптопары MOC3021 и симистора.

3. Потенциометр для управления скоростью вращения вентилятора

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

4. Схема генерации ШИМ сигнала.

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

Схема проекта

Схема управления скоростью вращения вентилятора с помощью платы Arduino и симистора представлена на следующем рисунке.

Читайте также:  Вытяжной канальный вентилятор с выключателем

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

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

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

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

Первым делом в программе мы должны объявить все используемые переменные. В нашей схеме симистор BT136 подключен к контакту 6 платы Arduino. А в переменной speed_val мы будем хранить значение скорости вентилятора.

Источник

Вентилятор с помощью Ардуино, который зависит от температуры

В этом уроке вы узнаете о вентиляторах с регулятором температуры на Ардуино, используя датчик и реле DHT22.

Комплектующие

Автоматический вентилятор Ардуино, который включается сам, когда температура в помещении достигнет определенной величины.

Мы будем использовать датчик DHT22 для получения значения температуры и выведем это значение температуры на ЖК-дисплее. Затем мы проверим, будет ли значение температуры больше 35 или нет, если температура будет больше 35, тогда реле будет активировано и вентилятор начнет вращаться.

Нам понадобятся следующие детали для нашего проекта:

Кол-во Комплектующие
1 Arduino Uno
1 16×2 LCD / ЖК Дисплей
1 DHT22 датчик температуры и влажности
1 DC motor / Двигатель постоянного тока
1 9В батарейка
1 10K потенциометр
1 220 Ом резистор
Набор проводов
1 Макетная плата

Принципиальная схема вентилятора Ардуино

Принципиальная схема нашего вентилятора выглядит так:

Давайте разберемся с соединением всех деталей. Прежде всего сделайте подключение ЖК-дисплея к Ардуино следующим образом:

  • Подсоедините вывод VSS на ЖК-дисплее к земле Arduino.
  • Подключите контакт VDD к 5V Arduino.
  • Подсоедините вывод V0 к центральному выводу потенциометра 10K. Подключите два других контакта потенциометра к 5V и к земле.
  • Подсоедините штырь RS к контакту 2 Arduino.
  • Подключите контакт R/W к земле Arduino. Это поместит ЖК-дисплей в режим чтения.
  • Подключите контакт E (Enable) к контакту 3 Arduino.
  • Подключите контакты D4-D7 к контакту 4, 5, 6, 7 Ардуино.
  • Подключите контакт 15, который является положительным выводом подсветки светодиода на 5-контактный штырь через резистор 220 Ом.
  • Подключите контакт 16, который является отрицательным выводом подсветки светодиода к земле Arduino.

Затем подключите релейный модуль к Arduino. На стороне входа модуля реле выполните соединения следующим образом:

  • Подключите вывод VCC модуля реле к выводу 5V Arduino.
  • Подключите вывод IN модуля реле к выходу 9 Arduino.
  • Подключите вывод GND модуля реле к GND Ардуино.

На выходной стороне модуля реле подключите минус 9В-батареи к общему (C) модулю реле и подключите NC модуля реле к минусу вентилятора. Затем подключите плюс батареи к плюсу вентилятора.

В конце сделайте соединения для датчика температуры и влажности DHT22.

  • Подключите контакт 1 DHT22, который является выводом VCC, к 5V Ардуино.
  • Подключите контакт 2 DHT22, который является выводом данных к выходу 8 Arduino.
  • Подключите контакт 4 от DHT22, который является заземляющим контактом, к земле Arduino.

Скетч для Ардуино

Ниже вы можете скопировать и загрузить код в свою Ардуино Уно.

Объяснение кода

Прежде всего, мы включили библиотеки для датчика DHT22 и для ЖК-дисплея. Библиотеки помогут сделать код более простым.

Скачать все необходимые библиотеки для своих проектов вы можете на нашем сайте в разделе — Библиотеки.

Затем мы инициализировали контакты к которым мы подключили ЖК-дисплей и датчик DHT22. После этого мы определили тип датчика DHT, который используется. Существует множество других типов датчиков DHT, таких как DHT11, поэтому здесь важно определить тип.

В функции настройки мы дали команду DHT22 и LCD, чтобы начать общение с Arduino. Затем мы объявили контакт реле как выходной вывод, потому что мы дадим напряжение от Ардуино к реле для активации реле. Реле работает обратно (High означает Low для реле).

В функции цикла мы очищаем ЖК-экран, а затем считываем значение температуры от датчика.

Затем мы печатаем значение температуры на ЖК-дисплее, и если значение температуры будет больше 35, тогда реле будет активировано, и вентилятор начнет вращаться.

Источник

Adblock
detector