Управление вентилятором 220 на ардуино

Управление вентилятором 220 на ардуино

Потребуется:

Датчик температуры — 1шт.

Твердотельное реле — 1шт.

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

Arduino Pro Mini.

Реле SSR-25DA. (Судя по описанию потребляемый ток всего 7.5mA)

Датчик температуры 18b20.

Пример подключения:

Для управления скоростью вращения вентилятора используется PIN 9 т.к. он ШИМ и после изменения частоты ШИМ эффект искажения работы некоторых функций проявится только для Servo library нам это не страшно т.к. здесь мы не используем такой функционал. Цифровой датчик температуры подключается к цифровому порту PIN 2. Так как вывод микроконтроллера держит 40mA то можно запитывать реле прямо с микроконтроллера, ему ничего не будет, но все равно на всякий случай воспользуемся транзистором кт315:

Распиновка транзисторов npn перехода:

Распиновка 1N4148

Частота бытовой сети куда будет подключаться вентилятор составляет 50Гц. Используемое реле SSR-25DA оборудовано датчиком пересечения ноля (cross zero sensor). Это значит что реле отключится/включится только в те моменты когда синусоида переменного тока будет пересекать значение 0. Поэтому частота работы ШИМ должна быть не выше чем 50Гц*2 = 100Гц (2 — потому, что за один период синусоида переменного тока пересекает ноль дважды).

Т.к. по умолчанию частота ШИМ гораздо выше надо ее разделить. Ниже таблица допустимых делителей для разных PIN:

PINs Частота, Гц Делитель
3 31250 1, 8, 32, 64, 128, 256, 1024
5 62500 1, 8, 64, 256, 1024
6 62500 1, 8, 64, 256, 1024
9 31250 1, 8, 64, 256, 1024
10 31250 1, 8, 64, 256, 1024
11 31250 1, 8, 32, 64, 128, 256, 1024

Мы используем PIN 9, значит его частота по умолчанию 31250Гц, нам надо получить не более 100Гц, для этого разделим на 1024. Получим

30 Гц. Такой частоты уже достаточно для регулировки оборотов. Если вместо вентилятора подключить лампу накаливая то будет видно как она мерцает, для бытового канального вентилятора это не критично.

Скетч:

В скетче используется код получения значения температуры отсюда.

#include
#include
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
int ventPin = 9;
int maxTemp=28;
int minTemp=26;
int interval=20; //min 30sec recomended for 18B20
DallasTemperature sensors(&oneWire);
void setup(void) <
Serial.begin(9600);
sensors.begin();
setPwmFrequency(ventPin, 1024); //division on 1024 for

30Hz
>
void loop(void) <
sensors.requestTemperatures();
Serial.print(«Temp=»);
float temp=sensors.getTempCByIndex(0);
Serial.print(temp);
Serial.print(«; Power=»);
int val = (((-1)*((maxTemp-temp)-(maxTemp-minTemp)))/2*100)*255/100;
if (val 255)
Serial.print(val);
if (val>20) <
analogWrite(ventPin, val);
Serial.print(«; Vent=on;»);
> else <
analogWrite(ventPin, 0);
Serial.print(«; Vent=off;»);
>
delay(interval*1000);
>
void setPwmFrequency(int pin, int divisor) <
byte mode;
if(pin == 5 || pin == 6 || pin == 9 || pin == 10) <
switch(divisor) <
case 1: mode = 0x01; break;
case 8: mode = 0x02; break;
case 64: mode = 0x03; break;
case 256: mode = 0x04; break;
case 1024: mode = 0x05; break;
default: return;
>
>
>

При требуемой мощности менее 20% вентилятор запускаться не будет вообще т.к. возможно не будет хватать времени для проворачивания ротора двигателя и он не будет крутиться. Начиная с 20% мощности на ротор начнет поступать ток и тока станет достаточно для проворачивания вентилятора.

Для информации:

Рассказы про частоту ШИМ arduino здесь.

Общий пример схемы подключения реле к ардуино через транзистор:

Источник

Digitrode

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

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

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

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

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

Принцип работы можно разделить на четыре части. Они следующие:

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

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

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

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

Как показано на рисунке выше, триак включается при угле 90 градусов при подаче на него небольшого сигнала импульса затвора. Время «t1» — это время задержки, которое дается в соответствии с требованием диммирования. Например, в этом случае угол включения составляет 90, следовательно, выходная мощность также будет уменьшена вдвое, и, следовательно, лампа также будет светиться с половиной интенсивности.

Мы знаем, что частота сигнала переменного тока здесь составляет 50 Гц. Таким образом, период времени будет 1/F, что составляет 20 мс. Для полупериода это будет 10 мс или 10000 микросекунд. Следовательно, для управления мощностью лампы переменного тока диапазон «t1» может варьироваться от 0 до 10000 микросекунд.

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

Также для изменения скорости вращения вентилятора переменного тока здесь используется потенциометр. Мы знаем, что потенциометр – это трехконтактное устройство, которое действует как делитель напряжения и обеспечивает изменяемый выход. Это изменяемое аналоговое выходное напряжение подается на аналоговый вход Arduino для установки значения скорости вентилятора.

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

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

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

Источник

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%, что соответствует полной остановки кулера и максимальной скорости вращения.

Источник

Терморегулятор вентилятора

ОПИСАНИЕ

ерморегулятор вентилятора на базе микроконтроллера AVR. Возможности:

  • Оптимизирован под ATmega328 (Arduino NANO) и ATtiny85 (Digispark)
  • Выход PWM 20 кГц
  • Датчик: NTC термистор (с полной настройкой) или ds18b20
  • Управление кнопкой
    • 1x клик: вкл/выкл
    • 2x клик: задать минимальную температуру
    • 3x клик: задать максимальную температуру
    • 4x клик – сброс на “стандартные” MIN_TEMP и MAX_TEMP
  • Плавное включение/выключение/регулирование
  • Сигнализация о перегреве
  • Линейный закон скорости от температуры

ВИДЕО

КОМПОНЕНТЫ

Каталоги ссылок на Алиэкспресс на этом сайте:

Стараюсь оставлять ссылки только на проверенные крупные магазины, из которых заказываю сам. Также по первые ссылки ведут по возможности на минимальное количество магазинов, чтобы минимально платить за доставку. Если какие-то ссылки не работают, можно поискать аналогичную железку в каталоге Ардуино модулей . Также проект можно попробовать собрать из компонентов моего набора GyverKIT .

Источник

Adblock
detector