Главная » Микроконтроллеры
Призовой фонд
на май 2021 г.
1. Тестер компонентов MG328
Сайт Паяльник
2. 100 руб.

Похожие статьи:


Многоканальный фазовый регулятор на ATtiny2313

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

Принцип фазового регулирования подробно изложен в различных источниках, например, в [1], где предложена схема одноканального диммера и для ламп накаливания сетевого напряжения. В программном коде учтена нелинейность зависимости их видимой яркости от уровня питающего напряжения. В предлагаемом решении за основу взята идея реализации [1] и приведённые константы задержек включения, но, число управляющих каналов ограничено не одним, а определяется количеством доступных выводов МК, его производительностью и потребностью в них. Данное решение может применяться для создания как многоканальных диммеров, так и автоматов световых эффектов для ламп накаливания. Решение протестировано с использованием 8-ми каналов при изменении яркости одновременно четырьмя из них. Исходный код для МК ATtiny2313 прилагается.

Схема стенда
Схема стенда

Пояснения к исходному коду

Регулирование осуществляется установкой уровня яркости канала lvl[i], 0 соответствует минимальной яркости, 51 — максимальной. Текущий уровень яркости канала curr_lvl[i] будет изменяться с заданной скоростью speed[i], стремясь достичь заданного уровня lvl[i].

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

МК определяет возрастающий фронт сигнала с детектора нуля (резистивный делитель R2, R3). Второй полупериод отсчитывается по таймеру. Обработчик прерывания int0 инкрементирует счётчики полупериодов и msec20 – счётчик 20мс-интервалов (для управления скоростью изменения яркости каналов), обнуляет счётчик таймера 1. Поскольку основной рабочий цикл осуществляется в обработчике прерывания TIMER1_COMPA_vect, в регистре сравнения OCR1A устанавливается минимальная задержка MIN_Delay и на этом обработчик завершается.

Отсчёт периода времени внутри полупериода сетевого напряжения (т.е., между прерываниями int0) ведётся по счётчику Timer1, работающему на частоте 1МГц (1/8 частоты МК). Для достижения большей производительности тактовая частота может быть увеличена вдвое установкой кварцевого резонатора на 16МГц. Однако, значения задержек угла отпирания (intensity[]) и сопутствующие им константы должны быть соответственно увеличены в 2 раза.

Рабочий цикл обработчика TIMER1_COMPA_vect состоит из 4-х фаз:

  1. включение каналов, которые необходимо включить, в начале первого полупериода;
  2. выключение (т.е., снятие управляющего напряжения для триаков, которые ещё будут оставаться открытыми до перехода напряжения через 0);
  3. включение каналов в начале второго полупериода;
  4. выключение во втором полупериоде и по его окончании – расчёт значений задержек угла отпирания на следующий период.

Каждой фазе соответствует значение переменной phase: 1) 0; 2) 2; 3) 1; 4) 3 (младший бит – полупериод, 0 – I, 1- II, первый бит: 0 – вкл., 1 – выкл. канала).

Включение (п.1 и 3) осуществляется столько раз, сколько на данный момент времени оказалось включаемых каналов (chnl) с различными значениями яркости. Выключение управляющего сигнала (п.2 и 4, соотв.) производится по мере применения к управляющему регистру каждой последующей битовой маски mask_b[] включаемых каналов, а по завершении серии включений– один раз по истечении минимально необходимой задержки включения (TRIAC_Delay) для канала(ов) с минимальным значением яркости (и, соотв., с максимальной задержкой включения). После чего, выполняется расчёт значений уровней яркости curr_lvl[], соответствующих им битовых масок max_lvl, mask_b[] и очереди значений задержек (фазовых углов) queue[], представляющих собой указатели на соответствующие curr_lvl[].

При расчёте max_lvl и mask_b[] формируется очередь каналов с промежуточными яркостями, вместе с ними формируется маска каналов с максимальной яркостью (max_lvl). Далее, выстраивается очередь указателей на значения яркости в порядке их убывания (т.е., по возрастанию фазовых углов — задержек включения). Так же строятся соотв. им значения битовых масок включаемых каналов, номер канала в которой определяется по разности указателей относительно начального элемента массива. Наконец, на 3-м этапе происходит объединение каналов с совпадающими яркостями, т.к. они включаются одновременно.

​Стенд
Стенд

Демонстрационный стенд представляет собой беспаечную макетную плату, к которой подведено напряжение 12В от трансформатора. Питание схемы осуществляется от преобразователя на LM78L05, а на лампы и тиристоры подаётся выпрямленное напряжение от второго диодного моста. Питание стенда осуществляется от силового трансформатора с выходным напряжением 11-12В. Можно любой подходящий на иное напряжение, но желательно не менее указанного. Лампы накаливания — любые подходящие по напряжению трансформатора и его мощности.

На стенде показан эффект «бегущих огней» с задержкой гашения, играющий роль нагрузочного тестирования, когда 4 канала одновременно имеют несовпадающие (и ненулевые) значения яркости. Значение скорости отработки эффекта считывается из второго байта памяти eeprom функцией непосредственного чтения EEPROM_read() из даташита на МК. Значение должно быть в пределах 1-6, иначе, оно остаётся заданным по умолчанию.

Примечание 1. В упрощённой схеме стенда применены тиристоры с малым током управления, при одновременной работе которых отмечен тот же эффект, что и в [2] — нежелательные "мерцания" ламп при одновременной работе нескольких (более 2х) каналов. Полностью избавиться от этого можно указанным там способом: применением специализированных симмисторов или установкой снабберов [3].

Длительности задержек учитывают также задержку включения оптопар [4] для управления симмисторами.

При реализации схем с гальванической развязкой потребуется соответствующий детектор нуля. Так, была опробована и хорошо показала себя достаточно простая схема [5], в которой оптопара 4N35 была заменена на PC817, а Q1 на BC857. Поскольку в этой схеме каждый переход напряжения через 0 отмечается прямоугольным импульсом, обработчик int0 меняет свой вид, а расчёт задержек для регистра сравнения OCR1A несколько упрощается, что предусмотрено соответствующими директивами препроцессора.

Примечание 2. При использовании детектора нуля, как на представленном стенде, компиляция проекта производится с опцией –D DETECT50HZ. Если такое определение отсутствует, подразумевается, что будет использован детектор каждого перехода напряжения через 0, как в [5].

Фьюзы H:99, L:E4.

  1. https://radiokot.ru/articles/40/
  2. https://cxem.net/house/1-485.php
  3. https://www.onsemi.com/pub/Collateral/AN-3008.pdf.pdf
  4. https://static.chipdip.ru/lib/158/DOC000158143.pdf
  5. http://forum.easyelectronics.ru/download/file.php?id=28088

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

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
VD1-VD4 Тиристор
BT169D
4 MCR100-6 и др.Поиск в магазине ОтронВ блокнот
U2 МК AVR 8-бит
ATtiny2313A
1 Поиск в магазине ОтронВ блокнот
HL1-HL4 Лампа миниатюрная14В 50мА1 Поиск в магазине ОтронВ блокнот
U1 Линейный регулятор
LM78L05
1 Поиск в магазине ОтронВ блокнот
D1,2 Диодный мост
DB107
2 Или аналогичныйПоиск в магазине ОтронВ блокнот
С1 Электролитический конденсатор470 мкФ1 Поиск в магазине ОтронВ блокнот
C3 Конденсатор10 нФ1 Поиск в магазине ОтронВ блокнот
C2, C4 Конденсатор100 нФ2 Поиск в магазине ОтронВ блокнот
C5 Электролитический конденсатор10 мкФ1 Поиск в магазине ОтронВ блокнот
R1, R3 Резистор
10 кОм
2 Поиск в магазине ОтронВ блокнот
R2 Резистор
20 кОм
1 Поиск в магазине ОтронВ блокнот
R4-7 Резистор
1 кОм
4 Поиск в магазине ОтронВ блокнот
12V AC ТрансформаторТП-121-41 Или аналогичныйПоиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (7) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
+1
bulyga #
Так себе идея управлять тиристорами без гальванической развязки. При пробое силовые элементы "потянут" за собой всю оставшуюся схему, и опять же не безопасно для пользователя. .
Отредактирован 11.12.2020 00:39
Ответить
+1
Shida #
Там напряжение детское =12в, поэтому безопасно для пользователя.
Ответить
0

[Автор]
O18t #
Эта статья - про реализацию фазового регулирования. Данная схема - она всего лишь демо.
Реализация с гальванической развязкой, например, здесь (хотя, с т.зрения схемотехники ничего нового нет), https://yadi.sk/d/-4XRYmGKwFnw0A?w=1
Ответить
0
mr_smit #
А где это можно реально применить? Какой мощности должен быть трансформатор чтобы получить 12В переменки для того чтобы нормально осветить, например, кладовку? И какие лампы использовать?
Ответить
0

[Автор]
O18t #
Данная статья - она не про трансформатор 12В и тем более не про освещение кладовки, где это вообще не нужно. Она про алгоритм фазового регулирования. Напряжение в общем случае будет сетевое, трансформатор не нужен.
12В - это чисто для стенда, для макетки, чтобы показать на простейшей схеме.
Где применить? Ну так Новый год скоро. Например, в автоматах для переключения ретро-гирлянд на лампах накаливания.
Ответить
0

[Автор]
O18t #
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется напряжение?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Pickit 2 - USB-программатор PIC-микроконтроллеров
Pickit 2 - USB-программатор PIC-микроконтроллеров
Конструктор для сборки: предусилитель на лампе 6N3 Паяльная станция Hakko 936
вверх