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...

  • Сообщения

    • 90 амперный можно и питью амперами заряжать... 9а платка может и отдаст...но при наличьи весьма экстравагантного вентилятора...
    • Решил попробовать галлий-нитрид В высокие  частоты мне не надо, мне надо в маленькую задержку выходного каскада.
    • Примерно в эпоху Августа получает развитие столь важное направление военной медицины, как санитария – римляне и так-то были чистюлями, ну а в военном лагере при большом скоплении людей на ограниченной территории санитарные правила должны были соблюдаться неукоснительно. Здоровье легионера, а следовательно, и его возможность незамедлительно выполнить приказ, стояли на первом месте. Офицеры проверяли качество поставляемых продуктов и воды, учитывались все мелочи – туалеты, удобство и чистота одежды, ветеринарная служба; всё это находилось в ведении префекта лагеря. Гигиенические требования к обустройству лагеря можно встретить у многих латинских авторов – Флавий Вегеций Ренат сообщает нам, что палатки необходимо ставить на сухом и возвышенном месте, в случае холодов требуется запас тёплой одежды для солдат, особое внимание во избежание проблем с кишечником следует обратить на чистоту воды. Раненые и больные обязаны отдыхать, а следовательно, лазареты надо устраивать как можно дальше от шумных легионных мастерских, где чинятся доспехи и оружие. 
    • Это прямой путь к звукодрочеству. ИМХО. Блэт. рубль за ведро
    • Лабораторный БП с регулировкой напряжения 0-50V и тока 0-5A. https://www.gadgetronicx.com/bench-lab-power-supply-circuit/
    • Нет, все выключаю, если есть добавка конкретно выбивает. Подозрение есть на соседей, уж очень много сверлили в местах проводки... :), но пока не знаю как гарантированно засечь. Странности со счетами от энергосети есть, скачкообразные какие-то...

  • Модуль датчика атмосферного давления BME280 BMP280

  • Similar Content

    • By IGRO LINK
      Достался даром электродвигатель ЭРМ-6М постоянного тока. Никак не могу заставить вращаться вал в разные стороны. Вращается только против часовой.
      Проблем с подключением вроде бы нету т.к есть моторчик от Momo Racing'a и он работает как положено. Может
      Подключен через драйвер двигателя BTS7960 к ардуино леонардо. 
    • By ITicDigger
      Сломалась плата управления пылесосом SC4752 и теперь передо мной дилемма: 
      купить новую продолжать использовать без платы (напрямую) Дилеммы бы не было если бы в одном из сервисных центров, где выносили приговор моей старой плате не посоветовали мне вместо платы "на худой конец использовать обычный диммер". Однако Википедия говорит что юзать электронный а не автотрансформаторный диммер для двигателя не стоит так как тот выдаёт не синусоиду а усечённую синусоиду (читать здесь со строчки "Важно помнить, что большинство электронных диммеров выдают на выходе не синусоидальный сигнал"). Диммер было решено отбросить а за одно теперь под сомнением адекватность использования собственно платы управления. Ведь если там внутри для управления используется аналог электронного диммера то она тоже будет убивать движок. Ну и собственно вопросов несколько:
      Убивает ли плата управления движок так же как электронный диммер? Что убьёт движок быстрее: работа на плате управления или работа без неё постоянно на полную мощность? Сейчас в пылесосе стоит близкий к оригиналу движок  VCM-K70GU на 1900 W с пометкой made in korea который полтора года назад мучительно долго искал но нашёл.
      прикладываю модуль управления (на всякий пожарный). На месте регулятора пусто потому что он был раздроблен кнопкой включения и заменён мной на пермычку года 4 назад.
       


    • By Serega4789
      Добрый день!  Пытаюсь разобраться в теории частотного электропривода.
      Ремонтировал Частотник в своём цеху retuo hl3000. И lenze smd. 
      Оба работа запустилась, только ленз разграблен
      Нет корпуса и кондеров и блока памяти, но у него схож с восьмикрутом блок силового управления. 
      Решил по лучше изучить программу и выходные сигналы с восьмикрут, собрал схему в протеусе. 
      Картинки с каждого канала управления идут сплошной чередой
      Импульсов описывающий полный синус вместо привычной пачки импульсов на каждый ключ.
      Есть ли этих способов управления названия или оба они скалярные только реализованы по разному?
       С последним более менее понятно, но теорию первого восьмикрут который не понял ещё.  
      Получается по заданной формуле для каждого ключа приходит
      Полноценная синусоида в виде шимм,  для каждой фазы верхний и Нижний ключ получают синус с инверсией или если
      Добавить фильтр синусоида в противофазе, правильно я понял?
    • By Стас73
      Доброй ночи, уважаемые.
      Прошу Вашего совета по следующей куче проблем для меня, т.к. не соображаю в электронике, схемах, резисторах и подобному, но дружу с компом и есть желание сделать определенный механизм, но пока нет наставления на путь истинный от специалистов)
      Задача состоит в следующем - хочу мотор стеклоочистителя подключить к Ардуино, но управлять им необходимо с кнопки. Шилд, например, который обрабатывает сигнал нажатия на кнопку (допустим кнопка записи), при ее активации, нажимаю на другую кнопку, которая дает команду движку вращаться по часовой стрелке. Отпускают ее, моторчик останавливается. Другая кнопка, вращение в противоположную сторону. Т.е. записал последовательность и продолжительность вращений,  нажимаю вновь на кнопку запись и мои действия сохраняются. Далее на 4 кнопку жму и моя игра с моторчиком автоматически воспроизводится. Если такое выполнимо с помощью плат и шилдов без доп программирования логики, то буду ОЧЕНЬ  признателен если расскажете как вкратце это осуществить или кинете ссылки к примеру на Али с нужными товарами. Если легковыполнимо, то в будущем наверное уже разберусь,  как обойтись без нажатия на 4 кнопку (воспроизведения записанных действий) и запускать этот процесс, подключив датчик движения или звука.
      Если необходимо описывать логику или создавать типа какого-то протокола, что шилд (?) умел понимать, что я от него хочу, то подскажите среду разработки для неба, что б там по минимуму было наворотов) В принципе с основами c++ для Ардуино скорее всего придется ознакомиться. 
      Заранее спасибо!
    • By Serega4789
      Добрый день всем! Собрал 3 фазный плавный пуск на модулях ssr-40 и ардуино ,заменил на них mov3063 на moc3051 иначе не работало, программу накидал для ардуино, вобщем управляю ими широкой пачкой импульсов от   от угла открытия до перехода через ноль , ШИМ программный от таймера 40 МКС 50 процентов заполнение в итоге, не слишком ли быстрый ШИМ ? Успевает ли за ним светодиод оптрона ?  В даташите не нашел скорость переключения, ШИМ использую т.к.
      Индуктивная нагрузка ,и когда мотор набирает обороты при дальнейшем уменьшении угла его трясет, под нагрузкой этого нет все ровно, обошел это программно 255 максимальный угол ,от130 у.е угла разгон в течение 5 у.е. дальше 2-3 секунд , далее быстрым темпом сокращение угла и таким образом , плавный пуск..
      Может с нормальной частотой ШИМ не надо будет этой части кода, ???
       
×
×
  • Create New...