Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 06.12.2010, 23:15  
CodeNameHawk
Вид на жительство
 
Регистрация: 21.10.2009
Сообщений: 343
Сказал спасибо: 181
Сказали Спасибо 64 раз(а) в 56 сообщении(ях)
CodeNameHawk на пути к лучшему
По умолчанию Re: Задержки при плавной регулировке. Диммер с ДУ

Сообщение от mr_smit Посмотреть сообщение
Прошиваю проц и запускаю макетку. Вот и вся отладка.
С такой "отладкой" далеко не уедите. Это просто проверка, работает - не работает.
Реклама:
CodeNameHawk вне форума  
Непрочитано 07.12.2010, 10:49  
pinco
Гражданин KAZUS.RU
 
Регистрация: 04.04.2007
Сообщений: 941
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
pinco на пути к лучшему
По умолчанию Re: Задержки при плавной регулировке. Диммер с ДУ

Еще может быть наложение 50 Гц сети из синхронизации на примерно такие же периоды обработки прерывания и прпочее , то есть где-то есть что-то типа "биений" времен выполнения проги с сетевыми синхронизациями - лечение в тщательном отлове времен выполнения кусков прог - где в проге такие промежутки формируются и исключение этого , или ввод еще больше привязки прерываний проги к синхронизации из сети .
__________________
Короче асма кода нет !
pinco вне форума  
Непрочитано 07.12.2010, 10:57  
pinco
Гражданин KAZUS.RU
 
Регистрация: 04.04.2007
Сообщений: 941
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
pinco на пути к лучшему
По умолчанию Re: Задержки при плавной регулировке. Диммер с ДУ

Еще может быть наложение 50 Гц сети из синхронизации на примерно такие же периоды обработки прерывания и прпочее , то есть где-то есть что-то типа "биений" времен выполнения проги с сетевыми синхронизациями - лечение в тщательном отлове времен выполнения кусков прог - где в проге такие промежутки формируются и исключение этого , или ввод еще больше привязки прерываний проги к синхронизации из сети .
__________________
Короче асма кода нет !
pinco вне форума  
Непрочитано 07.12.2010, 11:02  
pinco
Гражданин KAZUS.RU
 
Регистрация: 04.04.2007
Сообщений: 941
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
pinco на пути к лучшему
По умолчанию Re: Задержки при плавной регулировке. Диммер с ДУ

Это биение между 50 Гц сети и прерываниями в некоторые моменты когда это совпадает , или кусков проги в моменты синхро из сети - лечение - либо все еще больше засинхронизировать , либо найти где эти куски проги и изменить времена их выполнения
__________________
Короче асма кода нет !
pinco вне форума  
Непрочитано 07.12.2010, 15:43  
CodeNameHawk
Вид на жительство
 
Регистрация: 21.10.2009
Сообщений: 343
Сказал спасибо: 181
Сказали Спасибо 64 раз(а) в 56 сообщении(ях)
CodeNameHawk на пути к лучшему
По умолчанию Re: Задержки при плавной регулировке. Диммер с ДУ

Сообщение от mr_smit Посмотреть сообщение
Прошиваю проц и запускаю макетку. Вот и вся отладка.
Это трудно отладкой назвать, просто получается проверка работает - не работает.
Сообщение от mr_smit Посмотреть сообщение
Стабилитрона пока в наличии нет. Поэтому схему не изменял.
У вас, в схеме, R6 практически не работает.
Вместо него поставьте два резистора и со средней точки подавайте на проц. Подобрав их сопротивления так, чтобы на средней точке было меньше 4.5 вольт, стабилитрон будет ненужен.
CodeNameHawk вне форума  
Непрочитано 07.12.2010, 15:44  
CodeNameHawk
Вид на жительство
 
Регистрация: 21.10.2009
Сообщений: 343
Сказал спасибо: 181
Сказали Спасибо 64 раз(а) в 56 сообщении(ях)
CodeNameHawk на пути к лучшему
По умолчанию Re: Задержки при плавной регулировке. Диммер с ДУ

Сообщение от mr_smit Посмотреть сообщение
Прошиваю проц и запускаю макетку. Вот и вся отладка.
Это трудно отладкой назвать, просто получается проверка работает - не работает.
Сообщение от mr_smit Посмотреть сообщение
Стабилитрона пока в наличии нет. Поэтому схему не изменял.
У вас, в схеме, R6 практически не работает.
Вместо него поставьте два резистора и со средней точки, через R5 подавайте на проц. Подобрав их сопротивления так, чтобы на средней точке было меньше 4.5 вольт, стабилитрон будет ненужен.
CodeNameHawk вне форума  
Непрочитано 14.03.2011, 16:47  
mr_smit
Временная регистрация
 
Аватар для mr_smit
 
Регистрация: 14.09.2009
Сообщений: 87
Сказал спасибо: 6
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
mr_smit на пути к лучшему
Вопрос Re: Задержки при плавной регулировке. Диммер с ДУ

