Страница 10 из 12 ПерваяПервая ... 456789101112 ПоследняяПоследняя
Показано с 91 по 100 из 118
  1. #91
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Ардуино - управление освещением, жалюзи, климатом.

    Для отлавливания нуля достаточно 1-го вывода , а димировать можно хоть 20 каналов.
    По твоей ссылке схема на 120 вольт и 60 Гц, так что не совсем подходит для наших условий
    Последний раз редактировалось Chip; 18.11.2011 в 14:13.

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

    По умолчанию Re: Ардуино - управление освещением, жалюзи, климатом.

    Планирую использовать регистр 74hc595... Его скорости будет достаточно для регулирования яркости этим методом?
    Последний раз редактировалось knyaz2020; 20.11.2011 в 17:13.

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

    По умолчанию Re: Ардуино - управление освещением, жалюзи, климатом.

    Я не совсем понял вопроса

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

    По умолчанию Re: Ардуино - управление освещением, жалюзи, климатом.

    Ну хочу, чтобы яркость менялась при использовании ключа 74hc595
    но что-то не получается...

    PHP код:
    int data 16;
    int latch 17;
    int clock 18;

    //Used for single LED manipulation
    int ledState 0;
    const 
    int ON HIGH;
    const 
    int OFF LOW;

    // int dimmer1Pin = 10;         //output to opto triac (MOC 3010/3020)
    volatile int freqAdjTime 10;   //set to 10 for 50 Hz, and 8 for 60 Hz
    volatile long nextOnTime 0;    // variable for storing a time (in millis) for when to fire the output next
    volatile int outputValue;      // Varialble for storing the output value 0-255
    //unsigned int inputValue;     // Variable for storing input value (ie. a potentiometer)
    long lastMillis;             // for timing purposes 

    void setup()
    {
      
    pinMode(dataOUTPUT);
      
    pinMode(clockOUTPUT);  
      
    pinMode(latchOUTPUT);  
      
    attachInterrupt(0zeroRISING); //Attachment of zero crossing detection, which means the interrupt rutine "zero" is called each 20 millis
    }

    void loop()
    {
      if (
    nextOnTime millis()) {       //is it time to set pin on?
        
    changeLED(2,ON);    // then set it
        
    delay(2);                  // wait a bit to be sure the triac is on
        
    changeLED(2,OFF);     // turn of the trigger to be sure it is not trigger in the very beginning of next halfperiod
      
    }

    // A loop that slowly increases outputvalue
    if (millis()-lastMillis 250 ) {     //increase output each fourth of a second
        
    outputValue++;                //increase outputvalue by one

        //Check if max is reached
        
    if (outputValue  255) {         // output = maximum
          
    outputValue 0;            // set output to zero
        
    }
      } 

    }

    void zero()
    {
    // set a volatile variable with the millis value + (the value of the desired output (0-255) multiplied by the freq adj time)
    nextOnTime millis() + (freqAdjTime outputValue); //how long will this calculation take? too long to enable low output??



    void updateLEDs(int value){
      
    digitalWrite(latchLOW);     //Pulls the chips latch low
      
    shiftOut(dataclockMSBFIRSTvalue); //Shifts out the 8 bits to the shift register
      
    digitalWrite(latchHIGH);   //Pulls the latch high displaying the data
    }

    //These are used in the bitwise math that we use to change individual LEDs
    //For more details [url]http://en.wikipedia.org/wiki/Bitwise_operation[/url]
    int bits[] = {B00000001B00000010B00000100B00001000B00010000B00100000B01000000B10000000};
    int masks[] = {B11111110B11111101B11111011B11110111B11101111B11011111B10111111B01111111};
    /*
    * changeLED(int led, int state) - changes an individual LED
    * LEDs are 0 to 7 and state is either 0 - OFF or 1 - ON
    */
    void changeLED(int ledint state){
       
    ledState ledState masks[led];  //clears ledState of the bit we are addressing
       
    if(state == ON){ledState ledState bits[led];} //if the bit is on we will add it to ledState
       
    updateLEDs(ledState);              //send the new LED state to the shift register

    Последний раз редактировалось Chip; 20.11.2011 в 18:58.

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

    По умолчанию Re: Ардуино - управление освещением, жалюзи, климатом.

    Так ты в регистр отправляешь всегда значение data=16

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

    По умолчанию Re: Ардуино - управление освещением, жалюзи, климатом.

    Это почему? Вот так:
    changeLED(2,ON);
    delay(200);
    changeLED(2,OFF);
    delay(200);
    светодиод мигает, т.э. регистр работает как нужно...
    Т.э. changeLED(2,ON); аналогично digitalWrite(dimmer1Pin, HIGH);
    Последний раз редактировалось knyaz2020; 20.11.2011 в 19:05.

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

    По умолчанию Re: Ардуино - управление освещением, жалюзи, климатом.

    Я про регистр 74hc595

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

    По умолчанию Re: Ардуино - управление освещением, жалюзи, климатом.

    Цитата Сообщение от Chip Посмотреть сообщение
    Я про регистр 74hc595
    так говорю же, что регистр переключает светодиоды нормально.
    В выше приведенной программе сделано так, что функция changeLED(2,ON); аналогична функции digitalWrite(dimmer1Pin, HIGH);
    т.э. светодиодами можно управлять аналогичкак как и без регистра.

    не работает почему-то подпрограмма диммера...

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

    По умолчанию Re: Ардуино - управление освещением, жалюзи, климатом.

    Проверь срабатывает прерывание при прохождении через ноль

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

    По умолчанию Re: Ардуино - управление освещением, жалюзи, климатом.

    а как такое можно проверить?

Страница 10 из 12 ПерваяПервая ... 456789101112 ПоследняяПоследняя

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

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

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

Метки этой темы

Ваши права

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