Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.01.2023, 15:48   #991
chip
Member
 
Регистрация: 14.05.2016
Сообщений: 46
Вес репутации: 157
chip has much to be proud ofchip has much to be proud ofchip has much to be proud ofchip has much to be proud ofchip has much to be proud ofchip has much to be proud ofchip has much to be proud ofchip has much to be proud of
По умолчанию

Можно оставить один резистор 43кОм, но сразу предупреждаю долго он не проживет нужно 2-х ватный резистор или последовательно соединить 8шт. 0,25Вт по 5,3К или 4 шт. по 0,5 Вт по 11К и т.д

P.S.
Хотя я преувеличиваю, расчет показывает, что на резисторе 43 кОм будет рассеиваться примерно 1 Ватт тепла. Но все равно полностью решить проблему не получится. Дело в том, что чем синусоида ближе к нулю, тем меньше ток в цепи светодиода, тем нестабильней будет срабатывать оптрон. Так скажем пограничное состояние, проще принять эту точку за минимум яркости. Это проблема всех диммеров которые работают с переменкой 220В.

Последний раз редактировалось chip; 12.01.2023 в 17:47.
chip вне форума   Ответить с цитированием
Старый 13.01.2023, 09:48   #992
Михаил Лысков
Junior Member
 
Регистрация: 18.12.2022
Сообщений: 10
Вес репутации: 0
Михаил Лысков is an unknown quantity at this point
По умолчанию

Цитата:
Сообщение от chip Посмотреть сообщение
Можно оставить один резистор 43кОм, но сразу предупреждаю долго он не проживет нужно 2-х ватный резистор или последовательно соединить 8шт. 0,25Вт по 5,3К или 4 шт. по 0,5 Вт по 11К и т.д

P.S.
Хотя я преувеличиваю, расчет показывает, что на резисторе 43 кОм будет рассеиваться примерно 1 Ватт тепла. Но все равно полностью решить проблему не получится. Дело в том, что чем синусоида ближе к нулю, тем меньше ток в цепи светодиода, тем нестабильней будет срабатывать оптрон. Так скажем пограничное состояние, проще принять эту точку за минимум яркости. Это проблема всех диммеров которые работают с переменкой 220В.
Спасибо, буду пробовать уменьшать сопротивление. У меня сейчас запаяно два SMD резистора 1206 по 43к (по одному на ветке), что вместе 86к. Вроде не особо греются. Попробую сверху добавить ещё по одному. Тогда суммарное получится 21.5к на каждой ветке, что вместе 43к.
Михаил Лысков вне форума   Ответить с цитированием
Старый 16.01.2023, 06:55   #993
chip
Member
 
Регистрация: 14.05.2016
Сообщений: 46
Вес репутации: 157
chip has much to be proud ofchip has much to be proud ofchip has much to be proud ofchip has much to be proud ofchip has much to be proud ofchip has much to be proud ofchip has much to be proud ofchip has much to be proud of
По умолчанию

Каков результат, есть улучшения?
chip вне форума   Ответить с цитированием
Старый 16.01.2023, 10:19   #994
Михаил Лысков
Junior Member
 
Регистрация: 18.12.2022
Сообщений: 10
Вес репутации: 0
Михаил Лысков is an unknown quantity at this point
По умолчанию

Цитата:
Сообщение от chip Посмотреть сообщение
Каков результат, есть улучшения?
К сожалению не успел попробовать. Как попробую, обязательно отпишусь
Михаил Лысков вне форума   Ответить с цитированием
Старый 21.01.2023, 12:06   #995
Михаил Лысков
Junior Member
 
Регистрация: 18.12.2022
Сообщений: 10
Вес репутации: 0
Михаил Лысков is an unknown quantity at this point
По умолчанию

Цитата:
Сообщение от chip Посмотреть сообщение
Каков результат, есть улучшения?
Не помогло... Так же иногда возникает мигание. Особенно часто наблюдается на светодиодных лампах с диммируемым драйвером.... может конечно косяк в самих светильниках с али... Но странно, что то работает то не работает...

Есть идеи что ещё попробовать? Наверное нужно покупать мне осцилограф... А может поиграться значением периода таймера, которое сейчас 40?

P.S. Делаю ремонт в своей квартире с нуля и планирую весь свет на этих модулях делать... но что-то пока не очень выходит)
Михаил Лысков вне форума   Ответить с цитированием
Старый 21.01.2023, 22:20   #996
chip
Member
 
Регистрация: 14.05.2016
Сообщений: 46
Вес репутации: 157
chip has much to be proud ofchip has much to be proud ofchip has much to be proud ofchip has much to be proud ofchip has much to be proud ofchip has much to be proud ofchip has much to be proud ofchip has much to be proud of
По умолчанию

А снаббер установлен на симисторе?
chip вне форума   Ответить с цитированием
Старый 22.01.2023, 11:42   #997
Михаил Лысков
Junior Member
 
Регистрация: 18.12.2022
Сообщений: 10
Вес репутации: 0
Михаил Лысков is an unknown quantity at this point
По умолчанию

Цитата:
Сообщение от chip Посмотреть сообщение
А снаббер установлен на симисторе?
Снаббера нет
Михаил Лысков вне форума   Ответить с цитированием
Старый 22.01.2023, 12:31   #998
chip
Member
 
Регистрация: 14.05.2016
Сообщений: 46
Вес репутации: 157
chip has much to be proud ofchip has much to be proud ofchip has much to be proud ofchip has much to be proud ofchip has much to be proud ofchip has much to be proud ofchip has much to be proud ofchip has much to be proud of
По умолчанию

Возможно из-за отсутствия снаббера эта проблема
chip вне форума   Ответить с цитированием
Старый 12.07.2023, 16:55   #999
worker
Junior Member
 
Регистрация: 12.07.2023
Сообщений: 4
Вес репутации: 0
worker is an unknown quantity at this point
По умолчанию

Товарищи здравствуйте!

у меня идеи кончились, какая-то магия или я туповат ((

Ардуино Pro Nano (кЕтай) 328P 32k 5v

схема детектора 0 по схеме автора
симистр без конденсатора и резистора между 1 и 2 контактом

Вот код:
PHP код:
#include "CyberLib.h" //Библиотека от Cyber-Place.ru
//volatile uint8_t tic, Dimmer1;
volatile int ticDimmer1,Dimmer2half;
uint8_t data;
  
int up   0;
  
int down 0;
  
int up1   0;
  
int down1 0;
//  int half = 0;
//  int Dimmer2 = 0;
  
  

void setup() 

  
//half = 0;
  //tic   = 0;
  
D5_Out//Настраиваем порты на выход
  
D5_High;
  
D4_Out;
  
D4_Low//установить на выходах низкий уровень сигнала
  //D4_High;
  
pinMode(2INPUT_PULLUP);
  
//digitalWrite(2, HIGH);
  
D2_In//настраиваем порт на вход для отслеживания прохождения сигнала через ноль  
  
    
StartTimer1(halfcycle40); //время для одного разряда ШИМ
    
StopTimer1(); //остановить таймер
    
Serial.begin(115200);
    
Serial.println("Start");
    
Dimmer1 100;
//CHANGE – прерывание вызывается при любом изменении значения на входе; 
//RISING – вызов прерывания при изменении уровня напряжения с низкого (Low) на высокий(HIGH) 
//FALLING – вызов прерывания при изменении уровня напряжения с высокого (HIGH) на низкий (Low) 
    
attachInterrupt(0,detect_upLOW);  // настроить срабатывание прерывания interrupt0 на pin 2 на низкий уровень

}
//********************обработчики прерываний*******************************
void halfcycle()  //прерывания таймера 
                

                
tic++;  //счетчик  
                
if(Dimmer1 tic D4_High//управляем выходом
                
}

void  detect_up()  // обработка внешнего прерывания. Сработает по переднему фронту
                
{  
                 
half tic;
                 
Dimmer2 Dimmer1;
                 
up1 up;
                 
down1 down;
                 
tic=0;             //обнулить счетчик
                 
++up;
                 if (
up == 10000) {up 0;}
                 
ResumeTimer1();   //запустить таймер
                 
attachInterrupt(0detect_downHIGH);  //перепрограммировать прерывание на другой обработчик

                 
}  

void  detect_down()  // обработка внешнего прерывания. Сработает по заднему фронту
                 
{   
                 
half tic;
                 
StopTimer1(); //остановить таймер
                 
D4_Low;  //логический ноль на выходы
                 
Dimmer2 Dimmer1;
                 
up1 up;
                 
down1 down;
                 
tic=0;       //обнулить счетчик
                 
++down;
                 if (
down == 10000) {down 0;}
                 
attachInterrupt(0detect_upLOW); //перепрограммировать прерывание на другой обработчик
                 
                 

//*************************************************************************
void loop() 
{
Start
  
if   (Serial.available()) {
                             
Dimmer1 Serial.parseInt();
                             
Serial.print("half ");
                             
Serial.println(half);
                             
Serial.print("Dimmer1 ");
                             
Serial.println(Dimmer1);
                             
Serial.print("Dimmer2 ");
                             
Serial.println(Dimmer2);
                             
Serial.print("down ");
                             
Serial.println(down1);
                             
Serial.print("up ");
                             
Serial.println(up1);
                             
Serial.println();
                             
half 0;
                             }
End

а вот вывод из COM порта:

com порт вывод


Start
half 0
Dimmer1 10
Dimmer2 100
down 681
up 681

half 242
Dimmer1 200
Dimmer2 200
down 1525
up 1525

half 0
Dimmer1 200
Dimmer2 200
down 1951
up 1951

half 0
Dimmer1 200
Dimmer2 200
down 2239
up 2239

half 0
Dimmer1 200
Dimmer2 200
down 2546
up 2546

half 0
Dimmer1 200
Dimmer2 200
down 2922
up 2922
[свернуть]


регулятор не работает. Можно конечно найти значение Dimmer1 при котором лампа будет моргать или погаснет. После запуска горит на 100%
и я не понимаю, почему переменная half в 95 из 100 попыток вывода = 0!

Но если закоментить:
//tic=0; //обнулить счетчик

в функции: detect_down()

то вывод из переменная half всегда будет иметь значение 239-240

COM порт

Start
half 241
Dimmer1 77
Dimmer2 100
down 338
up 338

half 241
Dimmer1 3
Dimmer2 3
down 8481
up 8482

half 242
Dimmer1 7
Dimmer2 3
down 9127
up 9127

half 242
Dimmer1 230
Dimmer2 7
down 9572
up 9572
[свернуть]

Последний раз редактировалось worker; 12.07.2023 в 17:03.
worker вне форума   Ответить с цитированием
Старый 13.07.2023, 12:23   #1000
chip
Member
 
Регистрация: 14.05.2016
Сообщений: 46
Вес репутации: 157
chip has much to be proud ofchip has much to be proud ofchip has much to be proud ofchip has much to be proud ofchip has much to be proud ofchip has much to be proud ofchip has much to be proud ofchip has much to be proud of
По умолчанию

А оригинальный код не пробовали? С оригинальным кодом работает?
chip вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 66 (пользователей: 0 , гостей: 66)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 02:43. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика