Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: demanik, ivan_fd  
Форум Picbasic.ru » Программирование МК » Proton PicBasic » МК - драйвер тиристора (плавное управление тиристором)
МК - драйвер тиристора
Меджикивис Дата: Чт, 31.10.2019, 18:38  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 35
Репутация: 6   ±
Замечания:   ±
На сайте с 11.04.2016

Статус: Offline

Снова о задаче "плавного" управления тиристором. Это называется ФИУ (фазоимпульсное управление). Существует масса традиционных решений, но в данном случае условия были такие:

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

2) цифровое управление 8бит, асинхронное (не синхронизированное с сетью). Гальваническая развязка.

3) простота, минимум деталей; и по возможности доступных и недорогих.

После множества различных проб, я пришел к решению использовать простенький недорогой МК в качестве драйвера тиристора.
Из требования "1)" следует, что устройство принципиально не сможет обеспечить 100% открытие тиристора, так как какую-то часть волны ему придется забрать для своего собственного питания.
Чтобы угол открытия тиристора был возможно больше, устройство должно быть микромощным, ведь открытие тиристора лишает схему питания, оно должно достаточно зарядиться за считаные миллисекунды при начале полупериода.
Выбор пал на PIC12F629 за его мелкокалиберность и дешивизну.
Схема получилась такой - см. рис. во вложении

Гальваническая развязка входных данных - при помощи оптрона. (Так что, меньше двух микросхем не получается))) Оптрон я использовал 4N35, поскольку такой нашелся (был отпаян откуда-то). Можно использовать и другие, но обязательно с отводом от базы. Четырехногие оптроны не подойдут, потому что в микротоковом режиме они будут очень медленными. А при помощи резистора на выводе базы (R3) требуемое быстродействие можно настроить.
Оптрон питается током подтяжки входа МК. Конденсатор C2 - помехозащитный, против проникания импульсных помех через емкость оптрона.
Хотя предусмотрена и программная защита от помех, но не есть гуд, когда они тоннами валятся на вход. Так что этим конденсатором пренебрегать не следует.

МК питается через резистор R1, МЛТ-2 (2 Вт, 56 кОм). При погашенном тиристоре этот резистор заметно разогревается, но при максимальном открытии - его едва хватает, чтобы питать МК.
VD1 - стабилитрон питания, 5.6 V, и по совместительству детектор нуля, вместе с R2.
C1 - конденсатор, поддерживающий питание МК во время, пока тиристор включен. Этот конденсатор заряжается через диод VD2.
Сначала я не хотел ставить VD2, потому что на входе МК уже есть такой защитный диод, и зарядка может идти через него, благо ток ни в каком случае не превышает 6 mA. Но опыт показал, что этот микроконтроллер реагирует на подобное издевательство весьма болезненно, поэтому VD2 необходим в обязательном порядке.

Тиристор я использовал КУ202Н, но это не принципиально, могут работать и другие.

Программная часть.

Чтобы снизить токопотребление МК, пришлось поотключать в нем всё, что только можно было отключить, и погрузить его в сон.

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

Трудность состоит в том, что МК при этом должен еще прослушивать вход данных и в случае прихода посылки начать принимать биты. Но в силу требования "2)", посылки не синхронизированы с сетью, они могут приходить и в то время когда тиристор включен и питания нет. Конденсатор C1 может подпитать, но недолго. Поэтому пришлось реализовать прием на наибольшей возможной для 4МГц скорости 9600. Это, кроме того, стандартная по умолчанию скорость Протоновских команд Rsin и Rsout.
Формат приема - стандартный RS232: 9600, 8бит, без четности, 1стоп. Данные можно посылать от обычного COM-порта компьютера.

Поскольку мне пришлось работать сразу с тремя прерываниями - от сети, от таймера и от данных, причем на максимальных скоростях, пришлось нетривиально извратиться и написать собственный софтовый UART. (Если бы у МК был аппаратный, это упростило бы дело, но его там нет...)
Важный нюанс состоит в том, что подпрограмма Delay41 должна выполняться стабильно за 41мкС, не больше и не меньше, - это обеспечивает правильную скорость 9600.
Но у меня нет уверенности, не заломает ли отлаженное время оптимизатор кода в ваших версиях Протона. Этого ради, я прилагаю к исходному коду также его ассемблерный код и готовую, испытанную прошивку.
По ним можно проверить правильность трансляции.

Другие особенности.

МК запущен от внутреннего тактового генератора. Он подогнан под точно 4МГц при помощи регистра OSCCAL. Я не выяснил, придется ли подгонять каждый другой экземпляр МК индивидуально, или параметр 88 подойдет ко всем, и надо ли вообще подгонять. Просто, приступая к экспериментам, заранее хотел подстраховать себя от заморочек, связанных с неточностью частоты.

8-битный таймер0 в максимуме немного короче периода сети. Но это как раз подходит к тому обстоятельству, что тиристор нельзя врубать сразу: надо дать зарядиться конденсатору C1. Поэтому таймер отрабатывает дважды: сначала он отсчитывает предварительную паузу постоянной величины - на заряд и для смещения в правильный ноль, а после нее уже начинает считать заданный фазовый сдвиг.
Предварительная пауза подобрана такой величины, что при нулевом значении таймера конец счета попадает как раз в следующий ноль сети. Но по-факту этой паузы оказалось не совсем достаточно для полного заряда C1, так что пришлось заблокировать еще несколько максимальных значений (с 252 по 255). На такие задания программа не реагирует ни как. Так что реальный диапазон заданий - от 1 по 250. При нулевом задании тиристор для надежности отключается совсем, путем блокировки запускающих импульсов.

Печатная плата не изготавливалась, схему спаял "на проводах".

Буду благодарен, если кто проведет испытания у себя и напишет, что получилось улучшить и какие недостатки удалось исправить.
пожалуйста, НЕ ПИШИТЕ о результатах, полученных при помощи симулятора. МК работает в условиях помех и колеблющегося питания, такие вещи модель не отрабатывает адекватно.
Реальную ценность представляют только результаты, полученные на макете "в железе".
Прикрепления: 8959116.gif(4.3 Kb) · Tyr-629.zip(9.5 Kb)

Сообщение отредактировал Меджикивис - Пт, 01.11.2019, 18:27
ЯНДЕКС Дата: 31.10.2019
Aleksey_174 Дата: Вс, 03.11.2019, 17:53  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 84
Репутация: 14   ±
Замечания:   ±
На сайте с 22.01.2017

Статус: Offline

А если стабилитрон пробьет, что часто бывает, все привет, пожар.
У меня раньше была дистанционка "СЕЗАМ" называлась, наверно еще в СССР делали, тож в нагрузку к лампе, там на конденсаторе питание было, а чтоб питания хватало дросель стоял. Из недостатков лампа горела чуть тускней и шум небольшой был.
И кстати тиристоры вообще не любят скачков напряжения вылетают сразу.
Меджикивис Дата: Вс, 03.11.2019, 23:00  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 35
Репутация: 6   ±
Замечания:   ±
На сайте с 11.04.2016

Статус: Offline

Цитата Aleksey_174 ()
А если стабилитрон пробьет, что часто бывает, все привет, пожар.
С какой стати?
- с какой стати пожар от шести миллиампер? С какой стати на таком токе закоротит стабилитрон? -именно закоротит, а не пробьет. Стабилитрон в состоянии пробоя находится всё время,: это его нормальный режим.
- даже если закоротит, то напряжение на нем - и на МК - станет равно нулю и ничего не включится вообще.

Цитата
тиристоры вообще не любят скачков напряжения вылетают сразу.

От скачков напряжения не вылетают, а просто открываются как обычно, до конца полупериода.
А вот от бросков ТОКА - да могут вылетать. Током конденсатора, не ограниченным хоть небольшим сопротивлением - убиваются с первого раза, да.
Но у меня же в схеме нет такого конденсатора.
Даже если умрет тиристор - просто будет постоянно включена нагрузка, не регулируясь.

Добавлено (03.11.2019, 23:16)
---------------------------------------------

Цитата Aleksey_174 ()
У меня раньше была дистанционка "СЕЗАМ" называлась, наверно еще в СССР делали, тож в нагрузку к лампе, там на конденсаторе питание было,
Это на К145АП2, я знаю эту схему. Я пытался ее применить перед этим. Не удовлетворило. Диапазон регулировки неполный, только от 30%. И, главное, без обратного ответа, МК не может надежно распознать, что она делает: усиливается или ослабляется.
Aleksey_174 Дата: Пн, 04.11.2019, 14:38  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 84
Репутация: 14   ±
Замечания:   ±
На сайте с 22.01.2017

Статус: Offline

Цитата
- даже если закоротит, то напряжение на нем - и на МК - станет равно нулю и ничего не включится вообще
Да, но резистор будет нагреваться во всю, потом чернеть и искрить, у меня так две дистационки сгорели в деревне (там напряжение скачит постоянно), благо предохранитель был и корпус с термоусадкой. А недавно сгорела и третья в городе почти 2 года проработала, у всех резисторы пыхали (хотя и грелись еле еле в начале), а на 2 стабилитроны на к.з. Кстати микроконтроллерам 16ф684 ничего не стало, а 12ф683 стали греться и ток потреблять и не прошиваются, но работают.
А в далеком прошлом была зарядка для крон с резисторами, штора загорется успела.
Меджикивис Дата: Вс, 10.11.2019, 14:53  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 35
Репутация: 6   ±
Замечания:   ±
На сайте с 11.04.2016

Статус: Offline

Цитата Aleksey_174 ()
Да, но резистор будет нагреваться во всю, потом чернеть и искрить
Может быть Вы не обратили внимание на номиналы? R1 = 56к. Сколько при полном сетевом напряжении будет на нем мощность?- 0.8 Вт. А резистор двухваттный. С чего бы ему чернеть, когда он недогружен больше чем наполовину?
Практический опыт это конечно хорошо, но простейшие расчеты тоже нужно понимать)))))))

Да; и еще забыл сделать положенную приписку о том, что конструкция имеет бестрансформаторное питание! Будьте осторожны и соблюдайте технику безопасности.
Но, я надеюсь, тут люди не случайные, и как обращаться с электричеством знают.
Форум Picbasic.ru » Программирование МК » Proton PicBasic » МК - драйвер тиристора (плавное управление тиристором)
  • Страница 1 из 1
  • 1
Поиск: