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

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Транзистор и диоды должны быть расчитаны на напряжение и ток вентилятора (с запасиком)

Можно, конечно, питание замутить безтрансформаторное... но если нет опыта, то не советую. Нет ничего проще китайского адаптера. Подойдет даже ненужная зарядка от сотового. Напряжение от 5 до 12 вольт.

YuraSh
Offline
Зарегистрирован: 18.01.2013

А что если использовать такую схему (источник)

только на 5 вывод DA2 подать напряжение не с R4 а с ШИМ выхода Ардуины (ну с некоторыми доработками). Программа значительно упроститься.

maksim
Offline
Зарегистрирован: 12.02.2012

AlexFisher пишет:

Транзистор и диоды должны быть расчитаны на напряжение и ток вентилятора (с запасиком)

Можно, конечно, питание замутить безтрансформаторное... но если нет опыта, то не советую. Нет ничего проще китайского адаптера. Подойдет даже ненужная зарядка от сотового. Напряжение от 5 до 12 вольт.

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

maksim
Offline
Зарегистрирован: 12.02.2012

YuraSh пишет:

А что если использовать такую схему (источник)

только на 5 вывод DA2 подать напряжение не с R4 а с ШИМ выхода Ардуины (ну с некоторыми доработками). Программа значительно упроститься.

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

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

Блин я уже детали купил к этой схеме. Попробовать все же хочется, но есть ли смысл.

AlexFisher пишет:

Транзистор и диоды должны быть расчитаны на напряжение и ток вентилятора (с запасиком)

Можно, конечно, питание замутить безтрансформаторное... но если нет опыта, то не советую. Нет ничего проще китайского адаптера. Подойдет даже ненужная зарядка от сотового. Напряжение от 5 до 12 вольт.

 

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

maksim
Offline
Зарегистрирован: 12.02.2012

Конечно есть, если ротор и крыльчатка будут иметь достаточную инерцию, то вы вообще ничего не заметите. Если будут заметны пульсации (нестабильное вращение) и если это критично, то просто добавите в эту схему еще несколько радио-элементов для обратной связи и реализуете фазное управление. На срок службы двигателя это никак не влияет.
Так же еще как вариант - значительно увеличить частоту ШИМа, что уже не раз предлагалось 
AlexFisher'ом для DC моторов, для устранения писка, здесь увеличение частоты может снизить или вообще устронить пульсации. 

Но я все же стороник фазного управления.

YuraSh
Offline
Зарегистрирован: 18.01.2013

maksim пишет:

А с этой схемой еще все сложнее, так как здесь и применено то самое фазовое управление 

В этой схеме не фазовое управление.

это диаграмы работы на разных мощностях из того же источника.

Фазовое управление для асинхронных двигателей не проходит, так как частота оборотов зависит от частоты питания. В таком варианте за счет пропуска периодов уменьшается частота.

А почему по Вашему при подключении ШИМа работать не будет. Ведь ШИМ дает напряжение от 0 до 5В (правда импульсное) а в этой схеме на 5 вывод тоже подается напряжение от  до 12В (тоже импульсное, правда сглаженное конденсатором С1)?

maksim
Offline
Зарегистрирован: 12.02.2012

Интересные схема и принцип работы.
Не вникал досканально в работу схемы, но не пройдет, потому что и вы сами об этом пишите - "тоже импульсное, правда сглаженное конденсатором С1" больше чем уверен, что частота этих импульсов очень важна и синхронна с частотой регулируемого напряжения, а скорость разряда кондера наверное как раз и задает количество пропусков и при подачи туда ШИМа, что получится? Бред. Тоесть или будут какие-то случайные импульсы, или при изменении скважности ШИМа схема будет рабртать как реле или вкл. или выкл. или просто не будет работать. Как вариант, можно поставить цифровой потенциометр вместо R4.

maksim
Offline
Зарегистрирован: 12.02.2012

Кстати, если схема будет такой

то на ней можно реализовать и фазное управление и управление с пропуском периодов, что еще проще, чем фазное.

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Для схемы из #52 - подать сигнал ШИМа можно, но его нужно сгладить RC-цепочкой, чтобы было минимум пульсаций (превратить ШИМ в аналоговый сигнал), по поводу моей схемы - я изначально расчитывал на инерциальную нагрузку, мерцания здесь возможны из-за биений частоты ШИМа с частотой сети (нужно увеличивать частоту ШИМа), кроме того, на двигатели не подают минимальную мощность (он на ней может и не стартануть) Контроль ротора двигателя на низких оборотах возможен только с обратной связью (для коллекторных) или с честным частотным управлением (для 3-хфазных)

maksim
Offline
Зарегистрирован: 12.02.2012

AlexFisher пишет:

Для схемы из #52 - подать сигнал ШИМа можно, но его нужно сгладить RC-цепочкой, чтобы было минимум пульсаций (превратить ШИМ в аналоговый сигнал)

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

YuraSh
Offline
Зарегистрирован: 18.01.2013

AlexFisher пишет:

кроме того, на двигатели не подают минимальную мощность (он на ней может и не стартануть)

А сильно минимальная мощность для вентилятора и не требуется. Проверить, что, например, при 30% двигатель уверенно стартует и програмно это ограничить. Хотя обратную связь на датчике Холла неплохо поставить, можно будет, кроме прочего, фиксировать "нестарт" (заклинивание, перегорание).

Понравилось такое решение, т красиво откоментирован проект.

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

maksim пишет:

AlexFisher пишет:

Для схемы из #52 - подать сигнал ШИМа можно, но его нужно сгладить RC-цепочкой, чтобы было минимум пульсаций (превратить ШИМ в аналоговый сигнал)

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

Ну прямо анекдот про прапощика и установку антенны:

Прапорщик (читает инструкцию): "установить антенну"

Солдат: может сначала растянуть растяжки?

Прапорщик: написано установить - устанавливай!

Солдат установил антенну, она упала. Прапорщик читает дальше "предварительно растянув растяжки"

:) Извините за оффтоп - навеяло. "Подать ШИМ, сгладив его RC" - "нельзя его подавать, нужно сначала пропустить через RC"

maksim
Offline
Зарегистрирован: 12.02.2012

Неаналогичный пример. Антена и до и после останется антеной. После RC-цепи это уже не ШИМ, согласны?

Вопрос: Можно подавать ~220 вольт на VCC и GND МК дуины?
По вашей же логике ответ: Да можно, предварительно пропустив через выпрямитель, снизив до 5 вольт и стабилизировав.

Так и суп из топора можно сварить... )

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Давайте не будем спорить! Вы правы! Я несколько вольно обошелся с терминами (в надежде, что будет понятнее). Я должен был написать "можно использовать (вместо подать) сигнал ШИМ, предварительно получив из него аналоговый сигнал методом сглаживания его RC цепочкой".

Но можно использовать и ШИМ, слегка переделав схему, а именно, убираем цепочку VD2, R2, вместо нее на конденсатор через резистор 1кОм подаем наш ШИМ, R3=0, R4 - в крайнем левом положении.

leshak
Offline
Зарегистрирован: 29.09.2011

Должность во Вселенной пишет:
– Ну, анекдот такой: давится человек в московском ЦУМе в очереди неизвестно за чем, соображает: «Если это большое – ушьем, маленькое – растянем, электрическое – пустим через трансформатор…»

 

IMHO Максим прав. AlexFisher, представте что эта схема продается в виде готового устройства. Что у нее в доке будет написанно? "Имеется аналоговый управляющий вход". А кто подает там аналоговый сигнал в него, бабуин с реостатом или припадочный телеграфист с RC-цепочкой, - не важно. Если же мы дадим в него шим,  то это будет -  "неправильное использование". 

Вообщем либо RC-цепочка должна быть внесена в схему и в документации появится "имеется PWM управляющий вход", либо к самой схеме PWM не имеет никакого отношения (но может иметь тому "как ее согласовать с каким-то управляющим устройством" или проявится в "Application Notes").

 

 

