Регулятор мощности для тэна на ардуино своими руками

Добавил пользователь Владимир З.
Обновлено: 04.10.2024

Очень часто в робототехнике возникает необходимость плавно управлять каким-то процессом, будь то яркость светодиода, мощность обогревателя или скорость вращения моторчика. Вполне очевидно, что управление напрямую связано с изменением напряжения на потребителе: и светодиод будет по-другому светить, и моторчик крутиться с другой скоростью. Но проблема в том, что управлять напряжением может только такая штука, как ЦАП – цифро-аналоговый преобразователь, а в нашем микроконтроллере встроенного ЦАПа нет, у нас есть только цифровой сигнал, т.е. либо вкл, либо выкл:

Можно ли добиться плавного управления цифровым сигналом? Оказывается можно! Представьте себе вентилятор, вращающийся на полной мощности, напряжение постоянно. Представим теперь, что секунду напряжение подаётся, и секунду – нет, и так продолжается “по кругу”. Вентилятор начнёт крутиться в два раза медленнее. Можно теперь включать напряжение на 0.5 секунды, а на остальные 1.5 секунды – выключать. Вентилятор будет крутиться со скоростью 25% от максимальной. Мы с вами смогли представить так называемый ШИМ сигнал, широтно-импульсную модуляцию.

На платах UNO/Nano/Pro Mini у нас есть три таймера-счётчика, у каждого таймера есть по два выхода на пины МК, то есть у нас есть 2*3=6 пинов, способных генерировать ШИМ сигнал. Для генерации ШИМ у нас есть готовая функция

analogWrite ( pin, duty )

Пару слов о “стандартном” ШИМ сигнале – мы получаем его с такими настройками, какие нам даёт библиотека Arduino.h, а настройки эти сильно занижены по сравнению с возможностями Arduino. Про “улучшение” ШИМ мы поговорим поже, а сейчас давайте глянем на характеристики ШИМ “из коробки”:

ТаймерПиныЧастотаРазрешение Timer 0D5 и D6 976 Гц8 бит (0-255)Timer 1D9 и D10 488 Гц8 бит (0-255)Timer 2D3 и D11 488 Гц8 бит (0-255)

Это весьма плачевные цифры, особенно по частоте. Все таймеры приведены под одну гребёнку, чтобы пользователь не думал не гадал и лишнюю документацию не изучал. К изменению частоты и разрядности ШИМ мы вернёмся !

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

Твердотельное реле на схеме это SSD-40A. Выход с него Heater это фаза ноль идёт на прямую из розетки тут нужно правильно подключить автоматику зная где фаза а где ноль. Вот с выхода SDD вам и нужно подключить ваше устройство.

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

Вам надо взять твердотельное реле SSD-40A. На плюс – красный проводок, что у вас идет от разъема питания, на минус черный. А контакты 220В реле идут в разрыв одной из жил 220В кабеля от розетки к ТЭНу. Все! Разумеется реле прикрутите к радиатору, на 3 кВт оно неслабо греется. Любой технологический проект проходит фазу запуска и развития. На первых порах, действительно требуется чуть больший энтузиазм в освоении железки, т.к. банально не хватает времени на написание детальных инструкций по всем ситуациям. Если у Вас негативный опыт, то Вы можете вернуть устройство в магазин. Проблем с этим нет.

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

Сделайте фото чтобы было видно о чем вы говорите. Я собирал автоматику сам у всех разные провода. И смотрите схему.

Как по мне, так управлять тэном лучше всего через стабилизатор напряжения. Почему? Да потому что тогда мощность на тэне не зависит от перепадов напряжения в сети. А перепады в сети часто достигают аж до 10% от номинала, а иногда и больше. Соответственно и мощность на тэне будет значительно меняться. Поэтому вот такой вот стабилизатор прекрасно справляется с регулировкой мощности на тэне.

Вложения:

Про красный и черный проводки понятно, а белый куда?

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

Твердотельное реле на схеме это SSD-40A. Выход с него Heater это фаза ноль идёт на прямую из розетки тут нужно правильно подключить автоматику зная где фаза а где ноль. Вот с выхода SDD вам и нужно подключить ваше устройство.

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

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


Для наших целей понадобится один аналоговый вход - А0, который используем для подключения переменного резистора, а также один выход ШИМ - возьмём 11. Соберём простую схему :


И напишем простую программу для управления яркостью светодиода , подключённого к 11 выходу ШИМ. Регулировать будем переменным резистором, который подключен к аналоговому входу А0.



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


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

Далее по плану использовать обратную связь от таходатчика коллекторного двигателя для поддержания стабильных оборотов, а также увеличить частоту ШИМ.


и подал это сигнал на аналоговый вход А1. Для защиты входа Ардуино от перенапряжения поставил ещё стабилитрон на 5.1 вольт. Получилась такая схема


Для написания программы управления оборотами коллекторного двигателя использовал библиотеку PID - регулятора для Arduino.


// подключаем библиотеку PID-регулирования

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



169 комментариев:

Здравствуйте вы случайно неделание регулятора и управления бесколекторный двигателем от стиральной машины лж рабочее напряжение от 0 до 100 вольт постоянного тока ампераж сказать не могу

Я такими пока не занимался, возможно там какое-то подобие частотного привода

Александр, прокомментируй, пожалуйста что происходит в void loop

Александр, я написал кое-какие пояснения в скетче, хотя я не большой специалист в программировании. Делал программу больше по аналогии и по интуиции. А что конкретно непонятно в этом скетче?
Вообще на первый взгляд ПИД-регулятор - это просто, но вся проблема заключена в этих коэффициентах Kp, Ki, Kd а также в их подборе для каждого конкретного случая.

Спасибо. Да, вот смотрю на вашу программу и вижу что просто. До этого читал, не понял толком ничего. Размазывают, растягивают, а что куда подставлять не понятно. Позже посмотрю ваши пояснения - спрошу ещё.

Доброго всем времени.
Вопрос к автору и повторившим, есть ли разница между регулятором на Ардуино и ТДА1085. в работе на динамическую нагрузку например болгарка.

На сегодня всё проверено на TDA1085, а Arduino (как и другие контроллеры) будет работать не хуже и позволит реализовать гораздо больше возможностей в будущем.

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

можете выложить саму библиотеку PID_v1.h

Почему нет защиты, ведь не сложно реализовать.

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

Великолепное по простоте решение! Особенно в программной части :). Есть два маленьких недостатка. Во-первых при такой обратной связи реальные обороты двигателя не определить, т.к. все импульсы таходатчика сглаживаются. Но это излечимо, если снимать с датчика не выпрямленное напряжение, а считать частоту импульсов. И во вторых, силовая часть будет малость по-дороже, чем в случае управления переменным током через симистор. Но зато как всё просто!

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

Я очень извиняюсь, но с нетерпением жду регулятор с тахометром. Когда можно, примегно ждать. Еще раз извините, но сам я не могу ничего написать.Очень жду.

Буду работать над этим вопросом, но точно не могу сказать - это зависит очень от многих причин.

У меня вопрос, что это за транзистор VT2 S8580?

Вы правы - опечатка - это S8550

Здравствуйте. Хочу повторить эту схему. С ардуино уже знаком (часы,барометр собирал, светодиодиком моргал :)) , надеюсь получится. Вопрос по диоду RHRP3060. Его функции? Он скоростной,мощный (30А) , нужен именно такой или чем то можно заменить ?
И спасибо за проделанную работу.

Это защитный диод для работы с индуктивной нагрузкой, он должен быть быстродействующий - зависит от частоты ШИМ. Должен перекрывать рабочие напряжение и ток. Насчёт быстродействия - я подбирал по нагреву - сначала поставил по-моему FR1007 на 10 ампер 1000 вольт - на малой частоте ШИМ не нагревался - как только я увеличил частоту до 10-20 кГц - стал сильно греться. Тогда поставил RHPR3060 - стала нормальная температура . То есть главный параметр - это быстродействие.

Увы, по быстрому повторить не получится. Как я понимаю, логичное продолжение проекта это драйвер hcpl 3120 и транзистор Fga25n120 ? Так в наших радиоларьках запросили 3$ за драйвер и 11$ (!) за транзистор, про диод уже и спрашивать не стал. Всё заказал на eBay, (к примеру: 10 драйверов всего 2.45 и 5 транзистров за 4$ ). Придётся ждать.

Знакомая история, я почти всё так заказываю.

Может, пока подскажете, что заранее заказать для новой версии с тахометром.

Дисплей будет LCD1602, а для обработки сигнала таходатчика компаратор LM393

Спасибо, буду готовиться.

Доброго дня, хочеться повторить Вашу схему. Подскажите программа для ардуино в свободном доступе, ткните где/как скачать. И еще вопрос, она программа, совместима с ардуино мини?
Извините за ламерские вопросы)) учусь.
Спасибо.

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

Этот комментарий был удален автором.

александр подскажите наименование стабилитронов vd2, vd4, vd8 и диодный мост на входе тахо?

1N4742A и 1N4733A подойдут?
а вот диодный мост какой?

Подойдут любые 0.5 или 1 Вт, 1N4742A и 1N4733A тоже подойдут.
Диодный мост абсолютно любой, напряжение до 50 вольт, ток небольшой.

и мощность резисторов хотелось бы узнать )
а еще скажите почему с5 на 400 вольт?

Амплитуда у синусоиды питающей - 310 вольт ( 220 вольт это действующее значение)
R12 у меня 2 Вт, R11 - два 5-ватных сопротивления по 20 Ком. Остальные 0.25 Вт.

А разве R10 не на 3 ватта?

Да, R10 стоит на 3 ватта

а где на схеме с5? я не нахожу

Транзистор FGA25N120ANTD с диодом внутри между эмиттером и коллектором .нужен ли тогда диод VD5 ?

Диод нужен, он ставится параллельно индуктивной нагрузке и в обратной полярности.

А параметры схемы которая идет с таходатчика у вас подобраны таким образом, что когда вы потенциометром устанавливаете, допустим, 2.5 В, у вас двигатель раскручивается до таких оборотов, что с таходатчика приходит 2.5 Вольта, или это необязательно, главное чтобы просто было меньше 5?

Просто непонятно, как работает регулятор, он должен сравнивать входной сигнал с потенциометра и с датчика или нет?

Подстроечник R3 устанавливается так, чтобы на максимальных оборотах на вход Ардуино поступало 5 вольт. Тогда получается диапазон 0 - 5 вольт.

Совершенно верно, сравнивает два сигнала - с потенциометра и с таходатчика

А на последнем рисунке с кодом, это весь программный код, или ещё что-то есть?
просто попробовал сейчас его загрузить, у меня на выходе стабильно 0 почему-то.
Как при разных сигнлах на А1 и А0 так и при одинаковых

Наверно у вас нет этой библиотеки PID_v1.h - загрузить надо.

А помните, в первоначальном коде вы задавали уменьшение выходной переменной в 4 раза, в это случае нужно ли так делать? просто на выходе то изначально предел сигнала 1024

Разобрался, это почему-то некорректно отображался именно сам светодиод, когда подключил к двигателю всё заработало)

А ещё, последний вопрос. Почему у вас в строке
PID myPID(&pwmSpeed, &pwmOut, &pwmSet, 0.2, 0.5, 0, DIRECT);
задан параметр DIRECT? Директ это ведь прямое рягулирование, и уменьшение сигнала входного сигнала приводит к уменьшению сигнала на выходе? Там разве не нужно было написать Reverse?

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

Здраствуйте помогите в написании скетча для ардуино уно управление двигателем постоянного тока с реверсом поддержанием момента и торможением?

Я больше по аппаратной части, программы у меня очень упрощённые получаются - не программист я. Мне бы самому помощь в программировании не помешала бы.

Это совсем другая тема. Нужно для управления двигателем постоянного тока да еще и с реверсом разрабатывать источник с параметрами выхода от минус напряжения питания двигателя до плюс питания. А для определения параметров вращения одного напряжения будет маловато. Надо вводить обратную связь на тахометре

Все собрал, движок 750 Вт (Ручной фрезер), сгорает выходной транзистор, видать пусковой ток очень большой (сопротивление обмоток на холостую 10-12 Ом). Есть мысли как ограничить пусковой ток (аппаратно или программно)? Частоту увеличил до 4 кГц, датчик тахометра поставил цифровой. Кому интересно скетч выложу.

Да, интересно. Делаю для 1.2 квт фрезера.

Здравствуйте, Александр. Собрал я электропривод к инвалидной коляске на двигателе с "индезита" 370 Вт. Питание 75-80 В (6 аккумуляторов ИБП 12В). Управлял китайским ШИМ регулятором 0-90 В, За месяц два сгорело. Хочу сделать ШИМ на ардуинке, силовую часть на FGA25N120ANTD. Пробовали ли Вы для управления использовать драйвер hcpl 3120?

Пока сделал пробный регулятор на NE555 с гальвнической развязкой от 220 вольт и с драйвером TLP250. Он похож на HCPL3120. Также аппаратную защиту по току сделал. На компараторе.

Подскажи пожалуйста какая площадь радиаторов и как сильно греется ? у меня нагрузка примерно 500 вт.

Да, планирую и делаю сейчас, но всё очень медленно получается.

Здравствуйте! Я так понимаю для тэна эта схема тоже подойдет? Можно ли использовать сторонний источник +12В? Нужно ли как-то программно ограничивать шим(ведь после моста у нас будет 310В)? Для чего резистор R10 0,1 Ом между истоком и землей? Обязательно ли использовать диод D8, если нагрузка чисто активная?
Заранее благодарю за ответы.

Защита по току будет сделана на следующем этапе, будет аппаратная защита и ещё датчик тока.

Спасибо. Буду пробовать. А как подобрать R10? У меня нагрузка тэн на 130 Вт. Присмотрел мосфет STP4NK60ZFP(N-ch Vds=600V Id25=4A Rds=2Ohm), думаю должно хватить, как и моста на 2А 1000В.

Спасибо. Теперь понятно по R10. Тут чем меньше, тем лучше. Тем более, что сигнал усиливается операционником. Мост и мосфет подберу чуть мощнее.

Здравствуйте, у вас на схеме две земли или одна? Не могу просто понять все собрал по схеме и не работает??

Т.е одна общая или две отдельные?

Ксть кто онлайн люди помогите! Очень нужна эта схема но вот не могу понять что за две земли!

Этот комментарий был удален автором.

Да,землю ардуино и землю силовой части следует связать.

Схему исправил , должно быть понятно - две земли и они развязаны.

Т.е земля диодного моста и земля ардуины должна быть связана?

Нет, земли разные. Оптрон PC817 именно для такой развязки стоит.

А как быть если ц меня ардуина и драйвер мосфета питаются от компьютерного БП АТХ? В нем же земля общая

Спасибо 12в на транзистоах появились:) Но вопрос еще а как igbt транзистор подключать? На хеме стоит полевой мосфет

Смотрел, но как подключать так и не понял

У igbt транзистора коллектор и эмиттер. А на схеме полевой у него сток исток? У меня тоже fga25n120!

Люди, выручайте! Все равно не работает монтаж правильный соплей между дорожками нет

Автор! Помогите с подключением транзистора

Схема не работает почему то

Светодиод меняет яркость? Когда крутите переменный резистор.

но на выходе 0.2 вольта

Какую нагрузку подключаете - мотор? Вместо нагрузки можно подключить лампочку на время запуска.

Также можно все испытания проводить на небольшом напряжении вмечто 220 вольт.

отлично! заработало всем спасибо ОГРОМНОЕ за помощь!! Автор на самом деле модчина схема проста до безобразия если в ней разобраться а так вполне рабочая

Вопрос еще а можно ли как то ограничить выходное напряжение до 110вольт?

Мне управлять не с ардуино а с match3 чпу шпиндель 500ватт 110вольт постоянка

Тогда только трансформатор 220/110 и подавать на силовой мост, а для 12В(драйвера) брать мост послабее и запитывать от 220В.

В поставляемом бп к шпинделю 100 вольт постоянного формируется из переменного 220 также ШИМом(Мой сгорел хотел востановить но не получилось).Собрал вашу схему на FGA25N120ANTD + конденсатор из бп(в оригинале он был после моста) шпинбель работает но при хорошой нагрузке напряжение проседает обароты падают.Прикрутить бы отслеживание по напряжению.

И при этом оставить регулировку шим сигналом 0-110вольт

И при этом оставить регулировку шим сигналом 0-110вольт