Вновь взываю к помощи. Все попытки на протяжении этих 3 месяцев закончились неудачно. Так и не удалось добиться плавного включения. Проскакивают непонятные моргания На текущей яркости горит без проблем. Моргает только при плавном изменении. Причем даже когда кнопка на пульте давным давно отпущена...

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

Функция плавного включения:
Код:
void soft_on () {
 TCCR1B=0x02;                                           
 while (status‹=98) {
  status++;          
  OCR1A = nagruzka[status];
  OCR1B = nagruzka[status]+100;
  delay_ms(delay_);
  sprintf(cnt,"%u",status);          // преобразование "яркости" в строку
  put_string(20, 40,cnt, 0x07E0, 3);  // выводим на экран
 };
 status = 98;
 TCCR1B=0x00;                
 TRIAC_PIN = 0;                // полностью включили 
}
Задержек в прерывании нет:
Код:
// 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;    // вернулись в режим ожидания
}


Вот снял видео:
Видео:


Может "биения" прерываний от пульта с сетью 50 Гц, но как от этого избавиться не знаю. В общем уже всю голову себе сломал.
Вложения:
Тип файла: rar Dimmer.rar (11.0 Кб, 94 просмотров)
mr_smit вне форума  
Непрочитано 14.03.2011, 16:54  
mr_smit
Временная регистрация
 
Аватар для mr_smit
 
Регистрация: 14.09.2009
Сообщений: 87
Сказал спасибо: 6
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
mr_smit на пути к лучшему
Вопрос Re: Задержки при плавной регулировке. Диммер с ДУ

На соседнем форуме предложили отключать иногда прерывание от INT0.
Код:
// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
  {
  TCNT1 = 0; // сбросили таймер
  GICR = (0‹‹INT0); // запретили прерывание INT0.
  }
// 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 = (0‹‹INTF0); // сбросили флаг прерывания
 GICR = (1‹‹INT0);  // разрешаем прерывание INT0.
}
А так же использовать компаратор для детекции ноля. Придумал схему (во вложении). Насколько она правильна? Просто ноль на вывод подавать нельзя наверное? Компаратор не будет в таком случае работать? 0,05-0,1 вольт наверное надо, но где их взять? На выходе трансформатора 17 вольт.
Код:
// Analog Comparator interrupt service routine
interrupt [ANA_COMP] void ana_comp_isr(void)
{
  TCNT1 = 0; // сбросили таймер
  GICR = (0‹‹INT0); // запретили прерывание INT0.
}
Миниатюры:
Нажмите на изображение для увеличения
Название: Компаратор1.jpg
Просмотров: 53
Размер:	111.6 Кб
ID:	19719  

Последний раз редактировалось mr_smit; 14.03.2011 в 16:56.
mr_smit вне форума  
Непрочитано 14.03.2011, 17:01  
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию Re: Задержки при плавной регулировке. Диммер с ДУ

Имхо, Вы слишком смело в основном цикле оперируете OCR1A, OCR1B.
Представьте, что в момент изменения, ну скажем, обнулили или перенесли эти значения, происходит прерывание таймера - что тогда будет?
Я бы на вашем месте добавил 2 дополнительных переменных и менял бы их - а перенос в реальные регистры из них в OCR1A, OCR1B - по факту срабатывания прерывания - ну, скажем, в момент перехода через 0.
Так, не вчитываясь в текст - совет.
__________________
warez
urry вне форума  
Непрочитано 14.03.2011, 20:07  
CodeNameHawk
Вид на жительство
 
Регистрация: 21.10.2009
Сообщений: 343
Сказал спасибо: 181
Сказали Спасибо 64 раз(а) в 56 сообщении(ях)
CodeNameHawk на пути к лучшему
По умолчанию Re: Задержки при плавной регулировке. Диммер с ДУ

У вас много подводных камней, например, прерывание от сети происходит с задержкой от точки перехода синусоиды через ноль и если задержка таймера не успеет отключить открытие тиристора, то он откроется на следующей полу волне и лампа моргнет на всю яркость.
Может помешать вовремя закрыть тиристор и внешнее прерывание от помехи на фотоприемник.
Попробуйте запретить внешнее прерывание, на время плавного изменения яркости.

Код:
void soft_off () {
// запретите прерывание от фотоприемника
  TCCR1B=0x02;                      
  while (status›0) {
   status--;
   OCR1A = nagruzka[status];
   OCR1B = nagruzka[status]+100;
   delay_ms(delay_);
   sprintf(cnt,"%u",status);          // преобразование "яркости" в строку
   put_string(20, 40,cnt, 0x07E0, 3);  // выводим на экран
  }
  status = 0;
  TCCR1B=0x00;                 
  TRIAC_PIN = 1;                // полностью выключили   
// сбросить флаг внешнего прерывания, чтобы откиныть помеху
//разрешить прерывание от фотоприемника           
}
Мои комментарии замените на код
Тоже и в
Код:
soft_on
CodeNameHawk вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45
Нужна схема автоматического закрывания дверей автомобиля при движении Aviasined Электроника средств транспорта 17 28.09.2010 06:14


Часовой пояс GMT +4, время: 22:04.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot