Arduino фоторезистор и светодиод. Подключение фоторезистора к ардуино и работа с датчиком освещенности. Схема датчика освещения на фоторезисторе и реле

Фоторезистор представляет из себя полупроводниковый радиоэлемент, который меняет свое сопротивление в зависимости от освещения. Для видимого света (солнечный свет или свет от осветительных ламп) используют сульфид или селенид кадмия. Есть также фоторезисторы, которые регистрируют инфракрасное излучение. Их делают из германия с некоторыми примесями других веществ. Свойство менять свое сопротивление под воздействием света очень широко используется в электронике.

Внешний вид и обозначение на схеме

В основном фоторезисторы выглядят вот так



На схемах могут обозначаться так

или так

Как работает фоторезистор

Давайте рассмотрим одного из представителя семейства фоторезисторов


На нем, как и во всех фотоэлементах, есть окошко, с помощью которого он “ловит” свет.



Главным параметром фоторезистора является его темновое сопротивление. Темновое сопротивление фоторезистора - это его сопротивление при полном отсутствии падения света на него. Судя по справочнику, темновое сопротивление нашего подопечного 15х10 8 Ом или словами - 1,5 ГОм. Можно даже сказать - полнейший обрыв. Так ли это? Давайте глянем. Для этого я использую свою записную книжку и прячу там фоторезистор:


Даже в диапазоне 200 МОм мультиметр показал единичку. Это означает, что сопротивление фоторезистора далеко за 200 МОм.

Убираем нашего подопытного из книжки и включаем в комнате свет. Результат сразу же на лицо:


106,7 КОм.

Теперь включаю свою настольную лампу. В комнате стало еще светлее. Смотрим на показания мультиметра:


76,2 КОм.

Подношу фоторезистор вплотную к настольной лампе:


18,6 КОм

Делаем вывод: чем больше поток света попадает на фоторезистор, тем меньше его сопротивление.

Фоторезисторы дают вам возможность определять интенсивность освещения.

Они маленькие, недорогие, требуют мало энергии, легки в использовании, практически не подвержены износу.

Именно из-за этого они часто используются в игрушках, гаджетах и приспособлениях. Конечно же, DIY-проекты на базе Arduino не могли обойти своим вниманием эти замечательные датчики.

Фоторезисторы по своей сути являются резисторами, которые изменяют свое сопротивление (измеряется в Ом) в зависимости от того, какое количество света попадает на их чувствительные элементы. Как уже говорилось выше, они очень дешевые, имеют различные размеры и технические характеристики, но в большинстве своем не очень точные. Каждый фоторезистор ведет себя несколько иначе по сравнению с другим, даже если они из одной партии от производителя. Различия в показаниях могут достигать 50% и даже больше! Так что рассчитывать на прецизионные измерения не стоит. В основном их используют для определения общего уровня освещенности в конкретных, "локальных", а не "абсолютных" условиях.

Фоторезисторы являются отличным выбором для решения задач вроде "вокруг темно или светло", "есть ли что-то перед датчиком (что ограничивает поступление света)", "какой из участков имеет максимальный уровень освещенности".


Среднестатистические технические характеристики фоторезисторов

Приведенные ниже технические характеристики относятся к фоторезисторам из магазина Adafruit. Эти фоторезисторы обладают характеристиками, схожими с PDV-P8001. Практически все фоторезисторы имеют различные технические характеристики, хотя работают они очень схоже. Если продавец дает вам ссылку на даташит вашего фоторезистора, ознакомьтесь именно с ними, а не с тем, что изложено ниже.

  • Размер: круглый, 5 мм (0.2") в диаметре (другие фоторезисторы могут достигать до 12 мм / 0.4" в диаметре!).
  • Цена: около $1.00 в магазине Adafruit.
  • Диапазон сопротивления: от 200 кОм (темно) до 10 кОм (светло).
  • Диапазон чувствительности: чувствительные элементы фиксируют длины волн в диапазоне от 400 нм (фиолетовый) до 600 нм (оранжевый).
  • Питание: любой с напряжением до 100 В, используют силу тока в среднем около 1 мА (зависит от напряжения питания).

Проблемы при использовании нескольких сенсоров

Если при добавлении дополнительных сенсоров оказывается, что температура inconsistant, это значит, что сенсоры перекрывают друг друга при считывании информации с различных аналоговых пинов. Исправить это можно, добавив два считывания с задержками и отображением первого.

Измерение уровня освещенности

Как мы уже говорили, сопротивление фоторезистора изменяется в зависимости от уровня освещения. Когда темно, сопротивление резистора увеличивается до 10 МОм. С увеличением уровня освещенности сопротивление падает. Приведенный ниже график отображает приблизительное сопротивление сенсора при разных условиях освещения. Не забывайте, что характеристика каждого отдельного фоторезистора будет несколько отличаться, эти характеристики отображают только общую тенденцию.


Обратите внимание, что характеристика нелинейная, а имеет логарифмический характер.

Фоторезисторы не воспринимают весь диапазон световых волн. В большинстве исполнений они чувствительны к световым волнам в диапазоне между 700 нм (красный) и 500 нм (зеленый).


