Страница 1 из 1
Dimmer (mega128)
Добавлено: Вс апр 24, 2011 01:34:29
krysun
Прошу помочь сконфигурировать по.
Диммер на BTA26800B вкоючается через МОС3063.
Ноль детектят пара РС817.
Мега128 запитана от своего БП.
Кварц 6 МГц.
Прерывание от "нуля" на INT0.
Включение триака ногой PA.0 (DDRA.0=1).
Привожу "куски" кода.
Код: Выделить всё
#include <mega128.h>
// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
TCCR1B=0x01; // Timer1 ON
}
// Timer1 output compare A interrupt service routine
interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
PORTA.0=1; //TRIAK ON
}
// Timer1 output compare B interrupt service routine
interrupt [TIM1_COMPB] void timer1_compb_isr(void)
{
PORTA.0=0; //TRIAK OFF
TCNT1H=0x00; // Timer1 CLEAR
TCNT1L=0x00; //
TCCR1B=0x00; //TIMER1 OFF
}
Код: Выделить всё
TCCR1B=0x01; // Делитель на 8
...
OCR1AH=0x0F; //Прерывание через 5мс
OCR1AL=0xA6; //
OCR1BH=0x0F; //Прерывание еще через 0,1мс
OCR1BL=0xF1; //
Даже прогу слепил на делфи для расчета задержек
ИТОГ:
На Вкл/Выкл ноги лампочка загорается и гаснет, соответственно...
При попытке "резать" синусы, может вкл. и не выкл (и наоборот, или просто мерцает...
Осциллографа нет (
Может в железе проблема? У МОС3063, вроде свой какой-то zero detector есть.
Жду помощи, господа... Недели 2 маюсь (
Re: Dimmer (mega128)
Добавлено: Вс апр 24, 2011 06:06:16
lix
прескалер тоже надо обнулять, но это так к слову.
и еще вроде как порядок записи в 16битные регистры имеет значение. но я могу ошибаться.
Re: Dimmer (mega128)
Добавлено: Вс апр 24, 2011 08:03:42
coredumped
Боюсь лажа с МОС3063 - эта штуковина, скорее всего, не подойдет для фазо-импульсного управления. Я глянул на даташит, и меня смутил ихний нуль-детектор. Скорее всего он какраз и предназначен для коммутации симистора в момент перехода через 0 - это сделано для предотвращения помех в электросети. На такой штуке можно "выбрасывать" только целые полупериоды, что примлемо, скажем для паяльника, и совсем не подходит для лампочки. Это мое предположение, тк в даташите про это ничего толком не написано. Был бы у Вас осцилл или у меня этот драйвер, мы бы сразу выяснили прав я или ошибаюсь... Могу предложить, попробовать заменить драйвер на какой-нибудь другой, без нуль-детекторов, если это возможно.
Re: Dimmer (mega128)
Добавлено: Вс апр 24, 2011 11:28:53
krysun
coredumped писал(а):Боюсь лажа с МОС3063...
Да, я про это и спрашивал...
Не ломает ли он весь кайф со своим детектором))
Кстати, прикупил
HCPL-3700
AC/DC to Logic Interface
Optocouplers
Technical Data
Для детекта буду его использовать. С ним никаких коней нет?
Re: Dimmer (mega128)
Добавлено: Вс апр 24, 2011 11:33:47
krysun
lix писал(а):прескалер тоже надо обнулять, но это так к слову.
и еще вроде как порядок записи в 16битные регистры имеет значение. но я могу ошибаться.
Регистры ж составные 2 х 8бит, или я не туда рулю? оО...
Re: Dimmer (mega128)
Добавлено: Вс апр 24, 2011 12:24:04
lix
можно просто писать TCNT1 = 0x1FFF;
Re: Dimmer (mega128)
Добавлено: Вс апр 24, 2011 13:10:35
qwerky
Диммер на BTA26800B вкоючается через МОС3063.
на 3063 диммер не получится - он включается только при переходе через 0. Берите MOC3052
Re: Dimmer (mega128)
Добавлено: Вс апр 24, 2011 13:29:51
krysun
qwerky писал(а):Диммер на BTA26800B вкоючается через МОС3063.
на 3063 диммер не получится - он включается только при переходе через 0. Берите MOC3052
Спасибо! Этого ответа я и ждал.
А то ну ВСЕ вроде бы перепробовал и без результатов.
Во вторник проверю - отпишусь.
Re: Dimmer (mega128)
Добавлено: Пн апр 25, 2011 10:08:06
krysun
Котики, мне вообще не для димера это надо. Я планирую на этой базе сделать управление ИК нагревателями. BTA26800B стоят на радиаторе (4 шт). Может и не нужен этот диммер? Просто нормально гистерезис считать и достаточно?
Читать буду термопару MAX6675, у нее есть компенсация холодного спая.
Обмен через УСБ (Шнур от мобилки на FT232)))
Пример управлялки с компа прикрепляю....
А, и еще. Где можно взять нормальные термо-профиля для разных плат? (Желательно в цифрах, или графиках)
Методом тыка не хочется)
Re: Dimmer (mega128)
Добавлено: Пн апр 25, 2011 11:08:16
qwerky
Спасибо! Этого ответа я и ждал.
а в даташит глянуть не побовал ?
Я планирую на этой базе сделать управление ИК нагревателями.
для такого регулирования диммер без датчика 0 - неподходящее решение - генерирует помехи, сильно нагружает нагреватели. Оптосимистор с переходом 0 (3063/3083) - в самый раз. Регулирование - тот же ШИМ, только медленный, или алгоритм Брезенхема (равномерно распределяет импульсы мощности по периоду регулирования).
Re: Dimmer (mega128)
Добавлено: Пн апр 25, 2011 13:49:05
krysun
qwerky писал(а):а в даташит глянуть не побовал ?
Пробовал. И видел. Вопрос "Понял ли?" )) Потому и спросил (конкретно по нему).
Курим предложенный алгоритм. Надеюсь разберусь.
Эээ, а вот тут я не понял.
Вы хотите сказать, что ШИМом и 3063 я смогу управлять Триак-ом? Он же не закроется когда мне НУЖНО, только при нуле. Или не правда?... оО
Разве, что только ШИМ до 100Гц....
Re: Dimmer (mega128)
Добавлено: Пн апр 25, 2011 14:18:36
qwerky
krysun писал(а):qwerky писал(а):а в даташит глянуть не побовал ?
Вы хотите сказать, что ШИМом и 3063 я смогу управлять Триак-ом? Он же не закроется когда мне НУЖНО, только при нуле. Или не правда? Разве, что только ШИМ до 100Гц....
нагреватель - сильно инерционная нагрузка, допускающая управление низкочастотными импульсами. За минимальный дискрет управления можно взять импульс 100..200мс, и период регулирования 10..20с (диапазон 0..100% с дискретностью 1%). Брезенхемом импульсы управления равномерно "размажутся" по периоду регулирования, что еще снизит пульсации на нагрузке. За основу можно взять упрощенный алгоритм (последний на
http://en.wikipedia.org/wiki/Bresenham% ... _algorithm ). Ну и тут кое-что описано:
http://cxem.net/mc/mc3.php
Re: Dimmer (mega128)
Добавлено: Вт май 03, 2011 10:37:32
krysun