Показано с 1 по 9 из 9
  1. #1
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    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.

  2. #2
    Гуру Аватар для (vS)
    Регистрация
    18.06.2007
    Возраст
    46
    Сообщений
    1,981
    Вес репутации
    685

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

    ипона мама, мультитач пряма

    а софтик этот доступен побалаваца?
    автоMOBILEвый моDDEр
    мой карпутер второй очередной

  3. #3
    Местный
    Регистрация
    27.03.2009
    Сообщений
    148
    Вес репутации
    216

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

    А в чем может быть проблема, если при собранной схеме и прошитой ардуине, время ни как не зависит от освещенности(очень большие скачки). Может ли быть проблема в качестве светодидода?

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

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

    У тебя какое время получилось?

  5. #5
    Местный
    Регистрация
    27.03.2009
    Сообщений
    148
    Вес репутации
    216

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

    Код:
    33388
    57755
    11822
    41508
    16666
    1902
    36416
    Вот как-то так выходит...

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

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

    может быть ты диод не правильно поставил?
    Я проверил у меня работает

  7. #7
    Местный
    Регистрация
    27.03.2009
    Сообщений
    148
    Вес репутации
    216

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

    Спасибо, пока не нашел свою ошибку, но думаю она где-то рядом. Если можно скажите какое время в комнатном освещении примерно получается?
    Последний раз редактировалось Chip; 22.10.2009 в 02:26.

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

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

    Белые с синими светодиодами не подойдут.
    Вот параметры: оранжевым цветом при включенной лампе и черным при выключенной

    1997
    1832
    1793
    2162
    1921
    2224
    1935
    2206
    1890
    2390

    53283
    62373
    52884


    Я светодиод подключаю без резистора.
    Подправил немножко код, теперь в темноте счетчик прекращает цикл при переполнении, что гораздо быстрей чем ждать полного разряда емкости
    Последний раз редактировалось Chip; 22.10.2009 в 03:27.

  9. #9
    Местный
    Регистрация
    27.03.2009
    Сообщений
    148
    Вес репутации
    216

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

    Без резистора всё отлично заработало, спасибо!

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

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

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

Ваши права

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