maksim
Offline
Зарегистрирован: 12.02.2012

AlexFisher пишет:

Давайте не будем спорить! Вы правы! Я несколько вольно обошелся с терминами (в надежде, что будет понятнее). Я должен был написать "можно использовать (вместо подать) сигнал ШИМ, предварительно получив из него аналоговый сигнал методом сглаживания его RC цепочкой".

Но можно использовать и ШИМ, слегка переделав схему, а именно, убираем цепочку VD2, R2, вместо нее на конденсатор через резистор 1кОм подаем наш ШИМ, R3=0, R4 - в крайнем левом положении.

Ну так давайте не будем.

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

2 leshak

YuraSH писал "использовать такую схему", а не устройство, следовательно, я предположил, что возможны изменения в схеме.

maksim
Offline
Зарегистрирован: 12.02.2012

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

leshak
Offline
Зарегистрирован: 29.09.2011

AlexFisher пишет:

2 leshak

YuraSH писал "использовать такую схему", а не устройство, следовательно, я предположил, что возможны изменения в схеме.

Ну так и выходит что "использовать ЭТУ схему" - нельзя. Требуется изменения. После которых это будет "ДРУГАЯ схема", хотя и родственная. Или пойдем от обратного. Если ЭТУ схему можно управлять PWM-мом, то зачем же делать в нее изменения? ;)

Ладно. Суть, думаю, уже ясна всем. Жонглируем терминами. Но мы на форуме, а не филосовском диспуте. Тут можно позволить себе некую вольность формулировок. А принипиальных разногласий - вроде как не наблюдается. Все согласны что для PWM нужна RC-цепочка. Вопрос только "как это назвать" :)  И в этот момент у меня и Максима включился режим "зануда" :)  (что тоже бывает очень полезно ;)  )

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

По сему у меня предложение, а давайте спросим YuraSH, как дела? Тему вернем, так сказать, "в русло". Может, он уже сделал все давно... или забросил...

YuraSh
Offline
Зарегистрирован: 18.01.2013

Не сделал но и не забросил. Я пока, так сказать, зондирую почву (учу матчасть). Я знаю что хочу получить в результате и ищу способы решения. Пока остановился на Ардуине но, еще ее не имею. А насчет этой схемы, так один форумчанин, нездешний, подружил эту схему и фабричный ПИД контроллер температуры. В нем выход по напряжению 0-10В. И не думаю, что там обошлося без ШИМа. Сегодня нарисовался еще один алгоритм (библиотека TimerOne и прерывания) , но так как я новичек, боюсь, что там будет куча ошибок (как бы тапочками не закидали). А проверить пока неначем.

YuraSh
Offline
Зарегистрирован: 18.01.2013

Ну вот как то так (сильно не пинайте, я только учусь)

#include <TimerOne.h>
#define ControlSimistor 9 //выход на симистор
#define ControlZero 2 //вход контроля перехода через 0
byte Power = 50; //начальное значение мощности в % (можно не задавать)
volatile int duti = 512; //начальное значение заполнения ШИМ
void setup()
{
Timer1.initialize(); //инициализация таймера с периодом по умолчанию 1с (возможно надо будет чуть меньше)
Timer1.stop(); //остановка таймера (не уверен что именно так нужно)
Timer1.attachInterrupt(contr); //прерывание по переполнению таймера
pinMode(ControlSimistor,OUTPUT);
digitalWrite(ControlSimistor,LOW);
pinMode(ControlZero,INPUT);
digitalWrite(ControlZero,1);
attachInterrupt(0,zero,FALLING); //внешнее прерывание по контролю 0
}
void zero() //если словили 0
{
 Timer1.Start(); //запускаем таймер (???)
 Timer1.Pwm(ControlSimistor,duti); //включаем ШИМ на 9 пин и устанавливаем заполнение
 detachInterrupt(0); //отключаем внешнее прерывание по 0, чтобы не срабатывало пока не пройдет 1с.
}
void contr() //запускается по переполнению таймера, то есть по прошествию 1с.
{
  Timer1.Stop(); //останавливаем таймер (может можно обойтись просто перезапуском???)
  Timer1.disablePwm(ControlZero); //отключаем ШИМ (незнаю нужно ли каждый раз останавливать, может быть обойтись командой Timer1.SetPwmDuti (устанавливает заполнение ШИМ))
  attachInterrupt(0,zero,FALLING); //вновь включаем внешнее прерывание и ловим следующий переход через 0
}
void loop()
{
  //здесь меняем duti согласно каким то установкам и выполняем другие задачи
}

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

