Jump to content
Nick  Iskrov

Диммер не работает под нагрузкой: MOC3052, PC814, BT139, arduino

Recommended Posts

Здравствуйте, форумчане!

Прошу у вас помощи разобраться в проблеме с диммером лампы накаливания на основе фазового управления.

Прикрепил схему, которую я спаял для тестов с ардуиной. Также прикрепил показания осциллографа, снятые с контактов нагрузки через делитель напряжения (с лампой в цепи и без лампы в цепи).

При подключении лампы, напряжение на нагрузке = 0. Во всем диапазоне. Лампа загорается на 100% только когда фаза = 0. При всех остальных значениях фазы, напряжение на нагрузке = 0.

При выключении лампы из цепи нагрузки, фазовое управление работает как надо (судя по осциллографу). Включаю лампу в цепь - диммер перестает работать, лампа загорается только в момент, когда симистор пропускает полное напряжение...

Код ардуинки:

#include <CyberLib.h> //Библиотека от Cyber-Place.ru
volatile uint8_t tic, Dimmer1;
uint8_t data;
int i;

void setup() 
{ 
  D4_Out; //Настраиваем порты на выход
  D4_Low; //установить на выходах низкий уровень сигнала
  D2_In; //настраиваем порт на вход для отслеживания прохождения сигнала через ноль  
    attachInterrupt(0, detect_up, LOW);  // настроить срабатывание прерывания interrupt0 на pin 2 на низкий уровень
    StartTimer1(halfcycle, 40); //время для одного разряда ШИМ
    StopTimer1(); //остановить таймер
    UART_Init(115200); //инициализация порта
}
//********************обработчики прерываний*******************************
void halfcycle()  //прерывания таймера
{ 
  tic++;  //счетчик  
  if(Dimmer1 < tic ) D4_High; //управляем выходом
}

void  detect_up()  // обработка внешнего прерывания. Сработает по переднему фронту
{  
 tic=0;             //обнулить счетчик
 ResumeTimer1();   //запустить таймер
 attachInterrupt(0, detect_down, HIGH);  //перепрограммировать прерывание на другой обработчик
}  

void  detect_down()  // обработка внешнего прерывания. Сработает по заднему фронту
{   
 StopTimer1(); //остановить таймер
 D4_Low; //логический ноль на выходы
 tic=0;       //обнулить счетчик
 attachInterrupt(0, detect_up, LOW); //перепрограммировать прерывание на другой обработчик
} 
//*************************************************************************
void loop() 
{Start
  if (i >= 0 && i <= 200) {delay(50); Dimmer1 = i; i = i+1;}
  else {i = 0;}
  //Dimmer1=100;  
End}  

 

DIMMER_v2_tst_dlya_foruma.jpg

DIMMER_v2_tst_without_lamp.gif

DIMMER_v2_tst_with_lamp.gif

Edited by Nick Iskrov
редактировал 10 строку кода (D2_In;)

Share this post


Link to post
Share on other sites

Для регулирования "скважности" на синусе нужен более точный детектор перехода через 0.

Вот мой пример, регулирование ступенями по 100uS. 

zcd.GIF

Zero crossing DS3486M_capture 2ms.bmp

Zero crossing DS3486M_capture 5ms.bmp

Zero crossing DS3486M_capture 10us.bmp

Zero crossing DS3486M_capture 500us.bmp

Zero crossing DS3486M_capture1.bmp

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By Falconist
      Стыдно, но прошу помощи в таком мелком вопросе. Нужен симисторный регулятор большой мощности (пара кВт) с возможностью регулировки от практически ноля до практически 100%. Простейшие схемы, подобные такой:

      имеют такой существенный недостаток, как гистерезис. Т.е. при минимальном значении мощности на нагрузке происходит "подмаргивание". Причина этого явления мною проанализирована здесь: https://forum.cxem.net/index.php?/topic/15213-регулятор-мощности-паяльника/&do=findComment&comment=868800
      Диодный мост для тиристора ставить нежелательно, поэтому остается только симистор.
      Хорошо помню, что в какой-то из тем имелась схема симисторного регулятора мощности с компенсирующей цепью, исключающей это "подмаргивание", но найти ее уже третий день не получается.
      В Интернете "болтаются" всего две схемы симисторного диммера с корректирующими цепями: А)

      и Б)

      Отличаются они (за исключением применения разных диаков, что не существенно) только самими корректирующими цепями. VD1VD2R1 в схеме А) и VD5VD6R5C2 в схеме Б).
      Обе эти схемы я отсимулировал в мультисиме. Вроде обе работают практически одинаково. Но всё равно гложет сомнение в эффективности первой и второй. Конечно, мог бы спаять ту и другую и попробовать, но вдруг кто-то сразу подскажет, какая из них лучше в работе. А может быть, и какая-то третья...
      Диммер 2.ms14 Диммер 1.ms14
    • By XREH
      Появилась у меня задача добавить регулировку яркости светодиодов запитаных от драйвера LDH-45B-500
      обычно такого рода драйверы регулируются стандартным диммером 0-10В, но в данном случае либо PWM 0-8V либо аналоговое 0-1,3В(выше 1,3, но не более 8В считается 100%)
      Мне показалось проще сделать аналоговый вариант, набросал схему в falstad http://tinyurl.com/u6lplgv там всё работает: регулировка 0,13 - 1,67В. Но когда всё собрал регулировка получилась 0,9-2В что уже не входит в нужный диапазон.
      откуда начать копать?
      неуказанные на схеме комплектующие:
      стабилитрон BZX79-C22
      транзистор bc547c
      Источник питания диммера - постоянка 24В
       
       
       
    • Guest Андрей
      By Guest Андрей
      Доброго времени суток форумчане! Очень нужен ваш совет.
      Дано: светодиод 5 Вт питается от источника постоянного тока 700 мА. Всё хорошо. Возник вопрос о необходимости регулировки его яркости. Купил диммер, подключил к нему переменный резистор на 15 кОм, - и ничего, ноль реакции. Он даже не реагирует на подключение источника внешнего напряжения к тем же проводам (подключаю обычные батарейки). Что не так, что я делаю неправильно? Подскажите пожалуйста, очень хочу разобраться в этом.
    • By Merlok Life
      Хочу сделать монстр-машинку с двигателем rs550 с металлическим корпусом на ардуино.
      Подскажите как управлять мотором через ардуино нано? 
       
    • By Геннадий Быков
      Уважаемые электронщики и им сочувствующие!
      Хочу на даче собрать макет морского маяка в человеческий рост. Но для этого необходима схема управляющая светодиодами. Основное, схема должна иметь независимое питание(Солнечная панель) и быть слаботочной (5-9 вольт). Как вижу я. Маяк ориентировочно высотой 1,50-1,80 м. В маяке, с низу до верха 6 окошек (по одному 5мм светодиоду). И на верху сам маяк из 8-ми 0,5 ваттных светодиодов установленных по кругу. С наступлением темноты, включаются диоды на "1 этаже" и раз в 5-10 минут происходит действие. Диоды поэтажно (снизу вверх) начинают загораться (как будто кто-то поднимается вверх по ступеням) и после загорания самого верхнего окна, через пару секунд, включается маяк. Поочередно по кругу (эффект метеора), со скоростью 2-3 сек на круг, делает оборотов 10 и выключается. Потом в обратной последовательности гасятся окошки (светодиоды) сверху в низ и остаются два нижних, периодически и независимо включающиеся и выключающиеся (эффект присутствия). И вновь через 5-10 минут вышеописанное действие. Буду очень признателен любым советам, ссылкам, помощью. Немного умею паять, немного знаю Ардуино. Готов в разумных пределах спонсировать, разработку и сборку.
×
×
  • Create New...