Вопрос по фазовому регулятору с AVR-управлением

Обсуждаем контроллеры компании Atmel.
Ответить
Встал на лапы
Сообщения: 81
Зарегистрирован: Вс ноя 25, 2018 11:38:27

Сообщение freebits »

Добрый день.

В данной статье http://avr-start.ru/?p=3983 описан способ управления симистором с помощью микроконтроллера. В ходе его реализации у меня возник вопрос: предложенная в этой статье схема требует соблюдения правильного подключения нуля и фазы, иначе ничего не будет работать, поскольку фазовый сигнал нужен в качестве обратной связи для отслеживания пересечения нуля. Посоветуйте, как можно модифицировать схему, чтобы она была не зависима от положения фазы и нуля?

И еще попутно один вопрос. Набросал схему в протеусе, написал код, правда немного отличный от предложенного. Предложенный в статье код опирается на аппаратном прерывании, у меня же происходит отслеживание изменения логического состояния на входном пине по таймеру. В остальном фактически то же самое. Т.е. в обработчике прерывания таймера идет проверка смены логического стояния на входном пине ОС. Как только произошла смена лог. состояния, запускается отсчет задержки, который идет до определенного значения (предела задержки). Как только предел задержки достигнут, в текущем цикле на управляющий пин отправляется лог. 1, а следующем лог. 0 (т.е. генерируется управляющий импульс). Таким образом происходит открытие симистора с задержкой после прохождения нуля.

Изображение Изображение

Код: Выделить всё

#define CTRL_SIGN_OFF 0
#define CTRL_SIGN_ON  1

//Отправка  управляющего сигнала в PORTC.0
void SetCtrlSignal(unsigned char state)
{
	
	if (state == CTRL_SIGN_ON) PORTC |= 1;
 	else PORTC &= ~1;
}

//Считывание сигнала обратной связи PINA.7
unsigned char GeFbSignal(void)
{
 	return (PINA & 0x80);
}

//Функция фазовой регулировки (вызывается в теле обработчика прерывания таймера)
void PhaseRegulation(void)
{
		curFbSignal = GetFbSignal(); //получить текущее логическое состояние сигнала обратной связи
		
		if (DelayBeg == TRUE) //Если запущен отсчет задержки
		{
			if (DalayCntr == DelayLim) //Если достигнут предел отсчета 
			{
				SetCtrlSignal(CTRL_SIGN_OFF); //Прекратить управляющий импульс
				DalayBeg = FALSE; //Остановить отсчет задержки
			}
			else if (dvBoundDalayCntr == DelayLim - 1) //Если достигнут предел отсчета минус 1 
			{
				SetCtrlSignal(CTRL_SIGN_ON); //Запустить управляющий импульс
			}
			
			DelayCntr++; //увеличить счетчик задержки
		}
		else if (oldFbSignal != curFbSignal) //Если произошла смена логического состояния сигнала ОС
		{
			SetCtrlSignal(CTRL_SIGN_OFF); //Прекратить управляющий сигнал
			DelayBeg = TRUE; //Запустить отсчет задержки
			DelayCntr = 0; //Обнулить счетчик задержки
		}
		
		oldFbSignal = curFbSignal;	
}
В протеусе все запускается и как бы работает, но спустя секунд 3-5 вываливается такая ошибка. Подскажите, что ему не хватает?

Изображение

Добавлено after 26 minutes 35 seconds:
Модифицировал схему вот так, в протеусе работает (так же вылетает ошибка, но осциллограмма правильная), как думаете в реале будет такая схема работать?

Изображение
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

С1, D1, D2 лишние.
ошибка протеуса возникает потому, что вы смешали аналоговые компоненты и цифровые. например, модель резистора может быть аналоговой или цифровой, светодиод тоже. при моделировании аналоговых цепей протеус порой лажает - требуется тонкая и загадочно-непонятная настройка его поведения. лично я в подобных случаях отказываюсь о моделирования аналога, ограничиваясь только цифрой (если полностью понятно, как аналоговая часть яработает).
не одобряю метод определения перехода через ноль, т.е. путем опроса. но хозяин барин.
многократно проверенная схема фазового регулятора:
Изображение
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15657
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Если уж оптрон на выходе, то и гальванразвязка на входе...
Вот типа такой
http://img.radiokot.ru/files/20529/1r6lu2clr1.JPG
:roll:
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

В протеусе все запускается и как бы работает, но спустя секунд 3-5 вываливается такая ошибка. Подскажите, что ему не хватает?
это попробовать:
https://radiokot.ru/forum/viewtopic.php ... 07#p198207
Реклама
Эиком - электронные компоненты и радиодетали
Открыл глаза
Сообщения: 42
Зарегистрирован: Вс сен 03, 2017 19:43:57