maksim
Offline
Зарегистрирован: 12.02.2012

Так а зачем вам использовать таймер? таймер нужен для фазного регулирования, когда нужно отсчитывать время, вам же просто достаточно при переходе через ноль включать/отключать симистор.

 

YuraSh
Offline
Зарегистрирован: 18.01.2013

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

maksim
Offline
Зарегистрирован: 12.02.2012

Ну вот так примерно:

#define ControlSimistor 9 //выход на симистор
#define ControlZero 2 //вход контроля перехода через 0
#define steps 5 // количество шагов в 100%, разрядность, ступенчатость
volatile byte Power = 40; //начальное значение мощности в % (можно не задавать)

void setup()
{
  pinMode(ControlSimistor, OUTPUT);
  digitalWrite(ControlZero, 1);
  attachInterrupt(0, zero, FALLING); //внешнее прерывание контроля перехода через ноль
}

void zero() //если словили переход через 0
{
  static int count; 
  if(count < Power/(100/steps)) 
    digitalWrite(ControlSimistor, 1);
  else
    digitalWrite(ControlSimistor, 0);

  count++;
  if(count == steps) count = 0;
}

void loop()
{
  //здесь меняем Power согласно каким то установкам и выполняем другие задачи
}
YuraSh
Offline
Зарегистрирован: 18.01.2013

Спасибо за подсказку. Хороший вариант.

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

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

Но все же ребята интересен окончательный вариант работающей схемы )))

 

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Судя по всему, речь сейчас о схеме #59, только, возможно, вместо мощного транзистора - тиристор. IMHO - самый правильный вариант управления мощной инерционной нагрузкой это именно изменяя колличество пропущенных и заблокированных полупериодов. Если проявить заботу о сети (чтобы ее не перекашивало), то следует пропускать и блокировать полупериоды парами.

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

Раз уж #59 максимально приближен к желаемой и максимально реализуемой цели. Тогжа вопрос, куа поключается Din (ноль), что он дает.

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Din(ноль) подключается к D2 или D3 - на внешнее прерывание, которое должно срабатывать при переходе сети через 0 - служит для синхронизации с началом полупериода (обычно, при фазовом регулировании). В данном контексте служит для подсчета полупериодов для управления мощным транзистором.

maksim
Offline
Зарегистрирован: 12.02.2012

Так бы выглядела схема на симисторе:

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

 

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Хорошая схема для управления целыми периодами. Прерывание нужно использовать по спадающему фронту - он наступает чуть раньше конца периода. Только резистор R3 великоват. У оптрона номинальный ток диода 20 мА (максимальный 50), а тут в пике выходит 2 мА. Я бы поставил не больше 22 кОм

maksim
Offline
Зарегистрирован: 12.02.2012

Номинал R3 взял со схемы из #52 сообщения. 22 маловато наверное будет, потому как если рассмотреть несколько схемок, нигде нет таких номиналов.

leshak
Offline
Зарегистрирован: 29.09.2011

Соори если не втему (или уже обсудили), попалось на глаза, возможно  пригодится

 AC Phase Control

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Возьму на вооружение PC814 - у него 2 светодиода внутри - не нужно выпрямлять. Но, в отличии от схемы #82 имеем прерывание каждый полупериод.

YuraSh
Offline
Зарегистрирован: 18.01.2013

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

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

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

Чет ребята мы все усложняем, куча вариантов это хорошо, но мне то все не хочется делать. #59 и #82 тепрь в моем рейтинге все спуталось (

