roboforum.ru

Технический форум по робототехнике.

Датчик освещенности из светодиода... прикольно...

Датчик освещенности из светодиода... прикольно...

Сообщение Michael_K » 10 окт 2009, 20:11

Что-то под рукой не оказалось фототранзистора.
Прицепил светодиод - прикольно получилось.

Если использовать один цифровой выход, то можно мерить освещенность
(например детектировать линию) в огромном динамическом диапазоне.

Способ:
1. Включаем светодиод анодом на землю, катодом к ноге проца.
2. Настраиваем ногу на выход и подаем единицу в течении короткого времени
(я делал 1 микросекунду)
3. Настраиваем ногу на вход (без подтяжки) и считаем время, за которое
на ноге окажется ноль. У меня это время колебалось от 1 миллисекунды
(на свету) до сотен миллисекунд (в темноте)

Фишки:
1. Можно анод повесить на другую ногу проца, тогда в промежутках между измерениями
"датчиком" можно светить (токоограничительный резистор не забудьте).
Например два таких "датчика", работая поочередно, могут обеспечивать друг-другу подсветку.
Да и вообще красиво :)
2. Датчик выдает цифру, а не бит - можно программно подстраивать пороги,
реализовать ПИД и т.д.
3. Дешево и резистор не нужен (если не светить) :)))

Для тестов использовал Атмегу88 и безымянный красный светодиод.

Добавлено спустя 36 минут 53 секунды:


Добавлено спустя 6 минут 50 секунд:
Код: Выделить всёРазвернуть
#include <avr/io.h>
#include "delay.h"

main()
{
   unsigned char c;

   DDRB   = 0x04;      // Indicator LED output

   while(1)
   {
      c=0;

      PORTC = 0x02;            // Turn the sensor LED on for a while
      DDRC  = 0x0A;
      wait_1ms(5);

      PORTC = 0x08;            // Charge sensor 1 us
      DDRC  = 0x0A;
      wait_1us(1);

      DDRC  = 0x02;            // Start discharge
      PORTC = 0x00;
      while(PINC&0x08)
      {
         wait_1us(250);
         if(c<255) c++;         // Count discharge time
      }

      if (c<128)   PORTB = 0x04;    // Threshold = 128
      else       PORTB = 0x00;
   }
}

Тут светодиод был подключен анодом к ноге С1, катодом - к С3.
Последовательно со светодиодом был включен резистор 200 Ом.
К ноге В2 был подключен индикатор.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Датчик освещенности из светодиода... прикольно...

Сообщение Angel71 » 10 окт 2009, 21:00

старый прикол
вот тут еще глянь, может понравится http://roboforum.ru/viewtopic.php?f=35&t=6055
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Датчик освещенности из светодиода... прикольно...

Сообщение Michael_K » 10 окт 2009, 21:13

Сорри, не нашел старой темы.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Датчик освещенности из светодиода... прикольно...

Сообщение EdGull » 10 окт 2009, 21:23

не чего тебе извиняться, ты один из немногих кто реально что-то делает, маладца, так держать! :Bravo: :good:
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Датчик освещенности из светодиода... прикольно...

Сообщение Angel71 » 11 окт 2009, 02:55

кстати недавно начал замечать, что этот эффект стали применять в серийном производстве. обычно внизу экранчика отображают значки текщих возможных действий, а под экранчиком доступные "сенсоры" светятся. уже видел 2 разновидности, чисто на светодиодах обычных и светодиод + инфракрасный светодиод. второй вариант в использовании мне больше понравился. провёл рукой по "сенсору" и только тогда появляется меню на экране и загораются обычные диоды :crazy: похоже это или удобней иногда или дешевле даже, чем другие варианты "сенсоров".
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Датчик освещенности из светодиода... прикольно...

Сообщение ADonis » 18 янв 2010, 12:49

Доброго дня

Можно поподробнее, не могу понять, как из светодиода получается фотодатчик? Насколько я понимаю нужен или TSOP или фотодиод хотя бы, чтобы уловить сигнал, но как сделать без него? :shock:
В гугле есть все! Даже то, чего еще нет!

Не спорь с холостяком о макаронах!
Аватара пользователя
ADonis
 
Сообщения: 106
Зарегистрирован: 30 дек 2009, 08:16
Откуда: Омск
Skype: hedgehoguse

Re: Датчик освещенности из светодиода... прикольно...

Сообщение boez » 18 янв 2010, 12:55

Светодиод тоже является фотодиодом. Вообще любой диод является фотодиодом, просто у обычных корпуса непрозрачные и свет до кристалла не доходит. Были такие советские диоды Д9 в стеклянных корпусах - реагировали на свет токо так.
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

Re: Датчик освещенности из светодиода... прикольно...

Сообщение ADonis » 18 янв 2010, 14:18

Хм, спасибо, к своему стыду не знал :oops:
Знал только, что из транзистора можно получить этот эффект, в детстве с МПшек спиливал крышку аккуратно и на свету получал с него малый ток :)

А в каком режиме находится нога контроллера? получается, что тут нужен АЦП, я прав? Тогда же можно сделать бампер :roll:
В гугле есть все! Даже то, чего еще нет!

Не спорь с холостяком о макаронах!
Аватара пользователя
ADonis
 
Сообщения: 106
Зарегистрирован: 30 дек 2009, 08:16
Откуда: Омск
Skype: hedgehoguse

Re: Датчик освещенности из светодиода... прикольно...

Сообщение Master » 18 янв 2010, 15:19

А в каком режиме находится нога контроллера? получается, что тут нужен АЦП, я прав? Тогда же можно сделать бампер

Чтобы бампер можно просто на вход.
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Re: Датчик освещенности из светодиода... прикольно...

Сообщение Michael_K » 18 янв 2010, 15:32

получается, что тут нужен АЦП, я прав?

Нет. Проц меряет время рассасывания заряда.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Датчик освещенности из светодиода... прикольно...

Сообщение crystalbit » 30 окт 2010, 16:17

Michael_K писал(а):Нет. Проц меряет время рассасывания заряда.

правильно ли я понял, что принцип в том, что в темноте диод быстрее гаснет, "остывает" и закрывается?

да, я археолог =)
Аватара пользователя
crystalbit
 
Сообщения: 48
Зарегистрирован: 23 окт 2010, 00:07
Откуда: СПб
прог. языки: delphi, php, C
ФИО: Дмитрий

Re: Датчик освещенности из светодиода... прикольно...

Сообщение Michael_K » 30 окт 2010, 17:25

нет, свечение светодиода тут вообще ни при чем. Светодиодом можно вообще не светить.

Вы заряжаете диод, включая его в обратной полярности, а потом этот заряд рассасывается за счет токов утечки диода. Ток утечки зависит от освещенности. Чем больше света, тем быстрее рассасывается заряд - напряжение на диоде быстрее уменьшается.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб



Вернуться в Сенсорика

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3