Показано с 1 по 9 из 9

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

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

    По умолчанию Touch pad на Arduino и датчики из светодиодов

    Идея по двойному использованию светодиода такова:

    если приложить к светодиоду обратное напряжение,

    т.е. к катоду подключить – плюс (HIGH), а к аноду – минус (LOW)
    то тем самым мы зарядим собственную паразитную емкость ножек микроконтроллера и светодиода.

    Если теперь переключить pin 2 на вход и отключить внутренний подтягивающий резистор,

    чтобы этого добиться – нужно для порта, сконфигурированного, как ВХОД
    командой
    pinMode(port,INPUT);

    выполнить команду
    digitalWrite(port,LOW); // отключаем подтягивающий резистор

    и наоборот — команда
    digitalWrite(port, HIGH); // подключаем подтягивающий резистор

    — подключит подтягивающий резистор

    то паразитная ёмкость будет разряжаться обратным током светодиода, который зависит от его освещенности. Через некоторое время нога переключится в логический 0.
    Вот это время разряда, зависящее от освещённости светодиода мы и должны измерить
    Паразитная ёмкость, разумеется, мала, но и обратный ток светодиода тоже —
    поэтому время разряда можно успешно измерить

    PHP код:
    // Пример исползования светодиода в качестве фотодатчика 
    // Схема подключения: 
    // 
    //           + digital 2 
    //           | 
    //           < 
    //           > 100 ohm resistor 
    //           < 
    //           | 
    //           | 
    //         ----- 
    //          / \  LED
    //         ----- 
    //           | 
    //           | 
    //           + digital 3 
    // 
    // мы будем подавать положительное напряжение на digital 2 и  
    // низкое напряжение в digital 3. Т.о. на светодиод будет подано обратное напряжение. 
    // Разумеется, светодиод светиться не будет, но будет заряжаться паразитная ёмкость 
    // соединения светодиода и ног микроконтроллера Arduino.  
    //  
    // Потом мы отключаем выход с digital2 и считаем 
    // за какой промежуток времени заряд разрядится через светодиод. 
    // Причём скорость разряда зависит от освещённости светодиода. 
    // Чем ярче свет, тем быстрее паразитная ёмкость будет разряжаться на Digital3.  
    //  
    // Т.о. сразу виден недостаток идеи - в темноте время разряда может быть довольно большим. 

    #define LED_N_SIDE 2
    #define LED_P_SIDE 3 

    void setup() 

      
    pinMode(LED_P_SIDE,OUTPUT); 
      
    Serial.begin(115200); 


    void loop() 

      
    unsigned int j

      
    // обеспечиваем обратное включение светодиода, заряжая паразитную ёмкость  
      // ног микроконтроллера и светодиода 
      
    pinMode(LED_N_SIDE,OUTPUT); 
      
    digitalWrite(LED_N_SIDE,HIGH); 
      
    digitalWrite(LED_P_SIDE,LOW); 

      
    // изолируем pin 2 от светодиода 
      
    pinMode(LED_N_SIDE,INPUT); 
      
    digitalWrite(LED_N_SIDE,LOW);  // отключаем втроенный в МК подтягивающий резистор 

      // считаем сколько требуется времени на разряд до логического нуля 
      
    for ( 065535j++) 
        { 
          if ( 
    digitalRead(LED_N_SIDE)==
          break; 
        } 

      
    Serial.println(jDEC); // Выводим значение счетчика в COM-порт 
      //delay(100);             // Пауза, чтобы не переполнять буфер COM-порта 

    На видео это наглядно продемонстрировано

    Последний раз редактировалось Chip; 22.10.2009 в 03:20.

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

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

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

Ваши права

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