YuraSh
Offline
Зарегистрирован: 18.01.2013

Выбирайте которая Вам по душе.

Хотя если

 

ТРИ МИРА пишет:

Привет ребята. Есть одна не приятная проблема, каксаемая симистора.Есть такое убеждения что они не стабильно работае, а вот альтернативы я что то не нашел. Не стабильность работы связано с так называемым залипанием или ложным сработыванием. Разумеется все это лезчится отключением питания и новым запуском системы.

то #59, там транзистор. Такой проблемы не должно быть.

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

YuraSh пишет:

Выбирайте которая Вам по душе.

Хотя если

 

ТРИ МИРА пишет:

Привет ребята. Есть одна не приятная проблема, каксаемая симистора.Есть такое убеждения что они не стабильно работае, а вот альтернативы я что то не нашел. Не стабильность работы связано с так называемым залипанием или ложным сработыванием. Разумеется все это лезчится отключением питания и новым запуском системы.

то #59, там транзистор. Такой проблемы не должно быть.

Так то оно так, но там имелось в виду простая процедура отключения и включения, а данном случает регулировка. Теперь вопрос, распространяется ли этот глюк на регулировке.

 

 

 

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

вот еще что откапал, http://arduino.cc/forum/index.php/topic,18313.0.html , что на это скажете ребята )

YuraSh
Offline
Зарегистрирован: 18.01.2013

Это, как я понимаю, для двигателя постоянного тока, а у Вас (и у меня) асинхронник.

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

че это постояннного то, он на 220в переменки, асинхронный с расщепленными полюсами

 

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

ТРИ МИРА пишет:

вот еще что откапал, http://arduino.cc/forum/index.php/topic,18313.0.html , что на это скажете ребята )

Это для постоянного тока. Или для выпрямленного. Соответсвует схеме #51 (в приложении для переменного). Но управление в начале фазы лучше - гораздо меньше греется силовой элемент.

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

AlexFisher пишет:

ТРИ МИРА пишет:

вот еще что откапал, http://arduino.cc/forum/index.php/topic,18313.0.html , что на это скажете ребята )

Это для постоянного тока. Или для выпрямленного. Соответсвует схеме #51 (в приложении для переменного). Но управление в начале фазы лучше - гораздо меньше греется силовой элемент.

Блин что то я запутался, какую схему мне для моего вентилятора использовать, раз он на переменке 220в

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Рекомендую нижнюю схему из поста #84

Amadey
Offline
Зарегистрирован: 03.02.2013

А чем схема из  #51 не устраивет?  На мой взгляд плюсов масса:

1. Самая простая. Дополнительный 9В. адаптер лишний - ведь в других схемах оптрон управляет симистром, что мешает ему управлять транзистором? (Разумеется сам оптрон должен быть транзисторным.) Только номиналы R2 и R3 подобрать. 

2. Программная реализация элементарная. Чистый ШИМ. Ни таймеров, ни прерываний. Зачем занимать лишние выходы и дополнительно подгружать микроконтроллер?

3. Транзистор будет работать в ключевом режиме, значит грется почти не должен. 

4. Если я правильно понял то частота ШИМ в arduino почти 500 Гц. значит ни каких биений, пульсаций и т.д. даже у лампочки не будет наблюдаться, тем более у двигателя. 

 

YuraSh
Offline
Зарегистрирован: 18.01.2013

С коллекторным да, все просто. Асинхроннику нужно 50Гц, (или меньше, для снижения мощности). Просто регулируя напряжение изменить частоту оборотов (мощность) асинхронника неполучится.

maksim
Offline
Зарегистрирован: 12.02.2012

Amadey пишет:
4. Если я правильно понял то частота ШИМ в arduino почти 500 Гц. значит ни каких биений, пульсаций и т.д. даже у лампочки не будет наблюдаться, тем более у двигателя. 
Частота около 490 Гц. Это с чего это у лампочки не будет? Еще как будет. Вы думаете просто так заморачиваются с обратной связью...