То есть индикация диапазона световых волн, который соответствует голубому, не будет таким же эффективным как индикация зеленого/желтого диапазона!

Что такое единица измерения «люкс»?

В большинстве даташитов используется люкс (лк) для обозначения сопротивления при определенном уровне освещенности. Но что это такое - лк? Это не метод, который мы используем для описания яркости, так что он привязан непосредственно к датчику. Ниже приведена таблица соответствий, которая была взята с Wikipedia.


Проверка фоторезистора

Самый простой метод проверки вашего фоторезистора - подключить мультиметр в режиме измерения сопротивления к двум контактам сенсора и отследить изменение сопротивления на выходе, когда вы накрываете сенсор своей ладонью, выключаете свет в помещении и т.п. Так как сопротивление изменяется в больших диапазонах, автоматический режим отрабатывает хорошо. Если у вас нет автоматического режима или он некорректно отрабатывает, попробуйте диапазон 1 МОм и 1 кОм.



Подключение фоторезистора

Так как фоторезисторы по сути являются сопротивлением, они не имеют полярности. Это значит, что вы можете их подключать их ноги "как угодно" а они будут работать!


Фоторезисторы реально неприхотливы. В можете их припаять, установить их на монтажную плату (breadboard), использовать клипсы для подключения. Единственное, чего стоит делать - слишком часто изгибать "ноги", так как они запросто могут отломаться.


Использование фоторезисторов

Метод считывания аналогового напряжения

Самый простой вариант использования: подключить одну ногу к источнику питания, вторую - к земле через понижающий резистор. После этого точка между резистором с постоянным номиналом и переменным резистором - фоторезистором - подключается к аналоговому входу микроконтроллера. На рисунке ниже показана схема подключения к Arduino .


В этом примере подключается источник питания 5 В, но не забывайте, что вы с таким же успехом можете использовать питание 3.3 В. В этом случае аналоговые значения напряжения будут в диапазоне от 0 до 5 В, то есть приблизительно равны напряжению питания.

Это работает следующим образом: при понижении сопротивления фоторезистора суммарное сопротивление фоторезистора и понижающего резистора уменьшается от 600 кОм до 10 кОм. Это значит, что ток, проходящий через оба резистора, увеличивается, что приводит к повышению напряжения на резистора с постоянным сопротивлением 10 кОм. Вот и все!


В этой таблице приведены приблизительные значения аналогового напряжения на основании уровня освещенности/сопротивления при подключении напряжения питания 5 В и 10 кОм понижающего резистора.

Если вы хотите использовать сенсор на ярко освещенной территории и использовать резистор 10 кОм, он быстро "сдуется". То есть он практически моментально достигнет допустимого уровня напряжения 5 В и не сможет различать более интенсивное освещение. В этом случае вам стоит заменить резистор на 10 кОм на резистор 1кОм. При такой схеме резистор не сможет определять уровень темноты, но лучше определи оттенки высокого уровня освещенности. В общем, вам стоит с этим поиграться в зависимости от ваших условий!

Кроме того, вы также сможете использовать формулу "Axel Benz" для базовых измерений минимального и максимального значения сопротивления с помощью мультиметра и дальнейшего нахождения значения сопротивления резистора с помощью: Понижающий резистор = квадратный корень(Rmin * Rmax), что в результате даст вам гораздо лучший результат в виде:


В таблице выше приведены приблизительные значения аналогового напряжения при использовании сенсора с питанием от 5 В и понижающим резистором 1 кОм.

Не забывайте, что наш метод не дает нам линейную зависимость напряжения от освещенности! Кроме того, каждый датчик отличается по своим характеристикам. С увеличением уровня освещенности аналоговое напряжение будет расти, а сопротивление падать:

Vo = Vcc (R / (R + Photocell))

То есть напряжение обратно пропорционально сопротивлению фоторезистора, которое, в свою очередь, обратно пропорционально уровню освещения.

Простой пример использования фоторезистора

В этом скетче берутся считываемые аналоговые значения для определения яркости светодиода. Чем темнее будет, тем ярче будет светить светодиод! Не забудьте, что светодиод должен быть подключен к ШИМ контакту для работы данного примера. В данном случае используется контакт 11.


Этот пример предполагает, что вы знакомы с основами программирования Arduino.

/* простой проверочный скетч для фоторезистора.

Подключите одну ногу фоторезистора к 5 В, вторую к аналоговому пину Analog 0.

После этого подключите резистор на 10 кОм между Analog 0 и землей.

Через резистор подключите светодиод между 11 пином и землей. */

int photocellPin = 0; // сенсор и понижающий резистор 10 кОм подключены к a0

int photocellReading; // считываем аналоговые значения с делителя сенсора

int LEDpin = 11; // подключаем красный светодиод к пину 11 (ШИМ пин)

int LEDbrightness; //

void setup(void) {

// информацию для дебагинга мы будем отправлять на серийный монитор

Serial.begin(9600);

void loop(void) {

Serial.println(photocellReading); // аналоговые значения с сенсора

// светодиод горит ярче, если уровень освещенности на датчике уменьшается

// это значит, что мы должны инвертировать считываемые значения от 0-1023 к 1023-0

photocellReading = 1023 - photocellReading;

//теперь мы должны преобразовать диапазон 0-1023 в 0-255, так как именно такой диапазон использует analogWrite

LEDbrightness = map(photocellReading, 0, 1023, 0, 255);

analogWrite(LEDpin, LEDbrightness);


Можете попробовать другие резисторы в зависимости от уровня освещенности, который вы хотите измерять!

Простой код для аналоговых измерений уровня освещенности

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


/* Простой проверочный скетч для фоторерезистора.

Подключите одну ногу фоторезистора к 5 В, вторую к пину Analog 0.

После этого подключите контакт резистора на 10 кОм к земле, а второй к аналоговому пину Analog 0 */

int photocellPin = 0; // сенсор и понижающий резистор на 10 кОм подключены к a0

int photocellReading; // данные считываемые с аналогового пина

void setup(void) {

// Передаем информацию для дебагинга на серийный монитор

Serial.begin(9600);

void loop(void) {

photocellReading = analogRead(photocellPin);

Serial.print("Analog reading = ");

Serial.print(photocellReading); // аналоговые значения

if (photocellReading

Serial.println(" - Dark");

} else if (photocellReading

Serial.println(" - Dim");

} else if (photocellReading

Serial.println(" - Light");

} else if (photocellReading

Serial.println(" - Bright");

Serial.println(" - Very bright");

Эта проверка проводилась в комнате днем. Я прикрывал сенсор рукой, а после этого куском ткани.


Считывание значений с фоторезистора без использования аналоговых пинов

Так как фоторезисторы по сути своей являются обычными резисторами, их можно использовать даже если на вашем микроконтроллере нет аналоговых пинов (или если все аналоговые пины заняты). Этот метод основан на базовых свойствах резисторов и конденсаторов. Если вы возьмете конденсатор, который может передать потенциал и подключите его к источнику питания (например, 5 В) через резистор, изменение напряжения будет происходить постепенно. Чем больше сопротивление резистора, тем медленнее будет изменяться напряжение.

Ниже представлен кусок осцилограммы, который характеризует, что именно происходит с цифровым пином (желтый). Голубая линия показывает когда начинает отрабатывать сам скетч Arduino и когда он заканчивает свою работу (участок по длительности около 1.2 мс).


Если проводить простые аналогии, то конденсатор выполняет роль корзины, а резистор - трубка. Для наполнения корзины с помощью тонкой трубки понадобится много времени. В зависимости от толщины трубки, скорость заполнения корзины будет разной.


В нашем случае "корзина" представляет из себя керамический резистор емкостью 0.1 мкФ. Вы можете поэкспериментировать с емкостью конденсатора. И этот показатель напрямую повлияет на время. Если вы хотите померять уровень освещенности, используйте конденсатор емкостью 1 мкФ. Если вы работаете в условиях плохой освещенности, можете использовать конденсатор емкостью 0.01 мкФ.

/* простой скетч для проверки работоспособности фоторезистора.

Подключите одну ногу фоторезистора к питанию, вторую - к пину 2.

После этого подключите одну ногу конденсатора 0.1 мкФ к пину 2, а вторую - к земле */

int photocellPin = 2; // фоторезистор подключен к пину 2

int photocellReading; // цифровые значения

int ledPin = 13; // вы можете использовать встроенный светодиод

void setup(void) {

// отправляем информацию для дебаггинга для отображения в окне серийного моитора

Serial.begin(9600);

pinMode(ledPin, OUTPUT); // используем светодиод в качестве выходного сигнала

void loop(void) {

// считывааем показания с сенсора с использованием технологии RCtime

photocellReading = RCtime(photocellPin);

if (photocellReading == 30000) {

// если показания достигают 30000, это значит, что мы достигли граничного значения

Serial.println("Nothing connected!");

Serial.print("RCtime reading = ");

Serial.println(photocellReading); // поток считанных аналоговых данных

// чем ярче, тем чаще светодиод мигает!

digitalWrite(ledPin, HIGH);

delay(photocellReading);

digitalWrite(ledPin, LOW);

delay(photocellReading);

// используем цифровой пин для измерения сопротивления

//делаем мы это подавая ток на конденсатор и

// рассчитывая сколько времени пройдет, чтобы достичь Vcc/2 (для большинства Arduino это значение равно 2.5 В)

int RCtime(int RCpin) {

int reading = 0; // начинаем с 0

// инициализируем пин в качестве output и присваиваем ему значение LOW (земля)

pinMode(RCpin, OUTPUT);

digitalWrite(RCpin, LOW);

// Теперь устанавливаем пин в качестве input и...

pinMode(RCpin, INPUT);

while (digitalRead(RCpin) == LOW) { // считаем время, которое надо, чтобы получить значение HIGH

reading++; // инкремент для отсчета времени

if (reading == 30000) {

// если мы дошли до такого уровня, сопротивление настолько велико,

// что скорее всего ничего не подключено!

break; // выходим за пределы цикла

Видео проектов на Arduino с использованием фоторезисторов

Изменение частоты вращения двигателя с использованием фоторезистора:

Робот отслеживает траекторию для перемещения с использованием фоторезистора:

Оставляйте Ваши комментарии, вопросы и делитесь личным опытом ниже. В дискуссии часто рождаются новые идеи и проекты!

Фоторезисторы изготавливают из полупроводниковых материалов, которые изменяют своё сопротивление в зависимости от степени освещённости. Основное их отличие от других фотоэлектрических приборов заключается в высокой стабильности параметров и линейности изменения сопротивления в достаточно широком диапазоне. Последнее свойство позволяет использовать фоторезисторы не только в цифровой автоматике, но и в аналоговой технике, например, в качестве гальванически изолированных регуляторов громкости звука.

Фоторезисторы являются относительно инерционными элементами с гораздо более низким (единицы килогерц) быстродействием по сравнению с фотодиодами и фототранзисторами. После резких перепадов освещённости, их сопротивление изменяется не скачком, а «плывёт» в течение некоторого времени. Это надо учитывать в практической работе и выдерживать для адаптации к свету небольшие паузы. Насколько «небольшие», подскажет эксперимент.

В зависимости от спектральной чувствительности фоторезисторы делятся на две большие группы: для работы в видимой и инфракрасной части спектра. Электрические схемы включения у них совпадают (Рис. 3.44, а…м). Единственное, что надо предварительно узнать по даташиту, - это максимально допустимое рабочее напряжение. В частности, на фоторезисторы СФ2-5, СФЗ-4А/Б, СФЗ-5 нельзя подавать питание больше, чем 1.3…2 В. Подавляющее же большинство фоторезисторов могут работать при напряжениях 5…50 В. Их темновое сопротивление составляет 1…200 МОм, а в освещенном состоянии - на два-три порядка меньше.

Рис. 3.44. Схемы подключения фоторезисторов к МК {начало)-.

а) резисторы /?У, образуют делитель напряжения. При освещении фоторезистора /?Уего сопротивление уменьшается. Резистор J служит защитой на случай полного замыкания под- строечного резистора и ошибочного перевода линии МКв режим выхода с ВЫСОКИМ уровнем. Если резистор R2 постоянный, то резистор R3 можно заменить перемычкой;

в) подключение фоторезистора /?2к МК с привязкой к общему проводу, а не к цепи питания. При освещении фоторезистора R2 напряжение на входе МК снижается;

Рис. 3.44. Схемы подключения фоторезисторов к МК (продолжение):

г) экономичное «реле Турченкова» на германиевых транзисторах VTI, К72 разной проводимости. Резистором уста на вливают порог срабатывания;

д) фоторезистор RI определяет ток базы транзистора УТ1, поскольку он входит в верхнее плечо делителя RI, R2. Следует установить движок переменного резистора в такое положение, чтобы ток базы транзистора УТ1 не превысил норму при яркой освещённости фоторезистора;

е) в исходном состоянии фоторезистор /?2освещён, транзистор УТ1 закрыт, светодиод НИ погашен. Когда уровень освещённости фоторезистора понизится до определённого порога (регулируется резистором R3), то транзистор открывается, светодиод загорается и на входе МК устанавливается НИЗКИЙ уровень;

ж) регистратор коротких вспышек света или приёмник импульсно-модулированных сигналов. Транзистор VTI находится в режиме отсечки. Конденсатор С/устраняет ложные срабатывания от медленных изменений освещённости фона, например, при смене дня ночью;

з) транзистор VTI повышает чувствительность фотодатчика R2, что позволяет использовать обычную линию порта МК, а не только вход АЦП. Резистор задаёт положение рабочей точки транзистора УТ1\

и) если оба фоторезистора R2, освещены, то на входе МК присутствует НИЗКИЙ уровень (регулируется резистором R1). Если один (любой) из фото рези сто ров будет затемнён, то суммарное «фотосопротивление» резко увеличится и на входе МК появится ВЫСОКИЙ уровень. Фоторезисторы выполняют логическую функцию «световое И»;

Рис. 3.44. Схемы подключения фоторезисторов к МК {окончание):

к) резистором R3 регулируют порог срабатывания ОУ DAI (компаратор напряжений). Сопротивление резистора R2 выбирается примерно таким же, как RI в «неактивном» состоянии. При значительном удалении фоторезистора следует экранировать его соединительные провода;

л) конденсаторы С/, С2 повышают стабильность измерений, устраняют импульсные помехи и создают небольшой гистерезис при резких колебаниях освещённости;

м) внутренний аналоговый компаратор МК используется для оценки уровня освещённости. Используется метод сравнения измеряемого напряжения с «пилой», которую вырабатывает сам МК на отрицательном выводе компаратора (линия входа временно становится выходом).

Фотодиоды в схемах на МК

Фотодиоды относятся к классу полупроводниковых приборов, в основе работы которых лежит внутренний фотоэффект При облучении /?-А7-перехода фотонами возникает генерация носителей тока внутри полупроводника. Изменение тока эквивалентно изменению сопротивления, что легко зафиксировать и измерить.

Фотодиоды широко применяются для регистрации световых излучений. Их достоинство, по сравнению с фоторезисторами и фототранзисторами, заключается в высоком быстродействии и хорошей чувствительности.

Различают два основных режима работы фотодиодов:

Диодный (фотодиодный, фоторезисторный) с обратным смещением;

Генераторный (фотогальванический, фотовольтаический) без смещения.

Диодный режим используется чаще и характеризуется широким диапазоном

изменения обратного сопротивления и хорошим быстродействием. Генераторный режим имеет следующие недостатки: большая эквивалентная ёмкость и высокая инерционность. Достоинство - малый уровень собственных шумов.

Фотодиоды выпускают фирмы: Vishay, OSRAM, Hamamatsu Photonics, «Кварц» и др. Типовые параметры: длина волны 850…950 нм, токовая чувствительность 10…80 мкА, ширина диаграммы направленности 15…65°, время нарастания/спада 2… 100 нс, рабочая температура -55…+ 100°С. Чувствительность фотодиодов снижается с повышением температуры и напряжения. Темновой ток возрастает в 2…2.5 раза на каждые 10°С, из-за чего в схему часто вводят термокомпенсацию.

На Рис. 3.45, а…ж показаны схемы непосредственного подключения фотодиодов к МК. На Рис. 3.46, а…е показаны схемы с усилителями на транзисторах. На Рис. 3.47, а…о - с усилителями на микросхемах.

б) соединение фотодиода BLI с цепью питания. Нажатие переключателя SI имитирует освещенное состояние фотодиода при тестовых проверках;

в) повыщение общей чувствительности за счёт параллельного включения нескольких фотодиодов BLI…Bin. Фотодиоды выполняют логическую функцию «световое ИЛИ»;

г) параллельное включение нескольких фотодиодов с привязкой к общему проводу;

д) последовательное включение фотодиодов по схеме «световое И». Позволяет обнаружить момент затемнения одного из нескольких освещенных фотоприёмников на конвейере;

е) последовательное включение нескольких фотодиодов с привязкой к общему проводу;

ж) мостовая схема включения фотодиода BLI, обладающая повыщенной чувствительностью и гистерезисом {R6). Требуется предварительное симметрирование моста резистором R3.

а) фотодиод BL1 замещает базовый резистор транзисторного усилителя;

б) мигающий светодиод НИ служит … фотоприёмником. В исходном состоянии НИ генерирует электрические (не световые!) импульсы с частотой «мигания» около 2 Гц. При внешнем освещении генерация срывается, что и фиксирует МК через транзистор VTI\

в) ключ на транзисторе VT1 повышает помехоустойчивость и увеличивает крутизну фронтов сигнала от фотодатчика BLL Конденсатор С/ устраняет помехи от колебаний освещённости;

г) оптоизолированный частотный смеситель. На вход МК поступает сигнал с разностной «световой» частотой модуляции «/, -/2» от двух светодиодов HL1 (/j) и HL2{f2). Контур/1 / должен быть настроен на разностную частоту;

д) повышение чувствительности за счёт параллельного включения двух фотодиодов ВИ, BL2. Транзистор VTI находится в отсечке и не реагирует на медленный дрейф освещённости;

е) вместо ОУ DAI можно использовать аналоговый компаратор МК. Скорость приёма «лазерного» фотодиода - до 5 Мбит/с по оптоволоконному кабелю длиной Юм… 1 км.

а) использование прецизионного усилителя DA1 (фирма Analog Devices) для обеспечения долговременной стабильности сигналов от фотодатчика BLI\

б) нестандартное включение ИК-светодиода НИ в качестве фотоприёмника инфракрасного диапазона длин волн. Резистором регулируется усиление каскада на ОУ DAI\

в) усилитель-формирователь на «телевизионной» микросхеме DA1. Резистором регулируется чувствительность фотодатчика BLI\

г) двухполярное питание ОУ DA /. Конденсатор CI устраняет «звон» на фронтах сигнала, возникающий при резкой смене освещённости. Это стандартный приём и для других схем;

д) для уменьщения внещних помехтрансимпедансный усилитель DA 1.2(это преобразователь «ток-напряжение») охвачен обратной связью через интегратор DAI.3. Питание на ОУ подаётся от выходной линии МК. Опорное напряжение 0.5 В формирует повторитель DAL /;

Рис. 3.47. Схемы подключения фотодиодов к М К через усилители на микросхемах

{продолжение):

е) фотодиоды ВЦ, 5L2 должны освещаться поочерёдно, иначе их суммарное сопротивление может получиться столь низким, что сработает перегрузка по току источника питания;

ж) конденсатор С2 устраняет «звон» при большой собственной ёмкости фотодиода ВИ\

з) измеритель цвета на фотодиоде BL1 (фирма Advances Photonics), который имеет «колоко- лообразную» чувствительность в диапазоне 150…400 нм. Перемычкой ^S/задаётся усиление;

и) стабильные параметры фотоприёма в инфракрасном диапазоне обеспечиваются прецизионной микросхемой Z)/1/ (фирма Analog Devices), фильтром С4, R4…R6 и стабилитроном VDI.

к) связка «усилитель-детектор-формирователь» на ОУ DAI с регулировкой порога {R6)\О

Рис. 3.47. Схемы подключения фотодиодов к МК через усилители на микросхемах

(окончание):

л) компаратор на микросхеме DA1 обеспечивает высокую чувствительность и помехоустойчивость. Резистором J регулируется «световой» порог под конкретный тип фотодиода BL1\

м) резистором регулируется чувствительность и выставляется рабочая точка логического элемента DDI (желательно с характеристикой триггера Шмитта, например, К561ТЛ2);

н) BL1 - трёхцветный RGB-сенсор (фирма Laser Components), DAI - четырёхканальный трансимпедансный усилитель (фирма Promis Electro Optics). Один из четырёх аналоговых каналов усилителя не используется. Сигналы с выходов М К задают режимы работы и усиление DA1\ о) высокочувствительный регистратор фото- или радиационного излучения на специализированном pin-фотодиоде ВИ (подобные изготавливаются фирмой Hamamatsu Photonics). Элемент DA 1.1 выполняет функцию трансимпедансного, а DA1.2 - обычного усилителя сигналов.

Фототранзисторы в схемах на МК

Фототранзистор - это фоточувствительный полупроводниковый прибор, по структуре подобный биполярному или полевому транзистору. Разница заключается в том, что в его корпусе предусмотрено прозрачное окно, через которое световой поток попадает на кристалл. В отсутствии внешнего освещения, транзистор закрыт, ток коллектора ничтожно мал. При попадании лучей света на/?-А7-переход базы, транзистор открывается и резко возрастает его коллекторный ток.

Фототранзисторы, в отличие от фоторезисторов, обладают высоким быстродействием, а в отличие от фотодиодов - усилительными свойствами (Табл. ЗЛО).

Фототранзистор, в первом приближении, можно представить в виде эквивалентного фотодиода, включённого параллельно коллекторному переходу обычного транзистора. Коэффициент усиления фототока прямо пропорционален /7213. следовательно, во столько же раз чувствительность фототранзистора выше, чем у фотодиода.

Главным параметром, за которым надо следить при разработке схем на фототранзисторах, является коллекторный ток. Чтобы не превысить его норму, надо ставить в коллекторе/эмиттере достаточно большие сопротивления.

Фототранзисторы выпускают фирмы: Vishay, Kingbright, Avago Technologies и др. Типовые параметры: длина волны 550…570 или 830…930 нм, ток коллектора в освещенном состоянии 0.5… 10 мА, угол половинной чувствительности 15…60°, время нарастания/спада 2…6 мкс, рабочая температура -55…+ 100°С, проводимость п-р-п.

Существуют двух- и трёхвыводные фототранзисторы. Различаются они между собой в первую очередь отсутствием/наличием отвода от базы.

В двухвыводных фототранзисторах извне имеется доступ только к коллектору и эмиттеру. Это затрудняет стабилизацию рабочей точки и делает фотоприбор зависимым от температуры окружающей среды, особенно при слабом освещении.

Двухвыводные фототранзисторы и малогабаритные фотодиоды визуально похожи как «близнецы-братья». Выяснить, «что есть что», помогает прозвонка выводов омметром. Испытательное напряжение на его зажимах должно быть не менее 0.7 В. Если сопротивление в одном направлении значительно больше, чем в другом, значит это фотодиод. Если большое сопротивление прозванивается в двух направлениях, значит это фототранзистор (или вышедший из строя фотодиод).

Трёхвыводные фототранзисторы встречаются реже двухвыводных. Для их подключения применяют обычную транзисторную схемотехнику, а именно, стабилизируют рабочую точку при помощи делителей на резисторах, вводят обратные связи, термокомпенсацию и т.д.

На Рис. 3.48, а…е показаны схемы непосредственного подключения фототранзисторов к МК. На Рис. 3.49, а…з показаны схемы с транзисторными усилителями, на Рис. 3.50, а…г - с усилителями на микросхемах.

Рис. 3.48. Схемы непосредственного подключения фототранзисторов к МК:

а) фототранзистор 5L/ включается по схеме усилителя с общим эмиттером. Допускается его работа в режиме микротоков коллектора (большое сопротивление резистора RI), но при этом ухудшается температурная стабильность. Вместо входа АЦП МК часто используют обычную цифровую линию порта с пороговой фиксацией состояния «есть свет»/«нет света»;

б) параллельное включение фототранзисторов BL1, 5L2 увеличивает световую чувствительность. Фототранзисторы выполняют логическую функцию «ИЛИ» для сигналов от разных источников света. Конденсатор С/ снижает импульсные помехи. Запараллеленных фототранзисторов может быть больше, чем два;

в) фотоприёмник импульсных и модулированных световых сигналов. На медленные изменения освешённости устройство не реагирует из-за разделительного конденсатора С/. Вместо резистора можно использовать внутренний «pull-up» резистор МК;

г) фототранзистор BLI включается по схеме эмиттерного повторителя. Конденсатор С/ снижает импульсные «световые» помехи и мошные электрические наводки, которые могут «просачиваться» на вход МК, когда фототранзистор находится в закрытом состоянии;

