Nick  Iskrov

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

2 сообщения в этой теме

Nick Iskrov    0

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

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

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

При подключении лампы, напряжение на нагрузке = 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

Изменено пользователем Nick Iskrov
редактировал 10 строку кода (D2_In;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для регулирования "скважности" на синусе нужен более точный детектор перехода через 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: Falconist
      Хотел посоветоваться о направлении продвижения к результату. Из битого электрочайника вынул рабочий нагреватель и хочу использовать его, как электроплитку для нижнего подогрева.

      Мощность составляет 2,2 кВт. Для нагрева воды это хорошо, но для электроплитки - сильно избыточно. Мощность лабораторных электроплиток примерно равных размеров составляет всего порядка 400...600 Вт. В одной из тем (лениво искать) проскочило сообщение, что для нагрева такой цацки до примерно 400°С, достаточно переменного напряжения всего 50...60 В. Не верить этому нет никакого основания, но вот ЛАТРа у меня нет и не предвидится. Придется обходиться электронными средствами. И вот тут я погряз в размышлениях, по какому пути идти целесообразнее. Просматриваются несколько направлений:
      I. Непосредственно питание от сети 230 В
      1) Банальный симисторный фазо-импульсный диммер. Плюс - простота реализации. Минус - будет "срать" в сеть не по-детски. Все-таки, нужно оставить всего 1/4...1/5 мощности от 2200 Вт. Еще один относительный минус - задумываюсь над термостабилизацией, но вплотную ее схемотехнику (совместить "бульдога с носорогом", т.е., термодатчик с фазо-импульсным регулятором) еще не продумывал.
      2) Релейное управление (пропуск на нагрузку пачек полуволн сетевого напряжения, как в моей схеме регулятора для паяльника). Плюсы - невысокая сложность реализации уже отработанной схемы и легкость "скрещивания" с термостабилизацией. Минус - будет помигивание осветительных ламп, подключенных к той же ветке проводки. Для паяльника незаметно, а вот для 2200 Вт - уже достаточно заметно. Будет сильно раздражать, причем, не меня, а близких. "Лесопилку" включать, сами понимаете, нежелательно.
      3) Схема от tauP10, подключающая нагрузку к сети симметрично в начале и в конце полуволн. Плюс - используются относительно низковольтные участки сетевой синусоиды, что снижает токовую нагрузку на регулирующий элемент. Минусы - неапробированность схемы, а значит, возможные сложности в "скрещивании" ее с термостабилизацией; и все равно будут "высеры" помех в сеть.
      II. Питание нагрузки, развязанное от сети 230 В.
      1) Преобразователь типа Тащибры. Плюсы - явно не просматриваются, т.к. нет особого смысла в изоляции нагревателя, а схема достаточно сложная для 400...600 Вт, что является в определенной мере минусом. Сопряжение с термостабилизацией относительно несложное, как по релейному принципу, так и по фазо-импульсному. Помехзозащитный дроссель нужен, но не такой "слоноподобный", как для чисто симисторного регулятора.
      Возможно, какие-то "тропки" и плюсы/минусы упущены.
      Схем не прошу, т.к. сам составлю любые вменяемые. По всем четырем описанным выше направлениям. Просто интересно мнение людей, возможно, уже сталкивавшихся в подобными задачами.
    • Гость Дмитрий
      Автор: Гость Дмитрий
      Доброго времени суток.
      Помогите найти схему (вернее ссылку) на самодельный диммер.
      Года три назад тому, наткнулся в сети на схему сенсорного диммера с возможностью управления с пульта ПДУ.
      Вся прелесть в том, что на плате было несколько сенсорных площадок, и освещение можно регулировать двигая пальцем по площадкам вверх/вниз.
      Еще видео работы было выложено.
      Схема была то ли на PIC то ли на AVR, уже не помню.
      К моему сожалению, ссылка была утеряна.
      Прошу помочь с поиском (вернее не с поиском, потому как Google уже весь перерыт со всеми возможными комбинациями тегов) ссылки на схему.
      Большое спасибо!
    • Автор: 5670721
      Доброго времени!
      Для Ардуино мне необходимо написать программу управления тремя сервоприводами и выводом на дисплей абсолютного угла наклона по одной оси.
      Два сервопривода должны управляться потенциометрами, третий кнопкой (два положения сервопривода).
      Ну и помочь мне все это спаять ) Поэтому желательно, чтобы Вы находились в Москве или Подмосковье.
      Так же я слышал про накопление ошибки при работе гироскопа-акселерометра, очень желательно убрать эту проблему.
      Если, конечно, Вы не предложите более подходящий прибор для измерения угла наклона.
      Компоненты все куплены.
    • Автор: DmitrySinichnikov
      Добрый день! 
      Возникла необходимость собрать небольшую солнечную зарядную станцию на 10Ватт (5В + 2А). 
      Предыстория)
      Измерив дома в тусклом дневном свете показания солнечных панелей различных номиналов получил, что при таком "дешманском" освещении панели выдают примерно 25% своей мощности. В идеале получается собрав станцию на 40Ватт (5В + 8А) получу, практически всегда, необходимую мне мощность, но это немного дороговато, поэтому решил увеличение сделать всего в 2 раза, т.е. 20Ватт. В дополнение хотел сделать еще автонаведение на источник света на Arduino Nano + 2 самых маленьких сервопривода + 4-5 датчиков света (светорезисторов).
      Материалы:
      Солнечные панели, 2шт. по 10Ватт: https://ru.aliexpress.com/item/1PC-X-Solar-Panel-18V-10W-0-55A-Mini-PET-monocrystalline-polycrystalline-cell-charge-for-6V/32830626173.html?spm=a2g0s.13010208.99999999.261.456e3c00FiwKM4&dp=57f918cf76770fd0531b82d82580678d&af=137322&cv=47843&afref=&mall_affr=pr3&aff_platform=aaf&cpt=1526974015583&sk=VnYZvQVf&aff_trace_key=2158f23ac0544faa9b76b2baf359b984-1526974015583-00842-VnYZvQVf&terminal_id=12cd683515fe4011a796328dfe1354a0 Преобразователь для зарядки устройств по USB: https://ru.aliexpress.com/item/5V-2A-USB-charge-regulator-controller-with-extend-cable-Junction-box-for-DIY-solar-charger-mobile/32818473353.html?spm=a2g0s.13010208.99999999.264.456e3c00FiwKM4 Арудинка: https://ru.aliexpress.com/item/1pcs-ATMEGA328P-Pro-Mini-328-Mini-ATMEGA328-5V-16MHz-for-Arduino-new-Free-shipping/32655809087.html?spm=a2g0s.9042311.0.0.c97a33ed40ocfj Преобразователь питания для ардуинки: https://ru.aliexpress.com/item/5pcs-DC-DC-Step-Down-Converter-Module-LM2596-DC-4-0-40-to-1-3-37V/32656182588.html?spm=a2g0s.9042311.0.0.c97a33ed40ocfj Сервоприводы: https://ru.aliexpress.com/item/10pcs-lot-lofty-ambition-SG90-9g-Mini-Micro-Servo-for-RC-for-RC-250-450-Helicopter/32680024453.html?spm=a2g0s.9042311.0.0.274233edcDMM7A&dp=46be88b50896b778bb90ac285cd2a18a&af=137322&cv=47843&afref=&mall_affr=pr3&aff_platform=aaf&cpt=1526974331870&sk=VnYZvQVf&aff_trace_key=c04a8ff14f2b4dd49472a332e76299ee-1526974331870-00375-VnYZvQVf&terminal_id=12cd683515fe4011a796328dfe1354a0 Теперь собственно вопросы:
      Будет ли преобразователь питания на для ардуинки повышать ампераж за счет уменьшения вольтажа? Как настроить приоритет потребления устройствами при недостатке мощности? Интересует приоритет на работу ардуинки и сервоприводов, что бы всегда поворот был на солнце, а потом шла зарядка. Обусловлено тем, что поворот будет применяться раз в 1-5 минут и по времени занимает 1-2 секунды, поэтому эту операцию необходимо полностью обеспечить, а все остальное пустить на зарядку устройств.  П.С. Если есть какая-то схема, что бы не городить бутерброды из модулей, прошу поделиться)
    • Автор: Михаил Савин
      Всех приветствую.
      Передо мной возникла следующая задача:
      1) Есть питание сети 220 Вольт. Как только питание пропадает необходимо что бы запустился отсчет времени (8 часов) и после подать +12 вольт от Аккумуляторной батареи на клемму другого устройства (Токи маленькие, исключительно сигнал).
      2) Подавать напряжение +12 от АКБ в течении 1 часа
      3) После 1 часа проверить появилось ли напряжение сети 220 вольт, если нет, то перестать подавать напряжение +12 Вольт на 8 часов. И так по кругу.
      4) Необходим постоянный опрос сети 220 вольт. В любой момент данного алгоритма, как только появится напряжение в сети 220 вольт подача сигнала +12 вольт на клемму устройства должна быть приостановлена.
      Я предполагаю что такую задачу можно организовать на Arduino.
      Возможно можно сделать другим способом.
      Желательно что бы в будущем, по необходимости можно было изменить задержки времени
      Желательна индикация работы в виде светодиодов.
      Для питания всей системы предусмотрены постоянные +12 Вольт.
      Нужен человек кто изготовит подобное устройство в СПб
      Или тот, кто может составить список необходимых элементов, написать код и инструкцию по подключению что бы можно было собрать его самому удаленно.