Сообщение technik-1017 »

входной каскад можно так (работает более 15 лет) и на выход оптрон без Zero Crossing
переход через ноль лучше контролировать через прерывание на входе int
Вложения
5.png
входной каскад
(5.6 КБ) 432 скачивания
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15657
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Неплохая штука, но светики работают почти весь полупериод, а в той, что я давал только импульсы при переходе через нуль.
8)
Реклама
Друг Кота
Аватара пользователя
Сообщения: 39197
Зарегистрирован: Сб сен 13, 2014 16:27:32
Откуда: СпиртоГонск созвездия Омега

Сообщение musor »

в принципе обе рабочие если нужен галваноразвяз чесный но в китайпроме повално его неделают лет 10как катот триаку подвешивают к +5 а нать замыкается через ОК ирезистор на землю синхру просто берут с анода триаку
http://arv.radioliga.com/images/stories/fun/sch.gif не рекоиндую ток управы ограничен выходом мк треьуется чуткий ирикак группы Е и при пропое все сгорит 7ах включая мк лучше повесить буферный транзюлек нужной мощи тогда можно пережить бах сохраниф мк
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Открыл глаза
Сообщения: 42
Зарегистрирован: Вс сен 03, 2017 19:43:57

Сообщение technik-1017 »

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

https://www.owen.ru/uploads/re_mv110-8df_1824.pdf
стр.38
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 15657
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

За доку плюсик - в коллекции не помешает...
Однако... Я и силовую голову и датчики предпочитаю на самом объекте ставить.
А сигнал гонится старой - доброй "20 мА токовой петлей".
Сегодня махоньких МК о 6-8 лапках в избытке. Особо и проблем нету.
Фазовой особо баловаться не довелось - уж больно помех от нее моного.
Да и экономия в проводе значительная - силовой кабель "не петляет" , а телефонна "лапша" как-то дешевше...
А вот ключевой с "выборкой количества периодов" на крайний случай (в самоделках)
мал повозился.
:dont_know:
Встал на лапы
Сообщения: 81
Зарегистрирован: Вс ноя 25, 2018 11:38:27

Сообщение freebits »

[uquote="oleg110592",url="/forum/viewtopic.php?p=3563222#p3563222"]
В протеусе все запускается и как бы работает, но спустя секунд 3-5 вываливается такая ошибка. Подскажите, что ему не хватает?
это попробовать:
https://radiokot.ru/forum/viewtopic.php ... 07#p198207[/uquote]

Да, спасибо большое, эти настройки помогли! Ошибка больше не вываливается!

Добавлено after 6 minutes 33 seconds:
Спасибо всем отписавшимся за предложенные варианты! Сейчас буду более детально с ними разбираться.

Добавлено after 1 hour 35 minutes 1 second:
В общем, все-таки решил пойти по пути оптической гальваноразвяки. Переделал схему в протеусе таким образом, как предложил technik-1017.
Но после запуска симуляции, в осциллограмме есть небольшие недочеты. На нижней осциллограмме (выход оптопары) низ меандра не совсем прямоугольный, из-за чего не совсем корректно определяется момент прохождения через ноль. Подскажите, как можно выровнять меандр?
И еще вопрос - каково назначение резистора R6 и конденсатора С1?

Изображение Изображение

Добавлено after 6 minutes 15 seconds:
Уменьшил номинал резисторов R3 и R5 со 180к до 60к - стало значительно лучше. Думаю так пойдет. Посчитал - при данном суммарном сопротивлении (120к) через светодиод будет проходить максимум 2-3 мА тока, но правда при таком токе мощность резисторов должна быть по 0,5 Вт. Остался вопрос за резистор R6 и конденсатор С1 -нужны ли они и для чего?

Изображение
Друг Кота
Аватара пользователя
Сообщения: 39197
Зарегистрирован: Сб сен 13, 2014 16:27:32
Откуда: СпиртоГонск созвездия Омега

Сообщение musor »

р6с1 помехи коих в сети полно гасят
р6 совмесно с р3зр5 задают порок синуса на сработку с1ё убивает вч шум от всякой шняыги вроди ИБП и ЭПРА
номиналом резистора можно кстати тож поигратся чля четкого строб сигнала нужной ширины стропа
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Открыл глаза
Сообщения: 42
Зарегистрирован: Вс сен 03, 2017 19:43:57

Сообщение technik-1017 »

Наверно лучше использовать оптрон k3010 иначе при смене фаза-ноль будете иметь разные переходы (0-1 или 1-0) на входе микроконтроллера.
При использовании оптрона k3010 будете иметь короткие импульсы на входе микроконтроллера в момент перехода фазы через 0.
Рабочий ток оптрона pc817 5 mA, резисторы R3 и R5 надо уменьшать.
R6 и C1 фильтр от помех, но большие номиналы ставить не следует, можете импульс завалить
Контактная информация:
Встал на лапы
Сообщения: 81
Зарегистрирован: Вс ноя 25, 2018 11:38:27

Сообщение freebits »

[uquote="musor",url="/forum/viewtopic.php?p=3563812#p3563812"]р6с1 помехи коих в сети полно гасят
р6 совмесно с р3зр5 задают порок синуса на сработку с1ё убивает вч шум от всякой шняыги вроди ИБП и ЭПРА
номиналом резистора можно кстати тож поигратся чля четкого строб сигнала нужной ширины стропа[/uquote]
Ок, понял, спасибо!
Друг Кота
Аватара пользователя
Сообщения: 39197
Зарегистрирован: Сб сен 13, 2014 16:27:32
Откуда: СпиртоГонск созвездия Омега

Сообщение musor »

насчет к3010 я согласен он дает 2 стоба за период 817 тока 1 в ряде случаеф это критично но при отсутствии 3010 или подобных 2 817 впаралель рулят тока диоды надо включитьвстречно паралелно
этот вариан боле народный ибо цена 817 в лавках ок 5-20р а 3011 надо еше найти и цена там может неприятно удивить
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Встал на лапы
Сообщения: 81
Зарегистрирован: Вс ноя 25, 2018 11:38:27

Сообщение freebits »

[uquote="technik-1017",url="/forum/viewtopic.php?p=3563826#p3563826"]Наверно лучше использовать оптрон k3010 иначе при смене фаза-ноль будете иметь разные переходы (0-1 или 1-0) на входе микроконтроллера.[/uquote]
С этим проблем нет, т.к. важна именно смена логического состояния, при этом без разницы с 0 на 1 или 1 на 0. С этим оптроном в симуляции прекрасно работает.

[uquote="technik-1017",url="/forum/viewtopic.php?p=3563826#p3563826"]Рабочий ток оптрона pc817 5 mA, резисторы R3 и R5 надо уменьшать.
R6 и C1 фильтр от помех, но большие номиналы ставить не следует, можете импульс завалить[/uquote]
Ок, спасибо, про рабочий ток учту.

Добавлено after 3 minutes 2 seconds:
[uquote="musor",url="/forum/viewtopic.php?p=3563840#p3563840"]насчет к3010 я согласен он дает 2 стоба за период 817 тока 1 в ряде случаеф это критично но при отсутствии 3010 или подобных 2 817 впаралель рулят тока диоды надо включитьвстречно паралелно
этот вариан боле народный ибо цена 817 в лавках ок 5-20р а 3011 надо еше найти и цена там может неприятно удивить[/uquote]
Так вот именно, что детали закупаю в интернете и 3011 нет в наличии, придется долго ждать, а 817 как раз навалом (они почти в каждом импульсном БП).
Открыл глаза
Сообщения: 42
Зарегистрирован: Вс сен 03, 2017 19:43:57

Сообщение technik-1017 »

k3010 (не k3011) есть в наличии
https://www.promelec.ru/product/112491/
https://www.chipdip.ru/product/kp3010b

тем более через интернет, цена 15-20 руб
Контактная информация:
Встал на лапы
Сообщения: 81
Зарегистрирован: Вс ноя 25, 2018 11:38:27

Сообщение freebits »

В ЧиДе есть не спорю, и даже уже в корзину положил, только ехать до меня будет 10-14 дней. Я имел в виду, что у меня в наличии нет, нужно долго будет ждать :))
akl
Друг Кота
Сообщения: 4459
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Сообщение akl »

Давно использовал для этих целей TLP126.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 303
Зарегистрирован: Ср май 03, 2017 03:22:26

Сообщение 7seg »

В рабочей схеме использую PC817 для снятия синхро импульса, далее пускаю его через 74HC14 (Скажем на всякий случай) . Симистором силовым управляю через moc3052.
Итого регулировка мощности нагрузкой 6х3.6 кВт . (в качестве нагрузке лампы ИК). На форуме есть где то тема в которой обсуждал некоторые нюансы ФИУ.
Потом ушел на схему с применением IGBT транзисторов, как по мне более стабильная схема правда есть одно но (нужно активное охлаждение).
Зато без каких либо проблем регулировка 6 каналов по 4.4 кВт.

Все Схемы\Прошивки оставлял на форуме. (т.к много кто помогал разобраться в тонкостях программирования мк.)
andrei23061996@gmail.com
.................................................................................................................
Ответить

Вернуться в «AVR»