Приветствую! Собрал ШИМ-регулятор по Вашей схеме. Работает отменно! Двигатель подобный Вашему, либо такой-же, но вот импульсный таходатчик из двигателя я извлек, поскольку долго воевал с корректным отображением оборотов на LCD 1602, а Вашу схему обработки сигнала таходатчика, я тогда не видел. Сейчас установлен оптический, инфракрасный датчик, и одна метка на валу, то есть один оборот - один импульс, так отображение максимально корректно, в виду высокой оборотистости двигателя. Еще вывод ШИМ у меня на пятом контакте, на нем удвоенная частота ШИМ.
Поскольку мои навыки написания скетчей, скажем так, не велики, столкнулся с проблемой - Ваш скетч ПИД алгоритма, у меня работает не корректно, а точнее я могу только увеличивать обороты, а вот с уменьшением - помогает лишь полная остановка двигателя через ресет ардуино. Подозреваю дело в количестве импульсов на оборот? Что нужно изменить/дописать в Вашем скетче?
Спасибо!

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

Потенциометр новый, десятиоборотный. В моем скетче ШИМ-регулятора, на LCD выводятся показания потенциометра в процентах, от значения 0.00, до 100.00, и есть подтягивающий резистор на 10k, подключенный на gnd и A0. Показания потенциометра отличные, дребезга нет и все работает, а вот ПИД-алгоритм ни в какую.

А зачем вам подтягивающий резистор? В схеме я его не вижу.

Решил немного обезопаситься. Если потенциометр будет дребезжать, будет обрыв, возможны броски, а это чревато выходом из строя силового мосфета. В моем случае это IGBT. Два уже спалил, один по невнимательности, а другой только что, пробуя разные скетчи с ПИД-алгоритмами.

Скорее всего, эта подтяжка и не даёт снизить скорость до минимума, задавая минимальное начальное смещение.

Потенциометр тоже 10k, так что никакого влияния, кроме защиты от обрыва и дребезга, подтяжка не имеет. В моем скетче ШИМ, с отображением на LCD оборотов и значения с потенциометра в процентах, обороты регулируются идеально, от от нуля, двигатель остановлен, до ста процентов где двигатель выходит на максимальные обороты. Еще у меня внешнее питание на ардуино и вольтаж на ардуино 4.97 в., так что проблем из за недостаточного питания тоже нет.

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

//ШИМ.
int pwmPin = 11; // Выход ШИМ (Пятый пин ардуино - удвоеная частота ШИМ).
int analogPin = 0; // Потенциометр.

//Проценты ШИМ.
int Value=0; // Переменная для хранения значения.
float Value_percent=0;

//Обороты.
int valrpm = 0; // Переменная для хранения значения.
void rpm() valrpm++;
>
LiquidCrystal_I2C lcd(0x3f, 16, 2);

//ШИМ.
pinMode(pwmPin, OUTPUT); // Установка порта на выход ШИМ.

//Обороты.
attachInterrupt(0, rpm, CHANGE);

Serial.begin(9600);
lcd.init();
lcd.backlight();
>

void loop()
//ШИМ.
Value = analogRead(analogPin); // Считывается напряжение с потенциометра - значения от 0 до 1023.
analogWrite(pwmPin, Value / 4); // analogRead-значение от 0 до 1023, analogWrite в диапазоне от 0 да 255.

//Обороты.
valrpm = 0; // сбрасываем счетчик и ждем.
lcd.setCursor(0, 0);
lcd.print("RPM: ");

delay(250); // так как прерывание CHANGE, срабатывает два раза (delay 500), то и считываем каждые пол секунды.

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

Теоретическая часть и схема

На рисунке показана синусоидальная волна сети с частотой 50 Гц. Для построения диммера важны точки пересечения нуля (точки, где волна меняет свою полярность). Чтобы зафиксировать эти точки, надо использовать детектор пересечения нуля.


Рисунок 1. Сетевая синусоида (зеленые стрелки показывают точки пересечения нуля)

На рисунке далее приведена принципиальная схема всего регулятора мощности переменного тока.


Рисунок 2. Принципиальная схема цифрового диммера переменного тока

Элементы R1, R2, IC1, D1 и C3 создают схему детектора пересечения нуля. Он предназначен для обеспечения надлежащей оптоизоляции сетевого напряжения. Таким образом получаем сигнал, который можно безопасно подключить к входам и выходам Arduino. Далее показан выходной сигнал детектора пересечения нуля (вывод 4 микросхемы IC1). Согласно спецификации TLP521-1 это микросхема состоящая из фототранзистора, оптически связанного с инфракрасным излучающим диодом на основе арсенида галлия. Конечно, можно использовать и другие аналогичные оптопары.


Рисунок 3. Выходной сигнал цепи детектора пересечения нуля

Итак, тут будем использовать импульс пересечения нуля в качестве триггера для главной цепи управления. Это легче понять, просмотрев код Arduino и выходную волну. Радиоэлемент IC3 - тиристор BT138. Нагрузка включена последовательно с тиристором и линией переменного тока, поэтому он определяет количество энергии, которое должно быть подано на нагрузку.

Внимание: монтажное основание BT138, что используется для крепления радиатора, подключено к контакту 2. Вы не должны касаться радиатора или прикручивать его к металлическому корпусу!

Радиодетали R4, R5 и C2 реализуют схему демпфирования для IC2, а C1 и R7 создают схему демпфирования для IC3. Эти детали помогают устройству быть совместимым с различными типами нагрузок, такими как индуктивные. Оптрон IC2 является компонентом обеспечивающим надлежащую гальваническую развязку между цифровой стороной и линией переменного тока 220 В. Выбранный тип - MOC3021. Также можете использовать другие аналогичные, но будьте осторожны, чтобы не использовать детали со встроенным детектором пересечения нуля. Они полезны для переключения нагрузок переменного тока (ВКЛ / ВЫКЛ), а не для диммирования.

Разработка печатной платы

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


Рисунок 5. Расположение деталей печатной платы диммера переменного тока

Все компоненты обычные по размеру. Поэтому будет легко паять и использовать схему в качестве готового модуля. R2, R4, R5 и R7 - резисторы мощностью 1 Вт. Резистор R1 и R6 0,25 Вт. C1 и C2 могут быть выбраны типа MKT или полиэстер, но убедитесь что они имеют номинальное напряжение не менее 400 В. Конденсаторы с номинальным напряжением 250 В тоже в принципе можно брать, но 400 В - это разумный выбор при подстраховке для напряжений конденсаторов. K1 - разъем MKDSN. P1 - традиционный 4-контактный штекерный разъем.

Сборка схемы регулятора

На рисунке показан опытный образец печатной платы. Схема PCB и файл Gerber прилагаются в архиве. Установленный радиатор подходит для тестов. Для долгосрочного использования надо использовать больший по размеру радиатор. Расположение IC3 около границы печатной платы значительно облегчает задачу установки любого радиатора.


Рисунок 6. Первый прототип схемы управления

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

  1. const byte ZCP = 2;
  2. const unsigned int dim = 5000;
  3. void setup()
  4. pinMode(ZCP, INPUT);
  5. pinMode(10, OUTPUT);
  6. digitalWrite(10, LOW);
  7. >
  8. void loop()
  9. if (digitalRead(ZCP) == HIGH)
  10. Zero_Cross();
  11. >
  12. void Zero_Cross()
  13. digitalWrite(10, LOW);
  14. delayMicroseconds(dim);
  15. digitalWrite(10, HIGH);
  16. >

Нет необходимости писать более сложный код для тестирования диммера - этот итак будет работать хорошо. Существует два метода отслеживания импульсов детектора пересечения нуля: опрос и прерывание. В первом варианте было с помощью прерывания, но в некоторых ситуациях сталкивались с мерцанием нагрузки. Мерцание - раздражающая ситуация, которая случается с некоторыми диммерами. Причина в неправильном выборе времени. Как уже упоминалось ранее, точки пересечения нуля очень важны и любой случайный сдвиг времени приведет к нестабильности. Поэтому переключили на метод опроса (строки с 8 по 11).

Практические испытания


Рисунок 7. Проверка нагрузки и необходимых соединений

На рисунке показана форма выходного сигнала (50%). Вы можете усовершенствовать код и добавить две кнопки для увеличения и уменьшения выходной мощности.


Рисунок 8. Форма выходного сигнала в 50% мощности (dim = 5000)

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

Форум по обсуждению материала ДИММЕР ПЕРЕМЕННОГО ТОКА НА АРДУИНО


Что такое OLED, MiniLED и MicroLED телевизоры - краткий обзор и сравнение технологий.


Микрофоны MEMS - новое качество в записи звука. Подробное описание технологии.


Про использование технологии беспроводного питания различных устройств.


Приводятся основные сведения о планарных предохранителях, включая их технические характеристики и применение.

Читайте также: