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

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #26
    Местный Аватар для zhserg
    Регистрация
    12.11.2010
    Сообщений
    135
    Вес репутации
    212

    По умолчанию Re: Применение емкостных Touch кнопок на Carduino.

    Не стал создавать новую тему, напишу в этой.
    Вышеприведенную библиотеку я применил для управления подсветкой в кухне (в гарнитуре у нас в дверках верхних шкафов белые матовые пластиковые вставки и за них я приклеил светодиодную ленту).
    Идея такова - входя на кухню, прикладываем ладонь к стенке шкафчика где установлен датчик (он у меня из 10коп монетки), загорается подсветка и горит 5 мин, потом сама выключается, если до того не будет повторного "нажатия".
    Схему не нарисовал, т.к. она очень простая и не отличается от примера в начале темы. Управление лентой через полевой транзистор IRLR2905. Если кому будет нужно, то нарисую.
    Вот код программы:
    PHP код:
    #include <CapSense.h>       // подключить библиотеку 

    CapSense   Sensor1 CapSense(12,7); // назначить пины для сенсора 
    int LEDpin 3// подключение LED ленты на 3-ий пин
    byte sens 0;
    unsigned long lastTime 0;      // последнее измерение
    unsigned long timeLight 300000;    // продолжительность свечения 5 мин

    void setup()                      

    //    Serial.begin(9600);
       
    pinMode(LEDpin,OUTPUT);
       
    analogWrite(LEDpin0); 
    }  

    void loop()                      
    {  
        
    long temp1 =  Sensor1.capSense(30); // измерить емкость и сохранить в temp1 

        
    if (temp1 60)    // изменяя значение, мы регулируем чуствительность сенсора  
        
    { if (sens == ) {sens 1;}  
          else {
    sens 0;}   
          
    on_off_LED (sens);
          if (
    sens == 1) {lastTime millis();} // засекаем время
        
    }    
        
    delay(500);                       //пауза между нажатиями
          
    if (((millis() - lastTime) > timeLight) && (sens == 1)) {
              
    sens 0// если прошло 5 мин, то выключаем
              
    on_off_LED (sens);
            }
    // Serial.println(temp1);
    }  

    void on_off_LED (byte on// плавное включение и выключение
    {
    if (
    on == 1) {
      for (
    int i=0<= 128i++){
          
    analogWrite(LEDpini);
          
    delay(3);
        }
      }
    else{
      for (
    int i=128>= 0i--){
          
    analogWrite(LEDpini);
          
    delay(3);
        }
      }

    Последний раз редактировалось zhserg; 13.12.2010 в 20:26.

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

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

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

Ваши права

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