Фазный регулятор мощности на ардуино. Световой диммер управляемый Arduino

03.05.2021

Содержание видео: (при нажатии на строчку видео откроется в нужном месте.)

Мы можем приступать к установке прошивок, которые будут поддерживать заданные обороты. Но сначала давайте остановимся на вопросе датчика Холла.

Заменить тахогенератор на датчик Холла совсем не сложно. Я подробно рассказываю об этом в видео на 5:48. Но какой, же поставить? Нам необходим цифровой датчик Холла, желательно биполярный. Так как он будет выдавать в 2 раза больше сигналов. А это очень важно для малых оборотов. Вот такой стоит в моём двигателе SS 441 .

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

Разместив такой датчик возле магнита, который находится на валу двигателя, ардуино будет получать информацию об оборотах нашего двигателя. Залив в микроконтроллер прошивку №4, считаем сколько импульсов даёт датчик на 10 оборотов вала двигателя или станка. Это число нам понадобится в дальнейшем.

А вот уже теперь мы можем приступать к установке прошивок. В папке их находится 3. «PID_12», «_16», «_18».

Рассмотрим PID_12:

В самом начале скетча у нас имеются строки, в которые мы должны внести нужные нам значения:

int obMax = 6000; //ввести максимальные обороты

float kImp = 120; //ввести кол-во импульсов на 10 оборотов

В первой строке мы вводим число максимальных оборотов, которые нам необходимы. Во второй - минимальные. В третью строку ставим число импульсов нашего датчика за 10 оборотов вала. В четвёртой строке нужно ввести число, которое будет ограничивать ток минимальных оборотов. Оно будет зависеть от количества минимальных оборотов и прилагаемых нагрузок. И в пятой – число, при котором двигатель начинает вращение на прошивке №6 (мы с вами обращали на это внимание).

PID myPID(&Input, &Output, &Setpoint, 0.01 , 0.2 , 0 , DIRECT);

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

Рассмотрим _16:

Основные переменные скетча те же, что и в ПИД регуляторе:

int obMin = 200; //ввести минимальные обороты

int minzn = 115; // минимальное значение симмистора на котором начинается вращение.

int ogrmin = 70 ; // ограничение симистора на минимальных оборотах.

int mindimming = 80; //значение симистора при закллинившем станке (первоначальный импульс)

И устанавливаются они так-же. Но добавилось 2 значения. Это значение симистора при заклинившем станке (первоначальный импульс) Оно подбирается так. На прошивке №6 даём на вал небольшую нагрузку, минимальную, лишь бы вал был не в холостую. И начинаем вращать регулятор. Необходимо заметить число, при котором вал начнёт вращаться. Это значение нам необходимо чтоб придать первоначальный импульс нашему станку. Число весьма условно и позволяет некоторые допуски. И основная переменная которая потребует настройки и подбора это допуск оборотов в минус и плюс . Она означает в каких пределах обороты нашего двигателя будут стабилизироваться. Находим минимальное значение, при котором двигатель будет вращаться без рывков и в холостую, и под нагрузкой на разных оборотах. Данная прошивка уже обеспечивает хорошую стабилизацию оборотов в заданных пределах и возможно этого уже будет достаточно. Если же необходима точная стабилизация оборотов, то переходим к следующей пошивке.

Рассмотрим _18:

Все значения переносим из предыдущей прошивки:

int obMin = 200; //ввести минимальные обороты

int obMax = 9000; //ввести максимальные обороты

int kImp = 120; //ввести кол-во импульсов на 10 оборотов

int minzn = 115; // минимальное значение симмистора на котором начинается вращение.

int ogrmin = 70 ; // ограничение симистора на минимальных оборотах.

int mindimming = 80; //значение симистора при заклинившем станке (первоначальный импульс)

int dopusk = 200 ; //допуск оборотов в минус и плюс

int razgon = 50; //переменная разгона 1 - 100

Добавилось только значение разгона, или плавности. При значении 1 стабилизация происходит плавно, при увеличении значения разгон более жесткий. Верхняя граница очень большая, но после 100 (в моём случае) уже изменений нет.

Параллельная разработка: http://www.motor-r.i...og-page_19.html

Вариант регулятора на чипмейкере:

Много вопросов по деталям, где заказать. Заказал комплект себе, делюсь с вами.

И заказал блок релюшек для реверса и защиты. Будем дополнять.

Исходя из ваших вопросов, статья будет дополняться. Так что спрашиваем.

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

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

Для этого нам необходимо временно припаять переменное сопротивление на 10 кОм центральным контактом на контакт А3, нашей ардуинки. Крайние контакты сопротивления, как и всегда, припаиваем на + и -.

Теперь после заливки прошивки nastroyka_dopuska , в которую мы предварительно внесём все переменные, касающиеся нашего станка или двигателя. Основными будут минимальные и максимальные обороты, которые нужны на станке, а так же количество импульсов на 10 оборотов шпинделя.

Подбираем допуск, так как показано в видео. После этого можем вносить полученные данные в прошивку 18 и пользоваться. В этой прошивке улучшено отображение на дисплее. Так как вы и просили.

Следующей проблемой у нас было то, что на определённых оборотах двигателя происходили «рывки». Чтобы понять причину, была сделана прошивка, которая отсылала в компьютер значение переменной tic. Это количество тактов которое проходит между сигналами с датчика Холла. Данные отображались в программе SerialPortPlotter в графическом виде.

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

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

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

На контакты GND подаём минус, VCC подаём плюс 5вольт, IN3 и IN4 подключаем к контакту А1 ардуинки, это для реверса, а IN2 к контакту А2. Этот контакт и будет отвечать за отключение силовой платы. Заливаем прошивку proverka_rele , и наши релюшки должны поочерёдно включаться на 1 сек и выключаться. Две спаренные и одна отдельно. Если всё работает верно, то можно провод который идёт к силовой плате пускать через это одинарное реле, заливать прошивку roos_zashita_1 и пользоваться регулятором. Здесь устранены рывки и реализована защита.

Так же мы можем сразу установить и подключить тумблер для реверса на 3 положения и тумблер который будет делить наш диапазон скорости так, как мы захотим. Для своего станочка я сделал первую скорость для точения, от 100об\мин до 2000об\мин, а вторую для шлифовки от 1500об\мин до 5000об\мин. Подключаем их по такой схеме:

Для проверки заливаем скетч proverka_tumblerov и при смене положения тумблеров, будут меняться числа на экране. Если изменения происходят, то можно заливать прошивку roos_zashita_2skorosti и пользоваться.

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

2. Реверс торможение - реле реверса на А1 Тумблер реверса на А7

Скетч: https://drive.google...iew?usp=sharing

2а. В переменных можно менять торможение

Варианты печаток

Печатка ----- без реле https://wdfiles.ru/drgO

Печатка----- с 1 реле защиты https://wdfiles.ru/dr2l

Печатка ---- с двумя реле для реверса и торможения https://wdfiles.ru/dr8k

Печатка ---- с СМД компонентами и импульсным блоком питания для корпуса D6MG https://drive.google...T0JOd2pFZjI3SmM

Для релюшек 12в перемычку перекинуть на метку 12

Для релюшек 5в уже стоит на метке 5

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

Для плат с ULN2003 диоды на реле не нужны.

Список деталей меняется в зависимости от выбранной вами печатки.

резистор 10к 0.25W-2шт

резистор 4.7к 0,25W-1шт

резистор 2к 0,25W-1шт

резистор 470 0,25W-1шт

резистор 100 2W-1шт

резистор 360 0.25w-2шт

резистор 5к 0.25W-1шт (кнопка реверс)

подстроечный резистор 10к-1шт (для LCD дисплея)

переменный резистор 10к-1шт (крутилка оборотов)

подстроечный резистор 10к (на ногу А3)

диод RL205 1шт

конденсатор 100n 600V-1шт С4

конденсатор 0.05мф -1шт С3

симистор BTA24-600 (BTA16-600) На радиаторе

PC817C-1шт

MOC3021-1шт (MOC3023)

L7805CV-1шт

диодный мост что б такой как на плате GBL04-E3/51 (KBL04), Диодный мост 4А 400В

клеммники на плату - двойных - 7шт,

реле JS1-12V 2шт можно 5в

электролитические конденсаторы 100 мкф *25в -2шт (С1 и С2)

микросхема ULN2003A - 1шт

трансформатор - какой найдешь (1,5-3Вт)

переключатель трех позиционный - 1шт

панелька для Ардуинки -1шт

Есть на плате, нет в списке

резистор на схеме под ардуинкой - 10k (он со стороны дорожек или без разницы?) На плате со стороны проводников но можно поставить и сверху. И он нужен для тех кто будет делить диапазон регулировки оборотов на два поддиапазона.

Ардуиноуправляемая энергия!

Внимание!

Есть в наличии

Купить оптом

Вы любите программировать микроконтроллеры!? Теперь вы легко можете решать задачи управления мощностью в сети 220В переменного тока. Мы сделали регулятор мощности, который легко подключить к микроконтроллеру, например, плате Ардуино (Arduino). Просто соедините ШИМ-выход микроконтроллера с нашим регулятором мощности и программно управляйте электроприборами: плавно включайте электродвигатели, регулируйте температуру нагрева и многое другое.

Внимание!

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

Технические характеристики

Особенности

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

Принцип работы

Классический симисторный регулятор мощности с аналоговым входом управления, совместимым с ШИМ - выходами микроконтроллеров. Аналоговая часть модуля питается от вашей платы микроконтроллера (+Vcc). Допустимое напряжение питания +3,3...+5,0 В. При изменении сигнала на аналоговом входе регулятора от 0 до + Vcс мощность в нагрузке меняется от 0 до 100 %

Функции

  • управление мощностью нагрузки

Дополнительная информация

Обращаем ваше Внимание!

При эксплуатации модуля с нагрузкой более 3000 Вт необходимо усилить дорожки печатной платы, идущие к силовому элементу. Для этого необходимо напаять одножильный монтажный провод диаметром 1,5-2 мм от контактов клеммы НАГРУЗКА к контактам выводов СИЛОВОГО элемента.

Модуль рассчитан на работу с ШИМ сигналом частотой 300 Гц.

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



Замкните перемычкой контакты +VCC и "управление". При этом должна увеличиваться яркость свечения лампы.
Замкните перемычкой контакты GND и "управление". При этом должна уменьшиться яркость свечения лампы.

Схемы

Комплект поставки

  • модуль MP248 - 1 шт. шт.
  • Инструкция - 1 шт. шт.

Подготовка к эксплуатации

  • ВНИМАНИЕ! Перед включением соблюдайте меры безопасности при работе с высоким напряжением.
  • Снимите джампер.
  • Подключите лампу накаливания к модулю.
  • Подключите питание 5В для низковольтной части схемы.
  • Подключите питание 220В для высоковольтной части схемы.
  • Замкните перемычкой контакты +VCC и управление. При этом должна увеличиваться яркость свечения лампы.
  • Замкните перемычкой контакты GND и управление. При этом должна уменьшиться яркость свечения лампы.
  • При установленном джампере включается инверсия управления.
  • Проверка завершена, приятной эксплуатации.

Меры предосторожности

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

Техническое обслуживание

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

Вопросы и ответы

  • Добрый день! Я правильно понимаю, что управлевние мощностью возможно как с помощью ШИМ, так и аналоговым сигналом, при этом скважность выходного сигнала ШИМ на симистор будет соответствовать уровню аналогового сигнала в процентах от напряжения питания?
    • Этот модуль рассчитывался на работу с ШИМ Ардуино 300 Гц. С другими не пробовали. Но, в принципе, должно работать, потому что за основу берется аналоговый сигнал, а не длительность импульса и частота.
  • Добрый день! Можно ли данным устройством с Ардуино управлять оборотами э/двигателя постоянного тока 12В (вентилятор печки автомобиля)
    • Устройство предназначено для управления нагрузкой только в цепи переменного тока 220В.
  • В моем регуляторе без нагрузки 190 В, а под нагрузкой лампочка,еле светится спираль.
    • Проверьте наличие резистора R10 - 10кОм и электролитического конденсатора C5 - 100мкФх16В, по возможности установите их и проверьте работу устройства.
  • Добрый день. Приобрел у вас данный регулятор. Но почему то перемычка слева от входа управления не распаяна и отсутствует на входе конденсатор. И пока не перемкнул перемычку - регулятор на управление никак не реагировал. В инструкции про это - ни слова. Почему?
    • Вам необходимо установить C5 - 100мкФх16В, R10 - 10кОм Если такой возможности нет, сдавайте по месту приобретения на ее основании будет выполнен ремонт или замена на новый модуль..ru они подскажут ваши действия.
  • Добрый день. Можно ли данный регулятор использовать как и другие с переменным резистором? Или для управления всё же понадобится 5 в и перемычки(кнопки) на управляющий контакт?
    • Все верно, для использования в режиме диммера, потребуется внешнее питание 5В и кнопки.

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

Цель, которую я поставил это разработка контроллера для холодильника на элементе Пельтье.

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

  • Эта разработка многих заинтересовала, и мне посыпались письма с просьбами реализовать ее на Ардуино.
  • Разработка идеально подходит для изучения аппаратной и программной части цифровых регуляторов. К тому же она объединяет в себе множество задач, изученных в предыдущих уроках:
    • измерение аналоговых сигналов;
    • работа с кнопками;
    • подключение систем индикации;
    • измерение температуры;
    • работа с EEPROM;
    • связь с компьютером;
    • параллельные процессы;
    • и многое другое.

Разработку я буду вести последовательно, шаг за шагом, поясняя свои действия. Что в результате получится – не знаю. Надеюсь на полноценный рабочий проект контроллера холодильника.

У меня нет готового проекта. Уроки я буду писать по текущему состоянию, поэтому в ходе испытаний может выясниться, что на каком-то этапе я ошибся. Буду исправлять. Это лучше, чем я отлажу разработку и выдам готовые решения.

Отличия разработки от прототипа.

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

Т.е. данный вариант устройства должен питаться от стабилизированного источника питания с низким уровнем пульсаций (не более 5%). Этим требованиям отвечают все современные импульсные блоки питания.

А вариант питания от нестабилизированного блока питания (трансформатор, выпрямитель, емкостной фильтр) исключен. Быстродействие системы Ардуино не позволяет реализовать быстрый регулятор напряжения. Рекомендую прочитать о требованиях к питанию элемента Пельтье.

Разработка общей структуры устройства.

На этом этапе надо в общем виде понять:

  • из каких элементов состоит система;
  • на каком контроллере ее выполнить;
  • достаточно ли выводов и функциональных возможностей контроллера.

Я представляю контроллер “черным ящиком” или “мусорной ямой” и подключаю к нему все что надо. Потом смотрю, подходит ли для этих целей, например, плата Arduino UNO R3.

В моей интерпретации это выглядит так.

Я нарисовал прямоугольник – контроллер и все сигналы, необходимые для подключения элементов системы.

Я решил, что необходимо подключить к плате:

  • LCD индикатор (для отображения результатов и режимов);
  • 3 кнопки (для управления);
  • светодиод индикации ошибки;
  • ключ управления вентилятором (для включения вентилятора радиатора горячей стороны);
  • ключ импульсного стабилизатора (для регулировки мощности элемента Пельтье);
  • аналоговый вход измерения тока нагрузки;
  • аналоговый вход измерения напряжения нагрузки;
  • датчик температуры в камере (точный 1-wire датчик DS18B20);
  • датчик температуры радиатора (еще не решил, какой датчик, скорее тоже DS18B20);
  • сигналы связи с компьютером.

Всего получилось 18 сигналов. У платы Arduino UNO R3 или Arduino NANO 20 выводов. Осталось еще 2 вывода про запас. Может, захочется еще одну кнопку подключить, или светодиод, или датчик влажности, или вентилятор холодной стороны… Нам требуется 2 или 3 аналоговых входа, у платы – 6. Т.е. все нас устраивает.

Можно назначить номера выводов сразу, можно в ходе разработки. Я назначил сразу. Подключение происходит через разъемы, всегда можно изменить. Имейте в виду, что назначение выводов неокончательное.

Импульсные стабилизаторы.

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

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

Регулирующий элемент работает в линейном режиме. На нем выделяется “лишняя” мощность. При больших токах стабилизаторы такого типа сильно греются, имеют небольшой КПД. Типичным линейным стабилизатором напряжения является микросхема 7805.

Нам такой вариант не подходит. Будем делать импульсный (ключевой) стабилизатор.

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

А это диаграмма работы регулятора.

Транзистор VT работает в ключевом режиме, т.е. у него может быть только два состояния: открыт или закрыт. Устройство управления, в нашем случае микроконтроллер, коммутирует транзистор с определенной частотой и скважностью.

  • Когда транзистор открыт ток течет по цепи: источник питания, транзисторный ключ VT, дроссель L, нагрузка.
  • При разомкнутом ключе энергия, накопленная в дросселе, поступает в нагрузку. Ток течет по цепи: дроссель, диод VD, нагрузка.

