Страница 6 из 32 ПерваяПервая 12345678910111216 ... ПоследняяПоследняя
Показано с 51 по 60 из 315
  1. #51
    Местный
    Регистрация
    20.06.2011
    Возраст
    40
    Сообщений
    170
    Вес репутации
    200

    По умолчанию Re: AC dimmer 220V 50Hz

    Chip, на счет датчика тока тоже интересно... можно где-то с этим ознакомиться?

    Попробовал Ваш код, лампа просто светит
    Последний раз редактировалось knyaz2020; 21.11.2011 в 21:44.

  2. #52
    Продвинутый
    Регистрация
    28.11.2010
    Возраст
    60
    Сообщений
    241
    Вес репутации
    221

    По умолчанию Re: AC dimmer 220V 50Hz

    Цитата Сообщение от Chip Посмотреть сообщение
    Код подправил, забыл импульс формировать
    А может это по этой причине?
    Замечание по использованию attachInterrupt

    Внутри функции обработки прерывания не работает delay(), значения возвращаемые millis() не изменяются. Возможна потеря данный передаваемых по последовательному соединению (Serial data) в момент выполнения функциии обработки прерывания. Переменные, изменяемые в функции, должным быть объявлены как volatile.
    Мои проекты - Катер для рыбалки

  3. #53
    Местный
    Регистрация
    20.06.2011
    Возраст
    40
    Сообщений
    170
    Вес репутации
    200

    По умолчанию Re: AC dimmer 220V 50Hz

    попробовал исправленный код... яркость понизилась, но что-то не то... лампа как бы вспыхивает... т.э. пониженная яркость + произвольные вспышки до полной яркости

  4. #54
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    55
    Сообщений
    13,382
    Вес репутации
    10

    По умолчанию Re: AC dimmer 220V 50Hz

    Цитата Сообщение от Mastar Посмотреть сообщение
    А может это по этой причине?
    Замечание по использованию attachInterrupt

    Внутри функции обработки прерывания не работает delay(), значения возвращаемые millis() не изменяются. Возможна потеря данный передаваемых по последовательному соединению (Serial data) в момент выполнения функциии обработки прерывания. Переменные, изменяемые в функции, должным быть объявлены как volatile.
    Подправил код с учетом delay

  5. #55
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    55
    Сообщений
    13,382
    Вес репутации
    10

    По умолчанию Re: AC dimmer 220V 50Hz

    Цитата Сообщение от knyaz2020 Посмотреть сообщение
    попробовал исправленный код... яркость понизилась, но что-то не то... лампа как бы вспыхивает... т.э. пониженная яркость + произвольные вспышки до полной яркости
    вспышки возможны , так как нужно знать точно разницу между нулем реальным и детекторным, если нет прибора, то нужно пробывать в ручную подбирать . изменяй значения 77 и 79 на 76 и 80 и т.д.
    Код очередной раз подправил попробуй

  6. #56
    Продвинутый
    Регистрация
    28.11.2010
    Возраст
    60
    Сообщений
    241
    Вес репутации
    221

    По умолчанию Re: AC dimmer 220V 50Hz

    А если так
    PHP код:
    int AC_pin 10;  // выход для симистора  
    volatile byte dim 128;    // уровень димирования (0-128)  0 = on, 128 = 0ff  

    void setup()  
    {  
    #include <avr/delay.h> 
      
    pinMode(AC_pinOUTPUT);         
      
    attachInterrupt(0FrontUpRISING);  //прерывание по изменению уровня с низкого на высокий  
    }  
    // Функция обработки прерывания на подъем    
    void FrontUp()    
    {  
      
    detachInterrupt(0);
      
    int dimtime = (77*dim);  // вычислим время отсечки  
      
    _delay_us(dimtime);  // отсекаем лишнее   
      
    digitalWrite(AC_pinHIGH);  // включить симистор  
      
    _delay_us(200);      // короткая пауза, чтобы обеспечить включение симистора  
      
    digitalWrite(AC_pinLOW);   // выключение симистора(он выключится когда полупериод достигнет нуля)   
      
    attachInterrupt(0FrontDownFALLING);    
    }    
    // Функция обработки прерывания на спад   
    void FrontDown()    
    {   
      
    detachInterrupt(0);  
      
    int dimtime = (79*dim);  // вычислим время отсечки  
      
    _delay_us(dimtime);  // отсекаем лишнее  
      
    digitalWrite(AC_pinHIGH);  // включить симистор  
      
    _delay_us(200);      // короткая пауза, чтобы обеспечить включение симистора  
      
    digitalWrite(AC_pinLOW);   // выключение симистора(он выключится   
      
    attachInterrupt(0FrontUpRISING);    
    }  

    void loop()  
    {  
      if(
    dim 0) {dim--; } else { dim=128; }  // пример уменьшения яркости лампы  

    Я перенес detachInterrupt(0); в начало.
    Последний раз редактировалось Mastar; 21.11.2011 в 22:26.
    Мои проекты - Катер для рыбалки

  7. #57
    Продвинутый
    Регистрация
    28.11.2010
    Возраст
    60
    Сообщений
    241
    Вес репутации
    221

    По умолчанию Re: AC dimmer 220V 50Hz

    В моем примере я правильно сделал? Если отключается прерывание, то тогда можно любую туда помещать?
    Последний раз редактировалось Mastar; 21.11.2011 в 22:28.
    Мои проекты - Катер для рыбалки

  8. #58
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    55
    Сообщений
    13,382
    Вес репутации
    10

    По умолчанию Re: AC dimmer 220V 50Hz

    Только пример с моей ошибкой
    Я подправил
    200мкс не мало для открытия триака?
    Последний раз редактировалось Chip; 21.11.2011 в 22:28.

  9. #59
    Местный
    Регистрация
    20.06.2011
    Возраст
    40
    Сообщений
    170
    Вес репутации
    200

    По умолчанию Re: AC dimmer 220V 50Hz

    Цитата Сообщение от Chip Посмотреть сообщение
    вспышки возможны , так как нужно знать точно разницу между нулем реальным и детекторным, если нет прибора, то нужно пробывать в ручную подбирать . изменяй значения 77 и 79 на 76 и 80 и т.д.
    Код очередной раз подправил попробуй
    Прибора к большому сожалению нет...

    пробовал изменять эти значения.. всеравно мигает

    Mastar
    В Вашем примере наблюдается можно сказать та же проблема...
    P.S. там кстати #include <avr/delay.h> как я понял надо в начало кода вынести...

  10. #60
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    55
    Сообщений
    13,382
    Вес репутации
    10

    По умолчанию Re: AC dimmer 220V 50Hz

    Код был с ошибкой еще раз попробуй

Страница 6 из 32 ПерваяПервая 12345678910111216 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

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