Например TDA7294

Форум РадиоКот • Просмотр темы - Диммер, чертовщина на выходе MOC (имеется 2-х кан. осцил.)
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Вт июл 29, 2025 02:20:06

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 67 ]    , , , 4
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Диммер, чертовщина на выходе MOC (имеется 2-х кан. осцил
СообщениеДобавлено: Пн мар 14, 2011 09:45:00 
Вымогатель припоя
Аватар пользователя

Карма: 4
Рейтинг сообщений: 16
Зарегистрирован: Пн мар 23, 2009 09:25:58
Сообщений: 651
Откуда: Самара
Рейтинг сообщения: 0
Собственно с трансформатора приходит синусойда, 17 вольт. Дальше по схеме. На вывод МК через делитель идут полуволны с частотой 100 Гц. Учитывая что для МК ноль начинается ниже 1,7 вольта, я внес поправки. Я именно:

Подключил 2-х канальный осциллограф. Один щуп на "сеть" второй на вывод который управляет оптопарой. Изменил прошивку так чтобы при детекции ноля МК выдавал импульс ны вывод оптопары:

Изображение

Т.е. МК детектирует ноль на 800 мкс раньше ноля реального! На основании этого внес поправки в интервал таймера Т1. Который и считает время до открытия симистора. Т.е. просто +800 мкс. Поэтому считаю что детекция нуля идеальная. Но может я не прав??? Потому что рывки при включении... не знаю уже прям...

Есть у меня последних 2 идеи:
1.Использовать последний 3-й таймер ATMega8. Им отсчитывать интервал 0,01 сек. (полупериод) +/- 20%. Если предывание попадает в этот интервал, по открываем симистор, нет - это помеха. Хотя какая к черту помеха если на постоянной яркости горит СТАБИЛЬНО!!!!!
2. Отключать прерывания от TSOP в момент плавного старта. Но как тогда быть при удержании кнопки??? При этом тоже моргания проскакивают.

_________________
Нельзя всё знать, достаточно понимать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Диммер, чертовщина на выходе MOC (имеется 2-х кан. осцил
СообщениеДобавлено: Пн мар 14, 2011 09:51:58 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2116
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18403
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
для детекции нуля у вас не совсем кошерная схема. рекомендую от делителя отказаться, подав переменку через резистор 20 килоом прямо на вывод МК. в этом случае вы будете иметь на пине не синусоиду, а прямоугольный импульс с довольно крутым фронтом. лучше всего для такой синхронизации подходит вход встроенного компаратора, но и с INTx результат удовлетворительный.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Диммер, чертовщина на выходе MOC (имеется 2-х кан. осцил
СообщениеДобавлено: Пн мар 14, 2011 10:15:50 
Вымогатель припоя
Аватар пользователя

Карма: 4
Рейтинг сообщений: 16
Зарегистрирован: Пн мар 23, 2009 09:25:58
Сообщений: 651
Откуда: Самара
Рейтинг сообщения: 0
Спасибо за совет. Это как то повлияет на проблемы со случайным морганием? Причем иногда моргает, иногда нет.

P.S. И ещё, простите конечно, но опять же я не понимаю... Почему все говорят про плохую детекцию нуля???? Вновь подчеркну что при постоянной яркости, например 30% или 50%, лампа горит без сбоев!!! Какого она тогда это делает???? Т.е. проблем с синхронизацией с сетью вроде бы нет. Тронешь пульт - начинаются проблемы. Не трогаешь - прекрасно горит на установленной яркости. Т.е. явно перекрытие по "прерываниям". Но где именно и в какой момент какое то из них отключить... мозгов не хватает.

P.S. Простите что гну свою линию. Буду рад любой помощи

_________________
Нельзя всё знать, достаточно понимать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Диммер, чертовщина на выходе MOC (имеется 2-х кан. осцил
СообщениеДобавлено: Вт мар 15, 2011 08:31:55 
Вымогатель припоя
Аватар пользователя

Карма: 4
Рейтинг сообщений: 16
Зарегистрирован: Пн мар 23, 2009 09:25:58
Сообщений: 651
Откуда: Самара
Рейтинг сообщения: 0
Заработало!!! Спасибо urry с форума kazus.ru и Goodefine с forum.cxem.net

Код:
// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
  {
  OCR1A = nagruzka[status];
  OCR1B = nagruzka[status]+200;
  TCNT1 = 0;      // сбросили таймер
  //GICR| = 0x80; // запретили прерывание INT0 // GIFR = 0x10000000
  GICR&=~(1<<6);  // запретили прерывание INT0 // GIFR = 0x10000000
  }
...
// Timer 1 output compare A interrupt service routine
interrupt [TIM1_COMPA] void timer1_compa_isr(void)
  {
  TRIAC_PIN = 0;    // открыли симистор
  }
 
// Timer 1 output compare B interrupt service routine
interrupt [TIM1_COMPB] void timer1_compb_isr(void)
{
 TRIAC_PIN = 1;    // вернулись в режим ожидания
 GIFR|=(1<<6);     // сбросили флаг прерывания - Флаг сбрасывается ЕДИНИЦЕЙ
 GICR|=(1<<6);     // разрешаем прерывание INT0.
}
...
if (cmd == 0b11011000) {        // кнопка "TV" - вкл/выкл диммера
       GICR&=~(1<<7);                 // запретили прерывание INT1 (от TSOP) // GIFR = 0x01000000
       if (status == 0) {
        soft_on ();                   // 100% мощности
        }
       else {
        soft_off();                  // плавно выключаем
       };
       GIFR|=(1<<7);                 // сбросили флаг прерывания - Флаг сбрасывается ЕДИНИЦЕЙ
       GICR|=(1<<7);                 // разрешаем прерывание INT1
      }

_________________
Нельзя всё знать, достаточно понимать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Диммер, чертовщина на выходе MOC (имеется 2-х кан. осцил
СообщениеДобавлено: Пт апр 01, 2011 10:03:14 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Пт фев 05, 2010 20:47:51
Сообщений: 38
Рейтинг сообщения: 0
Уважаемые коты, помогите разобраться с теорией управления нагрузкой через симистор, у меня проект на ПИКе 12ф675 .....
я получаю через вход INT0 проход через ноль. дальше у меня открытия и закрытия симистора
примерно так это что бы получиться 50% мощности
Код:
// ОБРАБОТКА ПРЕРЫВАНИЙ
  void interrupt()
  {
  if(INTCON.INTF){
  counter++;
if (counter>0) {Delay_us(925);GP4_bit=1;counter=0;Delay_us(500);  GP4_bit=0;}
  OPTION_REG.INTEDG =~ OPTION_REG.INTEDG;
  INTCON.INTF  = 0;
  }
 }

выглядит это в Proteus таким образам Изображение


помогите пожалуйста с режимами 20% нагрузки 40%,60%, 80% и 100%...
заранее спасибо


Вложения:
675.JPG [74.41 KiB]
Скачиваний: 918

_________________
http://roma4ka.at.ua/
Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 67 ]    , , , 4

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y