Страница 24 из 32 ПерваяПервая ... 1418192021222324252627282930 ... ПоследняяПоследняя
Показано с 231 по 240 из 315
  1. #231
    Местный
    Регистрация
    20.06.2011
    Возраст
    39
    Сообщений
    170
    Вес репутации
    193

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

    бррр... тогда я не понял..
    куда именно надо ставить один мост? можно схему.. или напишите между какими детальками..

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

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

    Цитата Сообщение от knyaz2020 Посмотреть сообщение
    бррр... тогда я не понял..
    куда именно надо ставить один мост? можно схему.. или напишите между какими детальками..
    ??? Мдааа. Откройте схему любой цветомузыки 80-х.


    Между розеткой и девайсом.
    Мои проекты - Катер для рыбалки

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

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

    Вообщем пипец... нету ти датчика тока ни PC814.. заказал, но будет не раньше чем на след. неделе...

  4. #234
    Местный
    Регистрация
    20.06.2011
    Возраст
    39
    Сообщений
    170
    Вес репутации
    193

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

    Я так понял строчка:
    Код:
    attachInterrupt(0, FrontUp, RISING);
    должна обязательно быть в void setup() ?

    Тогда как ее отключать?
    А именно, если диммер не нужен, а простое переключение лампочек, то возникает проблема. При установке на каком-то выходе уровня HIGH (к которому подключена нагрузка), то лампочка чуть мерцает и при установке LOW не выключается... Если же с 4N35 убрать ~220В, то все как нужно переключает.

    P.S. To Chip, что на счет датчика тока? Есть какие-то наброски.. думаю расгребтись с этой мигалкой и попробовать что-нить на нем собрать.

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

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

    Выключить прерывание можно вот так detachInterrupt(0);
    Тебе привезли датчик тока?

  6. #236
    Местный
    Регистрация
    20.06.2011
    Возраст
    39
    Сообщений
    170
    Вес репутации
    193

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

    Цитата Сообщение от Chip Посмотреть сообщение
    Тебе привезли датчик тока?
    Вот во вторник пообещали точно будет

    Выключить прерывание можно вот так detachInterrupt(0);
    Да, выключает, спасибо.
    Вопрос как включить?
    attachInterrupt(0, FrontUp, RISING); - не работает. А вернее этот кусок кода:

    Код:
    void loop()
    {
    
    detachInterrupt(0);
    
    delay(1000);
    digitalWrite(10, HIGH);
    delay(1000);
    digitalWrite(10, LOW);
    
    attachInterrupt(0, FrontUp, RISING);
    aaadim();
    
    }  
    
    void aaadim()    
    {      
      if(dimmer < 255) dimmer++; else dimmer=0;  // пример уменьшения яркости лампы 
      dim=33*dimmer; 
      delay(50);
    }

    Т.э. лампа на секундку вкл., затем выкл., затем через сек. вкл. и т.д.,т.э. на функцию aaadim() не переходит. Почему?
    Последний раз редактировалось knyaz2020; 11.12.2011 в 14:56.

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

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

    И не перейдет, потому как в настройке прерывания прописана функция FrontUp
    А вообще лучше весь код посмотреть из этого куска ничего не видно
    Последний раз редактировалось Chip; 11.12.2011 в 15:27.

  8. #238
    Местный
    Регистрация
    20.06.2011
    Возраст
    39
    Сообщений
    170
    Вес репутации
    193

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

    Код можно сказать тот же что в первом посте:

    Код:
    #include <avr/delay.h>  
    int AC_pin = 10;  // выход для симистора    
    volatile uint16_t dim;     
    uint8_t dimmer=0;// уровень димирования (0-255)  0 = max, 255 = min
    
    void setup()    
    {     
      pinMode(AC_pin, OUTPUT);           
      attachInterrupt(0, FrontUp, RISING);  //прерывание по изменению уровня с низкого на высокий    
    }    
    // Функция обработки прерывания на подъем      
    void FrontUp()      
    {    
      detachInterrupt(0);    
      _delay_us(dim+1000);  // отсекаем лишнее 
      digitalWrite(AC_pin, HIGH);  // включить симистор    
      _delay_us(20);      // короткая пауза, чтобы обеспечить включение симистора    
      digitalWrite(AC_pin, LOW);   // выключение симистора(он выключится когда полупериод достигнет нуля)     
      attachInterrupt(0, FrontDown, FALLING);      
    }      
    // Функция обработки прерывания на спад     
    void FrontDown()      
    {     
      detachInterrupt(0);      
      _delay_us(dim);  // отсекаем лишнее    
      digitalWrite(AC_pin, HIGH);  // включить симистор    
      _delay_us(20);      // короткая пауза, чтобы обеспечить включение симистора    
      digitalWrite(AC_pin, LOW);   // выключение симистора(он выключится     
      attachInterrupt(0, FrontUp, RISING);      
    }    
    
    void loop()    
    {      
      detachInterrupt(0);
    
    delay(1000);
    digitalWrite(10, HIGH);
    delay(1000);
    digitalWrite(10, LOW);
    
    attachInterrupt(0, FrontUp, RISING);
    aaadim();
    
    }  
    
    void aaadim()    
    {      
      if(dimmer < 255) dimmer++; else dimmer=0;  // пример уменьшения яркости лампы 
      dim=33*dimmer; 
      delay(50);
    }
    Вообщем это первая проблема...
    Но вот еще не могу догнать, как таким методом сделать бегущий огонь... например с трех каналов?
    Напишите плз. кусок проги...

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

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

    Если без плавного включения, то просто
    PHP код:
    digitalWrite(Lamp0HIGH);  // включить симистор 
     
    _delay_us(200);      //  пауза
     
    digitalWrite(Lamp0LOW);   // выключение симистора
    digitalWrite(Lamp1HIGH);  // включить симистор 
    _delay_us(200);      //  пауза
      
    digitalWrite(Lamp1LOW);   // выключение симистора
    digitalWrite(Lamp2HIGH);  // включить симистор
    _delay_us(200);      //  пауза
      
    digitalWrite(Lamp2LOW);   // выключение симистора 
    Последний раз редактировалось Chip; 15.12.2011 в 03:02.

  10. #240
    Местный
    Регистрация
    20.06.2011
    Возраст
    39
    Сообщений
    170
    Вес репутации
    193

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

    Вот как раз интересует с плавным включением... все для этого изначально и делалось

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

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

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

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

Ваши права

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