![]() |
|
![]() |
#1 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 800 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Тема по датчик тока выяснила что я не докнца понимаю алгоритм работы Диммера, счел что разобраться в нем будет уместнее здесь.
Итак: как я вижу алгоритм работы диммера такой: 1. Оптрон отлавливает нулевую точку когда синусоида пересекает 0 и движется вверх(начало периода) через внешнее прерывание INT запускается алгоритм обработки по подъему. При этом после прохождения нулевой точки симмистор закрыт и ток через него не проходит 2. Обнуляется счетчик tic и запускается таймер с интервалом в 40 микросекунд (т.е. в полупериоде 250 срабатываний таймера) 3. Каждое срабатывание таймера счетчик tic увеличивается и по достижении его значения переменной Dimmer на выход подается логическая единица и симистор открывается и на лампочку идет ток 4. Когда синусоида спадая вниз вновь достигнет 0, срабатывает прерывание и включается его обработчик на спад - выключается симистор, ток не течет, таймер останавливается и дальше все так до первого пункта Вот где-то тут я не то понимаю, судя по тому что админ написал что регулирование осуществляется и по нижнему полу периоду, в обработчике прерывания на спад должно быть примерно так же как и в обработчике на подъем с запуском таймера и т.д. В старом коде http://www.cyber-place.ru/showthread.php?t=191 видно что обрабатывались оба полупериода, а вот в новом чет не понимаю. Уж простите за вопросы новичка. И второй вопрос - если вместо оптрона использовать датчик тока, то он подключается на аналоговый вход, соответственно работа по прерыванием у него возможна только по PCINT, не определяющий спад и нарастание, соответственно это придется обрабатывать программно или через библиотеку. Или есть еще какие-то решения более разумные? |
![]() |
![]() |
![]() |
#2 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
спад и подъем, это я имел ввиду нарастающий фронт сигнала и спадающий фронт(передний и задний фронт меандра)
Так как оптрон имеет два втречнопараллельных светодиода, то у оптрона на выходе будет меандр с частотой 100Гц Поэтому обработка положительного и отрицательного полупериода абсолютно идентичны |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 800 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
если я правильно понял последний вопрос, то мне уже ответ дали, просто процитирую -так же как и на первой
Цитата:
|
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 800 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Вон оно что, про то что у оптрона два диода я и забыл,ведь я все пытаюсь сделать в качестве детектора нуля ACS712 а у него синусоида на выходе/
Значит для схемы схемы с ACS отслеживать ноль через прерывания бессмысленно- проще сделать таймер каждые 20-40 микросекунд и считывать значения с аналогового порта, а уж значения использовать и для расчета тока и для управления симмистором Последний раз редактировалось Bulatovor; 13.03.2013 в 08:46. |
![]() |
![]() |
![]() |
#5 | |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 800 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Согласен, именно как то так. Только вот диммер будет отрезать синусоиду и соответственно измерения переменки будут неточны на максимуме. Для расчета тока придется применять и коэффициент диммирования или какой-то другой коэффициент определяющий в какой момент был отключен диммер
|
![]() |
![]() |
![]() |
#7 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
А зачем максиму измерять? достаточно поймать ноль и от него отсчитывать таймером
Мы знаем что максимум должен быть в 5мс от ноля P.S. Упустил из виду про измерение тока. Для измерения эффективного значения синусоидального тока все равно нужно бы было умножать на коэффициент 0,7 В случаи с отсечкой нужно рассчитать новую формулу в которой придется учитывать время отсечки или поставить RC фильтр для сглаживания и получения синусоиды на выходе датчика тока |
![]() |
![]() |
![]() |
#8 |
Junior Member
Регистрация: 26.03.2013
Сообщений: 2
Вес репутации: 0 ![]() |
![]()
Здравствуйте. За труды спасибо, собрал, работает. У меня Mega 2560. Но вот проблема, мне нужно управление нагрузкой 6-7 кВт(тэн), с привязкой к термодатчику DS18B20, причем не режим вкл/выкл, а именно плавная подстройка. Так вот, если заменить ВТ 138 на, скажем, ТС 132-50-10, схема будет рабочей?
|
![]() |
![]() |
![]() |
#9 | |
Junior Member
Регистрация: 04.02.2013
Сообщений: 19
Вес репутации: 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
И сразу возникает вопрос что контролируется? Если нужна автоматическая корректировка мощности в зависимости от температуры, еще и с приличной точностью, тут не такой простой вопрос. Сразу хочу предостеречь: регусятор будет заводиться. те температура возросла -> мощьность нарастает из за инерционности еще нарастает -> перегрели и надо сильно сбрасывать мощность и так по кругу. В таком случае нужен ПИД регулятор и его правильная настройка. если оч коротко: с какой силой и с какой скоростью реагировать на изменение параметра (в вашем случае температуры) |
|
![]() |
![]() |
![]() |
#10 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Для инертной(нагреватель) и мощной нагрузки, что бы не создавать помехи в электропроводке, лучше собрать этот диммер на оптроне с детектором ноля(MOC3061), а мощность регулировать полупериодами.
Выглядеть будет так: использовать 10 полупериодов = 100% мощности использовать 9 полупериодов и пропустить 1 полупериод = 90% и т.д. Алгоритм проще, таймер не нужно использовать схема такая же как в шапке темы |
![]() |
![]() |
![]() |
Здесь присутствуют: 10 (пользователей: 0 , гостей: 10) | |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|