Таким образом, постоянное напряжение на выходе регулятора зависит от соотношения времени открытого (tоткр) и закрытого ключа (tзакр), т.е. от скважности импульсов управления. Меняя скважность, микроконтроллер может менять напряжение на нагрузке. Конденсатор C сглаживает пульсации выходного напряжения.

Главное достоинство такого способа регулирования – высокий КПД. Транзистор всегда находится в открытом или закрытом состоянии. Поэтому на нем рассеивается небольшая мощность - всегда или напряжение на транзисторе близко к нулю, или ток равен 0.

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

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

  • При замкнутом ключе ток поступает в нагрузку по цепи: источник питания, дроссель L, ключ VT (путь тока показан красным цветом).
  • При разомкнутом ключе энергия, накопленная в дросселе возвращается в нагрузку через рекуперативный диод VD (путь тока показан синим цветом).

Практическая реализация ключевого регулятора.

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

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

Я, практически без изменений, взял схему регулятора из .

Схема импульсного регулятора для работы с платой Ардуино.

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

На транзисторах VT1 и VT2 собран драйвер ключевого MOSFET транзистора. Это просто усилитель по току, по напряжению он даже ослабляет сигнал примерно до 4,3 В. Поэтому ключевой транзистор обязательно должен быть низкопороговым. Есть разные варианты реализации драйверов MOSFET транзисторов. В том числе и с использованием интегральных драйверов. Этот вариант самый простой и дешевый.

Для измерения напряжения на нагрузке используется делитель R1, R2. При таких значениях сопротивлений резисторов и источнике опорного напряжения 1,1 В, диапазон измерения составляет 0 … 17,2 В. Цепь позволяет измерить напряжение на втором выводе нагрузки относительно общего провода. Напряжение на нагрузке мы вычислим, зная напряжение источника питания:

Uнагрузки = Uпитания – Uизмеренное.

Понятно, что точность измерения будет зависеть от стабильности поддержания напряжения источника питания. Но нам не нужна высокая точность измерения напряжения, тока, мощности нагрузки. Нам нужно точно измерять и поддерживать только температуру. Ее мы и будем измерять с высокой точностью. А если система покажет, что на элементе Пельтье установлена мощность 10 Вт, а на самом деле будет 10,5 Вт, это ни как не отразится на работе устройства. Это касается всех остальных энергетических параметров.

Ток измеряется с помощью резистора-датчика тока R8. Компоненты R6 и C2 образуют простой фильтр низких частот.

На элементах R7 и VT3 собрана простейшая аппаратная защита. Если ток в цепи превысит 12 А, то на резисторе R8 напряжение достигнет порога открывания транзистора 0,6 В. Транзистор откроется и замкнет вывод RES (сброс) микроконтроллера на землю. Все должно отключится. К сожалению, порог срабатывания такой защиты определяется напряжением база-эммитер биполярного транзистора (0,6 В). Из-за этого защита срабатывает только при значительных токах. Можно применить аналоговый компаратор, но это усложнит схему.

Ток будет измеряться точнее при увеличении сопротивления датчика тока R8. Но это приведет к выделению на нем значительной мощности. Даже при сопротивлении 0,05 Ом и токе 5 А на резисторе R8 рассеивается 5 * 5 * 0,05 = 1,25 Вт. Обратите внимание, что резистор R8 имеет мощность 2 Вт.

Теперь, какой ток мы измеряем. Мы измеряем ток потребления импульсного стабилизатора от источника питания. Схема измерения этого параметра гораздо проще, чем схема измерения тока нагрузки. Нагрузка у нас “отвязана” от общего провода. Для работы системы необходимо измерять электрическую мощность на элементе Пельтье. Мы вычислим мощность потребляемую регулятором, умножив напряжение источника питания на потребляемый ток. Посчитаем, что наш регулятор имеет КПД 100% и решим, что это и есть мощность на элементе Пельтье. На самом деле КПД регулятора будет 90-95%, но эта погрешность никак не скажется на работе системы.

Компоненты L2, L3, C5 – простой фильтр радиопомех. Возможно, в нем нет необходимости.

Расчет дросселя ключевого стабилизатора.

Дроссель имеет два параметра, важных для нас:

  • индуктивность;
  • ток насыщения.

Необходимая индуктивность дросселя определяется частотой ШИМ и допустимыми пульсациями тока дросселя. На эту тему есть очень много информации. Я приведу самый упрощенный расчет.