д) втрёхвыводном фототранзисторе BLI отвод базы используется для организации обратной связи через транзистор VTI. Фильтр RI, С1 блокирует сигналы светового потока с частотой модуляцией ниже 100 Гц (для устранения срабатывания датчика от «мерцания» ламп накаливания);

е) конденсатор С/ и транзистор VT1 организуют «световой ФВЧ» для подавления сигналов светового потока с частотой модуляции ниже 80 Гц. Это препятствует прохождению на вход МК помех, вызванных «мерцанием» ламп накаливания сети 50 Гц.

а) входной узел «светового пистолета» от игровой видеоприставки «Dendy». Фототранзистор BL1 направляется на экран телевизора. Резистором /?2 регулируют дальность приёма;

б) полевой транзистор VTI осуществляет согласование сопротивлений RI и R2\

в) двухкаскадный усилитель на транзисторах разной проводимости КГ/, КТ’2 обеспечивает повышенную чувствительность фотодатчика ВИ\

г) улучшенный вариант фотодатчика для «светового пистолета» с авто подстрой кой под разную яркость фона. Элементы VTI, R1, R2, образуют динамический стабилизатор тока;

д) резистором R2 побирается такое положение, чтобы транзистор VTI был открыт при отсутствии освещения фототранзистора BLL Конденсатор С1 фильтрует помехи;

е) триггер Шмитта на полевых транзисторах VTI, КТ’2 определяет порог срабатывания фотодатчика BL1. Конденсатор С1 устраняет импульсные «световые» помехи;

ж) диоды VD1, повышают помехоустойчивость усилителя на транзисторе VTI\0

з) трёхкаскадный усилитель на транзисторах КГ/… с визуальной индикацией приёма посылок от инфракрасного датчика ^L/ светодиодом HL1.

Рис. 3.50. Схемы подключения фототранзисторов к МК через усилители на микросхемах:

а) фототранзисторный датчик BLI с интегральным компаратором DAI wc широким диапазоном регулирования параметров при помощи двух переменных резисторов R2, R3\

б) триггер Шмитта на логической микросхеме DZ)/улучшает помехоустойчивость и увеличивает крутизну фронтов сигналов, поступающих от фоготранзистора ВИ\

в) фототранзистор ^L/для повышения точности срабатывания подключается к внешнему интегральному компаратору DA1. Конденсатор С/ увеличивает крутизну фронтов сигналов;

г) полосовой фильтр на микросхеме тонального декодера DA / (фирма National Semiconductor) обрабатывает им пул ьсно-модулированные световые сигналы, принимаемые фототранзистором BLI. Центральная частота фильтра определяется по формуле /^„[кГц] = 1 / (/?2[кОм]-С4[мкФ]). Полоса пропускания фильтра обратно пропорциональна ёмкости конденсатора С2. Резистором /?/устанавливается оптимальный уровень входного сигнала для DAI в диапазоне 100…200 мВ.

Фоторезистор
ИМХО вымирающий вид. Последний раз я его видел еще в детстве. Обычно представляет собой такой металический кругляк со стеклянным окошком, в котором видна этакая . При освещении его сопротивление падает, правда незначительно, раза в три четыре.

Фототранзистор
Последнее время я на них натыкаюсь постоянно, неиссякаемый источник фототранзисторов — пятидюймовые дисководы. Последний раз я, по цене грязи, надыбал на радио барахолке штук 5 платок от дисковертов, там светотранзисторы стоят напротив дырок контроля записи и вращения дискеты. Еще сдвоенный фототранзистор (а может и фотодиод, как повезет) стоит в обычной шариковой мышке.
Выглядит как обычный светодиод, только корпус прозрачный. Впрочем, светодиоды тоже такие же бывают так что перепутать кто из них кто раз плюнуть. Но это не беда, партизан легко вычисляется обычным мультиметром. Достаточно включить омметр между его эмитером и коллектором (базы у него нет) и посветить на него, как его сопротивление рухнет просто катастрофически — с десятков килоом до считанных ом. Тот который у меня в детекторе вращения шестерен в роботе меняет свое сопротивление с 100кОм до 30 Ом. Работает фототранзистор подобно обычному — держит ток, но в качестве управляющего воздействия тут не ток базы, а световой поток.

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

В отличии от фототранзистора, может работать в двух разных режимах. В фотогальваническом и фотодиодном.
В первом, фотогальваническом, варианте фотодиод ведет себя как солнечная батарейка, то есть посветил на него — на выводах возникло слабенькое напряжение. Его можно усилить и применить =). Но куда проще работать в фотодиодном режиме. Тут мы подаем на фотодиод обратное напряжение. Поскольку он хоть и фото, но диод, то в обратную сторону напряжение не пойдет, а значит его сопротивление будет близко к обрыву, а вот если его засветить, то диод начнет очень сильно подтравливать и сопротивление его будет резко падать. Причем резко, на пару порядков, как у фототранзистора.

Спектр
Кроме типа прибора у него еще есть рабочий спектр. Например, фотодетектор заточенный на инфракрасный спектр (а их большинство) практически не реагирует на свет зеленого или синего светодиода. Плохо реагирует на лампу дневного света, но хорошо реагирует на лампу накаливания и красный светодиод, а уж про инфракрасный и говорить нечего. Так что не удивляйся если у тебя фотодатчик плохо реагирует на свет, возможно ты со спектром ошибся.

Подключение
Теперь пора показать как это подключить к микроконтроллеру. С фоторезистором все понятно, тут заморочек нет никаких — берешь и подцепляешь как по схеме.
С фотодиодом и фототранзистором сложней. Надо определить где у него анод/катод или эмитер/коллектор. Делается это просто. Берешь мультиметр, ставишь его в режим прозвонки диодов и цепляешься на свой датчик. Мультиметр в этом режиме показывает падение напряжения на диоде/транзисторе, а падение напряжения тут в основном зависит от его сопротивления U=I*R. Берешь и засвечиваешь датчик, следя за показаниями. Если число резко уменьшилось, значит ты угадал и красный провод у тебя на катоде/коллекторе, а черный на аноде/эмитторе. Если не изменилось, поменяй выводы местами. Если не помогло, то либо детектор дохлый, либо ты пытаешься добиться реакции от светодиода (кстати, светодиоды тоже могут служить детекторами света, но там не все так просто. Впрочем, когда будет время я покажу вам это технологическое извращение).


Теперь о работе схемы, тут все элементарно. В затемненном состоянии фотодиод не пропускает ток в обратном направлении, фототранзистор тоже закрыт, а у фоторезистора сопротивление весьма высоко. Сопротивление входа близко к бесконечности, а значит на входе будет полное напряжение питания aka логическая единица. Стоит теперь засветить диод/транзистор/резистор как сопротивление резко падает, а вывод оказывается посажен наглухо на землю, ну или весьма близко к земле. Во всяком случае сопротивление будет куда ниже 10кОмного резистора, а значит напряжение резко пропадет и будет где то на уровне логического нуля. В AVR и PIC можно даже резистор не ставить, вполне хватит внутренней подтяжки. Так что DDRx=0 PORTx=1 и будет вам счастье. Ну а обратывать это как обычную кнопку. Единственная сложность может возникнуть с фоторезистором — у него не настолько резко падает сопротивление, поэтому до нуля может и не дотянуть. Но тут можно поиграть величиной подтягивающего резистора и сделать так, чтобы изменения сопротивления хватало на переход через логический уровень.

Если надо именно измерять освещенность, а не тупо ловить светло/темно, то тогда надо будет подцеплять все на АЦП и подтягивающий резистор делать переменным, для подстройки параметров.

Есть еще продвинутый тип фотодатчиков — TSOP там встроенный детектор частоты и усилитель, но о нем я напишу чуть попозже.

З.Ы.
У меня тут некоторые запарки, поэтому сайт будет сильно тупить с обновлением, думаю это до конца месяца. Дальше надеюсь вернуться в прежний ритм.

Для нашего следующего проекта мы будем использовать фоторезистор. А рассмотрим мы реализацию ночника в спальню, который будет автоматически включаться когда темно и выключаться когда становится светло.

Сопротивление фоторезистора зависит от света, попадающего на него. Используя фоторезистор в связке с обычным резистором 4.7 кОм, мы получаем делитель напряжения, в котором напряжение проходящее через фоторезистор, изменяется, в зависимости от уровня освещенности.

Напряжение с делителя, мы подаем на вход АЦП Arduino. Там мы сравниваем полученное значение с определенным порогом и включаем или выключаем светильник.

Принципиальная схема делителя показана ниже. Когда освещенность увеличивается, сопротивление фоторезистора падает и соответственно на выходе делителя (и входе АЦП) напряжение увеличивается. Когда освещенность падает все наоборот.

На фото ниже, показана собранная схема на макетной плате. Напряжения 0В и 5В берутся с Arduino. Ножка А0 используется как вход АЦП.

Ниже показан скетч Arduino. В данном уроке мы просто включаем и выключаем LED, который встроен в плату Arduino. Более яркий LED-светодиод, вы можете подключить к ноге 13 (через резистор ~220 Ом). Если будете подключать более мощную нагрузку, такую как лампу накаливания, то ее следует подключать через реле или тиристор.

В коде программы есть закомментированные участки, они служат для отладки. Можно будет контролировать значение АЦП (от 0 до 1024). Также, необходимо в коде изменить значение 500 (порог включения и выключения) на то, которое вы подберете опытным путем, изменяя освещенность.

/* ** Ночник ** ** www.hobbytronics.co.uk */ int sensorPin = A0; // устанавливаем входную ногу для АЦП unsigned int sensorValue = 0; // цифровое значение фоторезистора void setup() { pinMode(13, OUTPUT); Serial.begin(9600); // старт последовательного вывода данных (для тестирования) } void loop() { sensorValue = analogRead(sensorPin); // считываем значение с фоторезистора if(sensorValue<500) digitalWrite(13, HIGH); // включаем else digitalWrite(13, LOW); // выключаем // Для отладки раскомментируйте нижеследующие строки //Serial.print(sensorValue, DEC); // вывод данных с фоторезистора (0-1024) //Serial.println(""); // возврат каретки //delay(500); }