Показано с 1 по 10 из 13

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #5
    Пользователь
    Регистрация
    22.11.2010
    Возраст
    47
    Сообщений
    20
    Вес репутации
    189

    По умолчанию Re: Автоматическое освещение лестницы

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



    PHP код:
    #include "Tlc5940.h"
    #include "Ultrasonic.h"

    TLC_CHANNEL_TYPE channel;

    //Устанавливаем контакты для первого датчика
    #define  TRIG_PIN  5
    #define  ECHO_PIN  6
    //Устанавливаем контакты для второго датчика
    #define  TRIG2_PIN  7
    #define  ECHO2_PIN  8
    //Определяем первый датчик
    Ultrasonic OurModuleUp(TRIG_PINECHO_PIN);
    //Определяем второй датчик
    Ultrasonic OurModuleDown(TRIG2_PINECHO2_PIN);

    const 
    unsigned char DataPin 0;
    const 
    unsigned char clockPin 1;

    // Диапазон при котором сработает сенсор
    const float minBottomIn 33.0f;
    const 
    float minTopIn minBottomIn;

    //задержка выстрела сенсоров
    const long pingReadDelay 50;

    // задержка между ступеньками
    const long lightSpacing 150;
    //задержка свечения всей лестницы
    const long lightHold 10000;
    //количество ступенек
    const byte kol_st 9;
    //маскимальная яркость
    const long maxLight 4095;
    //задержка ШИМ
    const int delPWM 5;
    //шаг наращивания яркости
    const int stepPWM 50;

    //переменная под датчик освещенности
    int val;

    void setup()
    {
      
    Tlc.init();
     
      
    Serial.begin(9600);        
      
    pinMode(DataPinOUTPUT);
      
    pinMode(clockPinOUTPUT);      
     }

    void loop()
    {
         
    val analogRead(0);
        
    //Проверяем освещенность в помещении

       
    if (val>=1020){
         
         
    //зажигаем первую и последнюю ступеньку на 5% от максимума
          
    Tlc.set(0,200);
          
    Tlc.set(kol_st-1,200);  
          
    Tlc.update();

         
    //проверяем дачтики, сначала верхний, потом нижний
         
    if((OurModuleUp.Ranging(INC) < minTopIn) && (OurModuleUp.Ranging(INC) > 0))
            {
              
    Serial.println("Top sensor tripped.");
              
    fadeDOWN();
            }
         if((
    OurModuleDown.Ranging(INC) < minTopIn) && (OurModuleDown.Ranging(INC) > 0)) {
          
    Serial.println("Bottom sensor tripped.");
          
    fadeUP();
        }
       
       }
       
    delay(pingReadDelay);
    }

    void fadeUP()
    {
    // Tlc.clear();
      
    for (int i=0i<kol_sti++) {
       for (
    int j=0j<=maxLightj=j+stepPWM) {
       
    Tlc.set(i,j);
       
    Tlc.update();
       
    delay(delPWM);
       }
        
    delay(lightSpacing);
      }
      
    delay(lightHold);
      for (
    int i=0i<kol_sti++) {
        for (
    int j=maxLightj>0j=j-stepPWM) {
         if (
    j<stepPWMj=0
         
    Tlc.set(i,j);
         
    Tlc.update();
         
    delay(delPWM);
         }
        
    delay(lightSpacing);
      }
    }

    void fadeDOWN()
    {
      for (
    int i=kol_sti>=0i--) {
       for (
    int j=0j<=maxLightj=j+stepPWM) {
       
    Tlc.set(i,j);
       
    Tlc.update();
       
    delay(delPWM);
       }
        
    delay(lightSpacing);
      }
      
    delay(lightHold);
      for (
    int i=kol_sti>=0i--) {
        for (
    int j=maxLightj>0j=j-stepPWM) {
         if (
    j<stepPWMj=0
         
    Tlc.set(i,j);
         
    Tlc.update();
         
    delay(delPWM);
         }
        
    delay(lightSpacing);
      }

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

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

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

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

Ваши права

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