Мы подали на дроссель напряжение и ток через него начал увеличиваться ток. Увеличиваться, а не появился, потому что какой-то ток уже протекал через дроссель в момент включения Iвкл).


Транзистор открылся. К дросселю подключили напряжение:

Uдросселя = Uпитания – Uнагрузки.

Ток через дроссель начал нарастать по закону:

Iдросселя = Uдросселя * tоткр / L

  • tоткр – длительность импульса открытого ключа;
  • L - индуктивность.

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

Iвыкл – Iвкл = Uдросселя * tоткр / L

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

  • напряжение питания 12 В;
  • минимальное напряжение на элементе Пельтье 5 В;
  • значит максимальное напряжение на дросселе 12 – 5 = 7 В.

Длительность импульса открытого ключа tоткр определяется частотой периода ШИМ. Чем она выше, тем меньшей индуктивности необходим дроссель. Максимальная частота ШИМ платы Ардуино 62,5 кГц. Как получить такую частоту я расскажу в следующем уроке. Ее и будем использовать.

Возьмем худший вариант – ШИМ переключается ровно в середине периода.

  • Длительность периода 1 / 62500 Гц = 0,000016 сек = 16 мкс;
  • Длительность открытого ключа = 8 мкс.

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

Если мы допускаем ток 5 А, то возьмем пульсации тока 10 % или 0,5 А.

L = Uдросселя * tоткр / Iпульсаций = 7 * 8 / 0,5 = 112 мкГн.

Ток насыщения дросселя.

Все на свете имеет предел. И дроссель тоже. При каком-то токе он перестает быть индуктивностью. Это и есть ток насыщения дросселя.

В нашем случае максимальный ток дросселя определяется как средний ток плюс пульсации, т.е. 5,5 А. Но лучше ток насыщения выбирать с запасом. Если мы хотим, чтобы работала аппаратная защита в этом варианте схемы, то он должен быть не менее 12 А.

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

У меня дроссель выглядит так.


Естественно, провод обмотки дросселя должен быть достаточного сечения. Расчет простой – определение тепловых потерь за счет активного сопротивления обмотки.

Активное сопротивление обмотки:

Rа = ρ * l / S,

  • Rа – активное сопротивление обмотки;
  • Ρ – удельное сопротивление материала, для меди 0,0175 Ом мм2 / м;
  • l – длина обмотки;
  • S – сечение провода обмотки.

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

Ключевой регулятор потребляет от источника питания приличный ток и нельзя допускать, чтобы этот ток проходил через плату Ардуино. На схеме показано, что провода от блока питания подключены непосредственно к блокировочным конденсаторам C6 и C7.

Основные импульсные токи схемы проходят по контуру C6, нагрузка, L1, D2, R8. Эта цепь должна замыкаться связями с минимальной длиной.

Общий провод и шина питания платы Ардуино подключаются к блокировочному конденсатору C6.

Провода сигналов между платой Ардуино и модулем ключевого стабилизатора должны быть минимальной длины. Конденсаторы C1 и C2 лучше расположить на разъемах подключения к плате.

Я собрал схему на плате . Запаял только нужные компоненты. Выглядит собранная схема у меня так.

Я задал ШИМ 50% и проверил работу схемы.

  • При питании от компьютера плата формировала заданный ШИМ.
  • При автономном питании от внешнего блока питания все замечательно работало. На дросселе формировались импульсы с хорошими фронтами, на выходе было постоянное напряжение.
  • Когда я включил одновременно питание и от компьютера, и от внешнего блока питания у меня сгорела плата Ардуино.

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

У меня случилось следующее. На схеме не было диода VD2. Я добавил его после этой неприятности. Я посчитал, что плату можно питать от внешнего источника через вывод Vin. Сам же написал в уроке 2, что плата может получать питание от внешнего источника через разъем (сигнал RWRIN). Но я думал, что это один и тот же сигнал, только на разных разъемах.

Я подсоединил блок питания (не включил в сеть) и шнур платы Ардуино в USB разъем компьютера. На выход стабилизатора платы U1 NCP1117 с разъема USB поступило напряжение +5 В. А вход оказался замкнутым через достаточно низкое сопротивление выключенного блока питания. Схема есть в

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

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

Для этого необходим детектор пересечения нуля. Это схема, которая сообщает Arduino (или другому микроконтроллеру), когда синусоидальная волна проходит через нуль и, следовательно, дает определенную точку на этой синусоидальной волне.

Открытие симистора на некоторое количество микросекунд, начиная от пересечения нуля, дает предсказуемый уровень затемнения.
Такую схему легко сделать: пересечение нуля берётся непосредственно из выпрямленного сетевого переменного тока - конечно через оптрон, и дает сигнал каждый раз, когда волна проходит через нуль. Так как синусоида сначала проходит двухфазное выпрямление, сигнал пересечения нуля подается независимо от того, вверх или вниз идет синусоидальная волна. Затем этот сигнал может быть использован для вызова прерывания Arduino.

Само собой разумеется, что должна быть гальваническая развязка между Arduino и сетью. Для тех, кто не понимает "гальваническая развязка", это значит "без металлических соединений", то есть ---> оптопарами.

Схема изображенная здесь делает именно это. Сетевое напряжение 220 Вольт идет к мостовому выпрямителю через два резистора 30кОм, который выдает двухфазный выпрямленный сигнал на оптрон 4N25. Светодиод в этом оптроне при низком уровне работает на частоте 100 Гц, а на коллекторе выходит сигнал высокого уровня с частотой 100 Гц в соответствии с синусоидальной волной. Сигнал с 4N25 подается на прерывающий вывод в Arduino (или другого микропроцессора). Программа прерываний дает сигнал определенной длины на один из портов ввода/вывода. Сигнал с порта ввода/вывода сигнала уходит в нашу схему и открывает светодиод в MOC3021, который запускает оптотиристор. Светодиод последовательно MOC3021 указывает, проходит ли ток через MOC3021. Имейте в виду, что при затемнении, свечение будет не очень видно из-за коротких вспышек. Если вы решили использовать тиристорный переключатель непрерывно, то светодиод будет гореть ясно.

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

Если у вас есть оптрон H11AA11, то его использование описано ниже.
Предупреждение: Эта схема работает с напряжением 110-220В. Не делайте её, если вы не уверены в своих действиях. Отключайте её, прежде чем приблизиться к печатной плате. Радиатор симистора подключен к сети. Не прикасайтесь к нему во время работы и сделайте для него надлежащий корпус.

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

Материалы

Детектор пересечения нуля
4N25 или H11AA11 (см. текст).
Резистор 10кОм.
Мостовой выпрямитель 400В.
2x Резистор 30кОм 1/2 Вт (Скорее всего на каждом резисторе будет рассеиваться 200mW).
1 разъем.
Стабилитрон 5,1В(опционально).

Драйвер лампы
Светодиод
MOC3021
Резистор 220 Ом (я использовал 330 Ом, и всё хорошо работало).
Резистор 470 Ом-1кОм (Я закончил с использованием 560 Ом, и всё хорошо работало)
Симистор TIC206
1 разъем

Прочее
Кусок текстолит 6x3см.
Провода.

Плата

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

Примечание: рисунок платы имеет текст. В незеркальной версии рисунка текст зеркален, а в зеркальной версии рисунка текст не зеркален. Это правильно. При ЛУТ, отпечатанный рисунок переноситься непосредственно на медь, где он и выглядит правильно.

Я использовал TIC206. Он может выдавать 6 ампер. Имейте в виду, что проводники платы не выдержат 6 ампер. При подключении мощной нагрузки припаяйте провод на проводники от симистора к разъемам и на проводники ко вторым разъемам.

Если неясно значение контактов: сверху вниз по второй фотографии:
+5 вольт.
Сигнал прерывания (Digital Pin 2 Arduino).
Сигнал для симистор (выходит из Digital Pin 3 на Arduino).
GND.

ПРИМЕЧАНИЕ:
Если у вас есть оптрон H11AA11, то вам не нужен мостовой выпрямитель. H11AA11 имеет два не параллельных диода, и может работать с переменным током. Он совместим по выводам с 4N25, просто вставьте его в припоя и 2 перемычки между R5 и + и R7 и -.

Программа

Программа довольно проста. Нулевой Х сигнал генерируется в прерывании. Затем в прерывании симистор переключается на определенное время. Программа доступна ниже.

О программе: Теоретически в цикле можно было позволить переменной "i" начинается с "0 ". Однако, поскольку времени на прерывание мало, использование "0"(полностью вкл.) может немного испортить время. То же самое касается 128(полностью выкл.), хотя это кажется менее критичным. Точность "5" или, возможно, "1" является пределом настройки. Ваш диапазон может быть, например, от 2 до 126, вместо 0-128. Если у кого-то есть более точный способ настройки времени прерывания, я буду рад услышать его.

Результаты и применение

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

Подобным способом можно сделать схему для смешивания RGB светодиодов. Это также возможно с текущей схемой, но необходимы две дополнительных симисторных схемы. Разумеется, нужен только один детектор пересечения нуля.

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

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
T1 Симистор TIC206 1 В блокнот
T4 Оптопара

MOC3021M

1 В блокнот
T5 Оптопара

4N25M

1 В блокнот
BR1 Диодный мост 400 В 1 В блокнот
Резистор

220 Ом

1 В блокнот
Резистор

1 кОм

1

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

Схема и принцип её работы

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

Чтобы симистор открывался в соответствии с заданным алгоритмом, частота следования импульсов должна быть засинхронизирована с напряжением сети 220 В. Другими словами Arduino должен знать, в какой момент синусоида сетевого напряжения проходит через ноль. Для этого в диммере на элементах R3, R4 и PC814 реализована цепь обратной связи, сигнал с которой поступает на вывод P2 и анализируется микроконтроллером. В цепь детектора нуля добавлен резистор R5 на 10 кОм, который нужен для подпитки выходного транзистора оптопары.

Один силовой вывод симистора подключается к фазному проводу, а ко второму – подключается нагрузка. Нулевой провод сети 220 В напрямую следует от клеммника J1 к J2, а затем к нагрузке. Применение оптопар необходимо для гальванической развязки силовой и низковольтной части схемы диммера. Потенциометр (на схеме не показан) средним выводом подключается на любой аналоговый вход Arduino, а двумя крайними – на +5 В и «общий».

Печатная плата и детали сборки

Минимум радиоэлементов позволяет сконструировать одностороннюю печатную плату, размер которой не превышает 20х35 мм. Как видно из рисунка на ней отсутствует переменный резистор, чтобы радиолюбитель мог самостоятельно подобрать потенциометр подходящего форм-фактора и определить место его крепления к корпусу готового диммера. Подключение к Arduino осуществляется через провода, которые запаивают в соответствующие отверстия на плате.

Для сборки своими руками диммера, управляемого Arduino, понадобятся следующие радиоэлементы и детали:

  1. Симистор BT136-600D, способный выдерживать обратное напряжение до 600 В и пропускать в нагрузку ток до 4 А (естественно с предварительным монтажом на радиатор). В схеме можно применить симистор и с большей нагрузочной способностью. Главное – обеспечить отвод тепла от его корпуса и правильно подобрать ток на управляющий электрод (справочный параметр). При подключении к нагрузке электроприбора большой мощности ширину печатных проводников в силовой части схемы необходимо будет пересчитать. Как вариант, силовые дорожки можно продублировать с другой стороны платы.
  2. Оптопара MOC3021 с симисторным выходом.
  3. Оптопара PC814 с транзисторным выходом.
  4. Резисторы номиналом 1 кОм, 220 Ом, 10 кОм мощностью 0,25 Вт и 2 резистора на 51 кОм мощностью 0,5 Вт.
  5. Переменный резистор на 10 кОм.
  6. Клеммные колодки – 2 шт., с двумя разъёмами и шагом 5 мм.

Все необходимые файлы по проекту находятся в ZIP-архиве: dimmer-arduino.zip

Алгоритм управления Arduino

Программа управления симистором создана на базе таймера Timer1 и библиотеки Cyber.Lib, благодаря чему отсутствует влияние на работу других программных кодов. Принцип её действия следующий. При переходе сетевого напряжения через ноль «снизу вверх» таймер перенастраивается на обратный переход «сверху вниз» и начинает отсчёт времени в соответствии со значением переменной «Dimmer». В момент срабатывания таймера Arduino формирует управляющий импульс и симистор открывается. При следующем переходе через ноль симистор перестаёт пропускать ток и ожидает очередное срабатывание таймера. И так 50 раз в секунду. За регулировку задержки на открывание симистора отвечает переменная «Dimmer». Она считывает и обрабатывает сигнал с потенциометра и может принимать значение от 0 до 255.

Область применения диммера на Arduino

Конечно, использовать дорогостоящий Arduino для управления яркостью галогенных ламп – избыточно. Для этой цели лучше заменить обычный выключатель диммером промышленного изготовления. Диммер на Arduino способен решать более серьёзные задачи:

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

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

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