Оптические датчики. Фоторезисторы в схемах на МК. Как применять фоторезисторы, фотодиоды и фототранзисторы Фоторезистор уличного освещения на ардуино

  1. Фототорезистор: http://ali.ski/5GDvP7
  2. Диоды и резисторы: http://fas.st/KK7DwjyF
  3. Макетная плата: http://ali.ski/rq8wz8
  4. Arduino uno: http://ali.ski/gC_mOa

В этом уроке мы подключим к Arduino фоторезистор. который будет управлять встроенным светодиодом.

Фоторезистор: Сопротивление фоторезисторов уменьшается под воздействием света и увеличивается в темноте. Фоторезисторы просты в использовании, но достаточно медленно реагируют на изменение уровня освещенности и имеют весьма низку. точность. Как правило, сопротивление фоторезисторов может варьироваться от 50 Ом при дневном освещении до более чем 10 МОм в темноте.

Сам фоторезистор мы будем подключать к земле через резистор в 10 кОМ и эту же ножку будем подключать к аналоговому пину Ардуино A0, вторую ножку фоторезистора будем подключать к 5 вольтам ардуино. Все это наглядно в приведено в схеме вначале статьи.

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

Int PhotosensorPin = A0; //Указываем пин к которому подклюен Фоторезистор unsigned int sensorValue = 0; //Объявляем переменную для хранения значений. void setup() { pinMode(13, OUTPUT); Serial.begin(9600); } void loop() { sensorValue = analogRead(PhotosensorPin); //Считываем значения с фоторезистора if(sensorValue<700) digitalWrite(13, HIGH); //Включаем else digitalWrite(13, LOW); // Выключаем Serial.print(sensorValue, DEC); //Вывод данных с фоторезистора (0-1024) Serial.println(""); delay(500); }

После загрузки программного кода в ардуино, необходимо открыть монитор порта.

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

Демонстрацию работы фоторезистора можно посмотреть в видео ниже.

Видео:

Датчик света — это прибор, который позволяет нашему устройству оценивать уровень освещенности. Для чего нужен такой датчик? Например, для системы уличного освещения, чтобы включать лампы только тогда, когда на город спускается ночь. Еще одно применение датчиков света — это детектирование препятствия роботом, путешествующем по лабиринту. Либо детектирование линии роботом следопытом (LineFollower). Но в этих двух случаях, в паре с датчиком света используют специальный источник света. Мы же начнем с простого примера, и подключим к микроконтроллеру Ардуино Уно один из самых распространенных датчиков — фоторезистор. Как долнжо быть понятно из названия, фоторезистор — это резистор, который меняет свое сопротивление в зависимости от падающего на него света. Выглядит этот радиоэлемент так: Различаются фоторезисторы по диапазону сопротивления. Например:

  • VT83N1 — 12-100кОм;
  • VT93N2 — 48-500кОм.
Это значит, что в темноте сопротивления фоторезистора равно 12кОм, а при определенной тестовой засветке — 100кОм. Конкретно в случае этих светодиодов, тестовая засветка имела параметры: освещенность -10 Люкс, и цветовая теплота — 2856К. Кроме фоторезистора, в датчиках света часто используют фотодиод и фототранзистор. Оба выглядят как типичные светодиоды:

1. Подключение

Для того, чтобы подключить наш фоторезистор к Ардуино Уно, необходимо будет вспомнить . Ведь на выходе цепи фоторезистора мы получим некое напряжение, в диапазоне от 0 до 5 Вольт, которое нам потребуется превратить во вполне себе конкретное число, с которым уже будет работать программа микроконтроллера. Держа в уме, что в Ардуино Уно есть 6 аналоговых входов на ногах A0-A5, подключаем фоторезистор по следующей схеме:

Внешний вид макета


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

2. Программа

Подключив фоторезистор по нехитрой схеме, начинаем писать программу. Первое что мы сделаем, это выведем необработанный сигнал с аналогового входа в последовательный порт, для того чтобы просто понять, как меняется значение на входе A0. Соответствующая программа имеет вид: const int pinPhoto = A0; int raw = 0; void setup() { Serial.begin(9600); pinMode(pinPhoto, INPUT); } void loop() { raw = analogRead(pinPhoto); Serial.println(raw); delay(200); } Запустив эту программу у нас в хакспейсе, мы получили следующие значения с датчика:
А теперь прикроем датчик рукой:
Видно, что значение сильно меняется. От 830 при прямом попадании света, до 500 в случае затенения (появление преграды на пути света). Зная такое поведение, мы можем численно определить порог срабатывания. Пусть он будет равен, скажем, 600. Не ровно 500, потому что мы хотим обезопасить себя от случайного срабатывания. Вдруг над датчиком пролетит муха — он слегка затенится, и покажет 530. Наконец, добавим в программу некое действие, которое будет совершаться если уровень освещенности станет ниже заданного порога. Самое простое, что мы можем сделать — это зажигать на Ардуино штатный светодиод #13. Получается такая вот программа: const int pinPhoto = A0; const int led = 13; int raw = 0; void setup() { pinMode(pinPhoto, INPUT); pinMode(led, OUTPUT); } void loop() { raw = analogRead(pinPhoto); if(raw < 600) digitalWrite(led, HIGH); else digitalWrite(led, LOW); delay(200); } Накрываем датчик рукой (или выключаем свет в комнате) — светодиод зажигается. Убираем руку — гаснет. Работает, однако. А теперь представьте, что вы зажигаете не светодиод, а подаете сигнал на реле, которое включает лампу в подъезде вашего дома. Получаеся готовый прибор для экономии электроэнергии. Или ставите такой датчик на робота, и он при наступлении ночи ложится спать вместе с вами 🙂 В общем, как говорил профессор Фарнсворт, у датчика света тысяча и одно применение!

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

Принцип действия

Схема подключения фотореле для включает датчик, усилитель и Фотопроводник PR1 под действием света изменяет сопротивление. При этом изменяется величина проходящего через него электрического тока. Сигнал усиливается составным транзистором VT1, VT2 (схема Дарлингтона), а с него поступает на исполнительный механизм, которым является K1.

В темноте сопротивление фотодатчика составляет несколько мОм. Под действием света оно снижается до нескольких кОм. При этом открываются транзисторы VT1, VT2, включающие реле K1, управляющим цепью нагрузки через контакт K1.1. Диод VD1 не пропускает ток самоиндукции при выключении реле.

Несмотря на простоту, схема фотореле обладает высокой чувствительностью. Чтобы ее выставить на необходимый уровень, используется резистор R1.

Напряжение питания подбирается по параметрам реле и составляет 5-15 В. Ток обмотки не превышает 50 мА. Если необходимо его увеличить, можно применить более мощные транзисторы и реле. Чувствительность фотореле повышается с увеличением напряжения питания.

Вместо фоторезистора можно установить фотодиод. Если необходим датчик с повышенной чувствительностью, используются схемы с фототранзисторами. Их применение целесообразно с целью экономии электричества, поскольку минимальный предел срабатывания обычного прибора составляет 5 лк, когда окружающие предметы еще различимы. Порог 2 лк соответствует глубоким сумеркам, после которых через 10 мин наступает темнота.

Фотореле целесообразно применять даже при ручном управлении освещением, поскольку можно забыть выключить свет, а датчик самостоятельно "позаботится" об этом. Установить его несложно, а цена вполне доступна.

Характеристики фотоэлементов

Выбор фотореле определяют следующие факторы:

  • чувствительность фотоэлемента;
  • напряжение питания;
  • коммутируемая мощность;
  • внешняя среда.

Чувствительность характеризуется как отношение образующегося фототока к величине внешнего потока света и измеряется в мкА/лм. Она зависит от частоты (спектральная) и интенсивности света (интегральная). Для управления освещением в быту важна последняя характеристика, зависящая от суммарного светового потока.

Величину номинального напряжения можно найти на корпусе прибора или в сопроводительном документе. Устройства зарубежного производства могут иметь другие стандарты напряжения питания.

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

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

Модели заводского изготовления

Раньше схема фотореле собиралась своими руками. Сейчас в этом нет необходимости, так как устройства стали дешевле, а функциональность расширилась. Их применяют не только для внешнего или внутреннего освещения, но также для управлением поливом растений, системой вентиляции и др.

1. Фотореле ФР-2

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

Схема фотореле фр-2 промышленного изготовления применяется для автоматического управления уличным освещением. Здесь также является реле К1. К базе транзистора VT1 подключены фоторезистор ФСК-Г1 с резисторами R4 и R5.

Питание производится от однофазной сети 220 В. Когда освещенность мала, сопротивление ФСК-Г1 имеет большую величину и сигнала на базе VT1 недостаточно для его открывания. Соответственно закрыт и транзистор VT2. Реле K1 включено, и его рабочие контакты замкнуты, поддерживая лампы освещения горящими.

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

2. Виды фотореле

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

  • с выносным датчиком, расположенным вне корпуса изделия, к которому подводятся 2 провода;
  • люкс 2 - устройство с высокой надежностью и уровнем качества;
  • фотореле с питанием 12 В и нагрузкой не выше ;
  • модуль с таймером, монтирующийся на ДИН-рейку;
  • устройства ИЭК отечественного производителя с высоким качеством и функциональностью;
  • AZ 112 - автомат с высокой чувствительностью;
  • ABB, LPX - надежные производители устройств европейского качества.

Способы подключения фотореле

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

Для дома такой способ применяется редко.

Перед установкой проверяется напряжение сети питания ~220 В. Подключение производится от автоматического выключателя. Фотодатчик устанавливается таким образом, чтобы свет от фонаря не попадал на него.

На приборе применяются клеммы для подключения проводов, что делает монтаж проще. Если они отсутствуют, применяется распределительная коробка.

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

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

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

Фотореле для уличного освещения

Для подключения фотореле схема наносится на его корпус. Ее можно найти в документации на прибор.

Из прибора выходят три провода.

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

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

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

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

Особенности фотореле для уличного освещения: схема

При установке фотореле на улице надо учитывать некоторые факторы.

  1. Наличие питающего напряжения и соответствие мощностей контактов и нагрузки.
  2. Не допускается установка приборов рядом с легко воспламеняющимися материалами и в агрессивной среде.
  3. Основание прибора размещается внизу.
  4. Перед датчиком не должны находиться качающиеся предметы, например, ветви деревьев.

Подсоединение проводов выполняется через распределительную коробку для улицы. Она закрепляется рядом с фотореле.

Выбор фотореле

  1. Возможность регулирования порога срабатывания позволяет производить подстройку чувствительности датчика в зависимости от времени года или при пасмурной погоде. В результате обеспечивается экономия электричества.
  2. Минимум трудозатрат требуется при монтаже фотореле со встроенным чувствительным элементом. При этом не требуются особые навыки.
  3. Реле с таймером хорошо программируется для своих потребностей и работы в установленном режиме. Можно настроить прибор для отключения в ночное время. Индикация на корпусе прибора и кнопочное управление позволяют легко производить настройку.

Заключение

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

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

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

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

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

Какие фоторезисторы можно купить в интернет-магазинах

Самый популярный и доступный вариант датчика на рынке – это модели массового выпуска китайских компаний, клоны изделий производителя VT. Там не всегда можно разораться, кто и что именно производит тот или иной поставщик, но для начала работы с фоторезисторами вполне подойдет самый простой вариант.

Начинающему ардуинщику можно посоветовать купить готовый фотомодуль, который выглядит вот так:


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

Российскому радиолюбителю можно посоветовать обратить на российский датчик ФР. Встречающиеся в продаже ФР1-3, ФР1-4 и т.п. - выпускались ещё в союзовские времена. Но, несмотря на это, ФР1-3 – более точная деталь. Из этого следует и разница в цене За ФР просят не более 400 рублей. ФР1-3 будет стоить больше тысячи рублей за штуку.

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

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

У датчика VT в схеме маркировке указаны диапазон сопротивлений. Например:

  • VT83N1 - 12-100кОм (12K – освещенный, 100K – в темноте)
  • VT93N2 - 48-500кОм (48K – освещенный, 100K – в темноте).

Иногда для уточнения информации о моделях продавец предоставляет специальный документ от производителя. Кроме параметров работы там же указывается точность детали. У всех моделей диапазон чувствительности расположен в видимой части спектра. Собирая датчик света нужно понимать, что точность срабатывания - понятие условное. Даже у моделей одного производителя, одной партии, одной закупки отличаться она может на 50% и более.

На заводе детали настраиваются на длину волны от красного до зелёного света. Большинство при этом «видит» и инфракрасное излучение. Особо точные детали могут улавливать даже ультрафиолет.

Достоинства и недостатки датчика

Основным недостатком фоторезисторов является чувствительность к спектру. В зависимости от типа падающего света сопротивление может меняется на несколько порядков. К минусам также относится низкая скорость реакции на изменение освещённости. Если свет мигает - датчик не успевает отреагировать. Если же частота изменения довольно велика - резистор вообще перестанет «видеть», что освещённость меняется.

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

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

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

Схема подключения датчика освещенности к ардуино довольна проста. Если мы используем фоторезистор, то в схеме подключения датчик реализован как делитель напряжения. Одно плечо меняется от уровня освещённости, второе – подаёт напряжение на аналоговый вход. В микросхеме контроллера это напряжение преобразуется в цифровые данные через АЦП. Т.к. сопротивление датчика при попадании на него света уменьшается, то и значение падающего на нем напряжения будет уменьшаться.

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

Сам монтаж платы не должен вызывать трудностей. Так как фоторезистор не имеет полярности, подключить можно любой стороной, к плате его можно припаять, подсоединить проводами с помощью монтажной платы или использовать обычные клипсы (крокодилы) для соединения. Источником питания в схеме является сам ардуино. Фоторезистор подсоединяется одной ногой к земле, другая подключается к АЦП платы (в нашем примере – АО). К этой же ноге подключаем резистор 10 кОм. Естественно, подключать фоторезистор можно не только на аналоговый пин A0, но и на любой другой.

Несколько слов относительно дополнительного резистора на 10 К. У него в нашей схеме две функции: ограничивать ток в цепи и формировать нужное напряжение в схеме с делителем. Ограничение тока нужно в ситуации, когда полностью освещенный фоторезистор резко уменьшает свое сопротивление. А формирование напряжения – для предсказуемых значений на аналоговом порту. На самом деле для нормальной работы с нашими фоторезисторами хватит и сопротивления 1К.

Меняя значение резистора мы можем “сдвигать” уровень чувствительности в “темную” и “светлую” сторону. Так, 10 К даст быстрое переключение наступления света. В случае 1К датчик света будет более точно определять высокий уровень освещенности.

Если вы используете готовый модуль датчика света, то подключение будет еще более простым. Соединяем выход модуля VCC с разъемом 5В на плате, GND – c землей. Оставшиеся выводы соединяем с разъемами ардуино.

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

Пример скетча датчика освещенности на фоторезисторе

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

Написать скетч для датчика освещенности довольно просто. Нам нужно только снять текущее значение напряжения с того аналогового пина, к которому подключен датчик. Делается это с помощью известной нам всем функции analogRead(). Затем мы можем выполнять какие-то действия, в зависимости от уровня освещенности.

Давайте напишем скетч для датчика освещенности, включающего или выключающего светодиод, подключенный по следующей схеме.

Алгоритм работы таков:

  • Определяем уровень сигнала с аналогового пина.
  • Сравниваем уровень с пороговым значением. Максимально значение будет соответствовать темноте, минимальное – максимальной освещенности. Пороговое значение выберем равное 300.
  • Если уровень меньше порогового – темно, нужно включать светодиод.
  • Иначе – выключаем светодиод.
#define PIN_LED 13 #define PIN_PHOTO_SENSOR A0 void setup() { Serial.begin(9600); pinMode(PIN_LED, OUTPUT); } void loop() { int val = analogRead(PIN_PHOTO_SENSOR); Serial.println(val); if (val < 300) { digitalWrite(PIN_LED, LOW); } else { digitalWrite(PIN_LED, HIGH); } }

Прикрывая фоторезистор (руками или светонепроницаемым предметом), можем наблюдать включение и выключение светодиода. Изменяя в коде пороговый параметр, можем заставлять включать/выключать лампочку при разном уровне освещения.

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

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

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

  • Яркость лампочки будем менять через ШИМ, посылая с помощью analogWrite() на пин со светодиодом значения от 0 до 255.
  • Для преобразования цифрового значения уровня освещения от датчика освещенности (от 0 до 1023) в диапазон ШИМ яркости светодиода (от 0 до 255) будем использовать функцию map().

Пример скетча:

#define PIN_LED 10 #define PIN_PHOTO_SENSOR A0 void setup() { Serial.begin(9600); pinMode(PIN_LED, OUTPUT); } void loop() { int val = analogRead(PIN_PHOTO_SENSOR); Serial.println(val); int ledPower = map(val, 0, 1023, 0, 255); // Преобразуем полученное значение в уровень PWM-сигнала. Чем меньше значение освещенности, тем меньше мощности мы должны подавать на светодиод через ШИМ. analogWrite(PIN_LED, ledPower); // Меняем яркость }

В случае другого способа подключения, при котором сигнал с аналогового порта пропорционален степени освещенности, надо будет дополнительно «обратить» значение, вычитая его из максимального:

Int val = 1023 – analogRead(PIN_PHOTO_RESISTOR);

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

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

#define PIN_RELAY 10 #define PIN_PHOTO_SENSOR A0 void setup() { pinMode(PIN_RELAY, OUTPUT); digitalWrite(PIN_RELAY, HIGH); } void loop() { int val = analogRead(PIN_PHOTO_SENSOR); if (val < 300) { // Светло, выключаем реле digitalWrite(PIN_RELAY, HIGH); } else { // Темновато, включаем лампочку digitalWrite(PIN_RELAY, LOW); } }

Заключение

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

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

Сопротивление фоторезистора зависит от света, попадающего на него. Используя фоторезистор в связке с обычным резистором 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); }