roboforum.ru

Технический форум по робототехнике.
Текущее время: 18 июл 2025, 11:00

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Датчик освещенности из светодиода... прикольно...
СообщениеДобавлено: 10 окт 2009, 20:11 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Что-то под рукой не оказалось фототранзистора.
Прицепил светодиод - прикольно получилось.

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

Способ:
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 был подключен индикатор.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик освещенности из светодиода... прикольно...
СообщениеДобавлено: 10 окт 2009, 21:00 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик освещенности из светодиода... прикольно...
СообщениеДобавлено: 10 окт 2009, 21:13 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик освещенности из светодиода... прикольно...
СообщениеДобавлено: 10 окт 2009, 21:23 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик освещенности из светодиода... прикольно...
СообщениеДобавлено: 11 окт 2009, 02:55 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик освещенности из светодиода... прикольно...
СообщениеДобавлено: 18 янв 2010, 12:49 
Не в сети
Аватара пользователя

Зарегистрирован: 30 дек 2009, 08:16
Сообщения: 106
Откуда: Омск
Skype: hedgehoguse
Доброго дня

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

_________________
В гугле есть все! Даже то, чего еще нет!

Не спорь с холостяком о макаронах!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик освещенности из светодиода... прикольно...
СообщениеДобавлено: 18 янв 2010, 12:55 
Не в сети

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик освещенности из светодиода... прикольно...
СообщениеДобавлено: 18 янв 2010, 14:18 
Не в сети
Аватара пользователя

Зарегистрирован: 30 дек 2009, 08:16
Сообщения: 106
Откуда: Омск
Skype: hedgehoguse
Хм, спасибо, к своему стыду не знал :oops:
Знал только, что из транзистора можно получить этот эффект, в детстве с МПшек спиливал крышку аккуратно и на свету получал с него малый ток :)

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

_________________
В гугле есть все! Даже то, чего еще нет!

Не спорь с холостяком о макаронах!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик освещенности из светодиода... прикольно...
СообщениеДобавлено: 18 янв 2010, 15:19 
Не в сети
Аватара пользователя

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

Чтобы бампер можно просто на вход.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик освещенности из светодиода... прикольно...
СообщениеДобавлено: 18 янв 2010, 15:32 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Цитата:
получается, что тут нужен АЦП, я прав?

Нет. Проц меряет время рассасывания заряда.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик освещенности из светодиода... прикольно...
СообщениеДобавлено: 30 окт 2010, 16:17 
Не в сети
Аватара пользователя

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

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

да, я археолог =)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик освещенности из светодиода... прикольно...
СообщениеДобавлено: 30 окт 2010, 17:25 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
нет, свечение светодиода тут вообще ни при чем. Светодиодом можно вообще не светить.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик освещенности из светодиода... прикольно...
СообщениеДобавлено: 30 окт 2010, 21:51 
"фотоварикап"


Вернуться к началу
  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Часовой пояс: UTC + 4 часа


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

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


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO