Фотоэлектрический датчик arduino

Arduino для начинающих. Урок 7. Подключение фоторезистора

Продолжаем серию уроков “Arduino для начинающих”. Сегодня подключаем фоторезистор (фотоэлемент) к плате Arduino. Фоторезисторы используются в роботах как датчики освещенности. В статье видео-инструкция, листинг программы, схема подключения и необходимые компоненты.

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

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

Видео-инструкция сборки модели Arduino с фоторезистором:

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

  • плата Arduino
  • 6 проводов “папа-папа”
  • фоторезистор
  • светодиод
  • резистор на 220 Ом
  • резистор на 10 кОм
  • программа Arduino IDE, которую можно скачать с сайта Arduino.

Необходимые компоненты для подключения фоторезистора на Arduino

Схема подключения модели Arduino с фоторезистором:

Схема подключения фоторезистора на Arduino

Для работы этой модели подойдет следующая программа (программу вы можете просто скопировать в Arduino IDE):

int led = 13; //переменная с номером пина светодиода
int ldr = 0; //и фоторезистора
void setup() //процедура setup
<
pinMode(led, OUTPUT); //указываем, что светодиод — выход
>
void loop() //процедура loop
<
if (analogRead(ldr)

Так выглядит собранная модель Arduino с фоторезистором:

Готовая модель подключения фоторезистора на Arduino

Если светодиод не реагирует на изменение освещенности, то попробуйте поменять число 800 в программе, если он все время горит — уменьшите, если не горит — увеличьте.

Смотрите также:

Посты по урокам:

Все посты сайта «Занимательная робототехника» по тегу Arduino.

Наш YouTube канал, где публикуются видео-уроки.

Не знаете, где купить Arduino? Все используемые в уроке комплектующие входят в большинство готовых комплектов Arduino, их также можно приобрести по отдельности. Подробная инструкция по выбору здесь. Низкие цены, спецпредложения и бесплатная доставка на сайтах AliExpress и DealExtreme. Если нет времени ждать посылку из Китая — рекомендуем интернет-магазины Амперка и DESSY. Низкие цены и быструю доставку предлагает интернет-магазин ROBstore. Смотри также список магазинов.

Источник

Фоторезистор (Датчик освещённости)

Фоторезистор (LDR, Light Depender Resistor) — компонент, меняющий сопротивление в зависимости от количества света падающего на него. В полной темноте он имеет максимальное сопротивление в сотни килоОм, а по мере роста освещённости сопротивление уменьшается до десятков килоОм.

Обозначение и рисунок на схемах.

Различаются фоторезисторы по диапазону сопротивления. Например:

  • VT83N1 — 12-100кОм
  • VT93N2 — 48-500кОм

Самый простой способ посмотреть на работу фоторезистора — подключить к нему мультиметр и смотреть за изменением сопротивления (1MΩ..1KΩ), закрывая фоторезистор рукой.

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

На уроке, посвящённому потенциометру, я упомянул, что пример чтения аналоговых выводов (File | Examples | 01.Basics | AnalogReadSerial) является универсальным. Проверим пример на фоторезисторе.

Соберём конструкцию по схеме.

Схема на макетной плате.

Опишем конструкцию словами. Из порта 5V идёт питание на первую ножку фоторезистора. Ко второй ножке присоединяются резистор, который соединяется с GND и отдельный провод, идущий на порт A0. Получается классический делитель напряжения.

Если запустить скетч и открыть окно Serial Monitor, то мы можем наблюдать изменения значений в зависимости от степени освещённости. Показания будут зависеть от второго резистора. Можете попробовать заменить резистор с другой маркировкой и проверить результат. В моём случае использовался резистор на 1 кОм. При этом показания менялись от 4 до 158 зимним днём, когда уже начинало темнеть, а свет в комнате ещё не включал. Если посветить на фоторезистор фонариком, то значение увеличивалось до 918 единиц.

Используем светодиод

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

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

Плавная регулировка светодиода

Если мы хотим менять яркость светодиода плавно, то встроенный светодиод не подойдёт. Нам понадобится вывод с символом

. Мы уже проходили подобный урок 01.Basics: Fade (затухание светодиода), поэтому добавим свой светодиод с резистором на макетную плату.

Мы можем явно указать отслеживаемый диапазон, например, от 4 до 200. Но показания могут быть меньше или больше этих значений и нам нужно написать условия, которые учитывали бы эту ситуацию. К счастью, есть готовая функция constrain(), которая делает эту работу за нас. Далее эти значения нужно распределить между диапазоном от 0 до 255 с помощью функции map(), так как светодиод работает только в этом диапазоне. Но если мы оставим как есть, то 4 будет соответствовать 0, а 200 будет соответствовать 255. При таком решении светодиод будет гореть ярче при хорошем освещении и тусклее при плохом освещении. А нам нужна обратная ситуация. Поэтому в функции мы применяем обратный порядок от 255 до 0. Таким образом, код получится следующим.

Проверяем. У меня работает, а у вас?

03.Analog: Calibration (Калибровка)

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

Запустим скетч File | Examples | 03.Analog | Calibration.

В течение первых пяти секунд мы записываем данные с датчика. Наибольшее и наименьшее значения попадают в переменные. Затем работаем с полученными данными.

05.Control: switchCase

Теперь вы без труда поймёте код из примера File | Examples | 05.Control | switchCase. Опытным путём выясняется, что показания фоторезистора колеблются от 0 до 600 (у вас могут быть другие значения, тогда измените). Делим интервал на четыре части при помощи map(): темно, дымка, средне, ярко. С помощью оператора выбора switch выбираем нужное значение и выводим сообщение. Схема остаётся прежней.

Модуль KY-018

Может выпускаться в виде готового модуля. На рисунке пример от магазина «Амперка».

Есть также популярный китайский модуль KY-018.

У модуля между выводами «S» и выводом питания +5 В (средний вывод) впаян резистор 10 кОм, что вместе с самим фоторезистором образует делитель напряжения, который удобно подключить к аналоговому входу Arduino.

Источник

#28. Подключение модуля освещенности к Arduino.

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

Два вида моделей освещённости.

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

Аналоговый модуль освещённости KY-018.

Arduino модуль освещённости KY-018 черного цвета. Этот модуль состоит из фоторезистора и линейного резистора 10 кОм. Сопротивление фоторезистора будет уменьшаться при наличии света, и увеличиваться при его отсутствии. Выход аналоговый, и он определяет интенсивность света.

Схема подключения модуля освещённости KY-018 к Arduino.

На модуль подается питание 5 Вольт, а в зависимости от освещенности в помещении, на выходе модуля (S) меняется напряжение от 0 до 5 Вольт. При подаче этого сигнала на аналоговый вход микроконтроллера, Arduino преобразует сигнал, при помощи АЦП, в диапазоне значений от 0 до 1023.

Скетч для модуля освещённости KY-018.

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

Цифровой датчик освещённости на LM393.

Модуль синего цвета устроен по-другому, и подключается уже к цифровому пину Arduino, и на выходе формирует логическую единицу, либо логический ноль. Давайте рассмотрим данный модуль и поговорим подробнее.

Модуль освещенности на LM393.

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

Технические параметры

  • Напряжение питания: 3.3 В. — 5.5 В.
  • Потребляемый ток: 10 мА.
  • Цифровой выход: TTL (лог 1 или лог 0)
  • Аналоговый выход: 0 В. … Vcc
  • Диаметр монтажного отверстия: 2.5 мм.
  • Выходной ток: 15 мА.
  • Габариты: 42мм. х 15мм. х 8мм.

Общие сведения датчик освещённости на LM393.

Существуют два модуля на базе LM393, их визуальное отличие только в количестве выводов (3 pin и 4 pin), дополнительный вывод добавлен для снятия прямых показаний с фоторезистора (аналоговый выход), по аналогии работы модуля KY-018. Рассмотрим четырех контактный вариант модуля. У этих двух модулей измерение осуществляется с помощью фоторезистора, который изменяет напряжение в цепи, в зависимости от количества света, попадающего на него. Чтобы представить, как свет будет влиять на фоторезистор, приведу краткую таблицу.

Модуль освещенности с четырьмя выводами содержит два выходных контакта, аналоговый и цифровой, и два контакта для подключения питания. Для считывания аналогово сигнала предусмотрен отдельный вывод «AO», с которого можно считать показания напряжения с 0 В … 3.3 В или 5 В, в зависимости от используемого источника питания. Цифровой вывод DO, устанавливается в лог «0» или лог «1», в зависимости от яркости, чувствительность выхода можно регулировать с помощью поворотного потенциометра. Выходной ток цифрового выхода способен выдать более 15 мА, что очень упрощает использование модуля, и дает возможность использовать его, минуя контроллер Arduino, и подключая его напрямую к входу одноканального реле, или одному из входов двухканального реле. Принципиальная схема модуля освещенности на LM393 с 3 pin и 4 pin, показана ниже.

Принципиальная схема модуля освещенности на LM393 с 4 pin.

Принципиальная схема модуля освещенности на LM393 с 3 pin.

Теперь, как же работает схема. Фоторезистор показан Foto (IN). Основная микросхема модуля — это компаратор LM393 (U1), который производит сравнение уровней напряжения на входах INA- и INA+. Чувствительность порога срабатывания задается с помощью потенциометра R2, и, в результате сравнений, на выходе D0, микросхемы U1, формируется лог «0», или лог «2», который поступает на контакт D0 разъема J1.

Назначение J1 (в исполнении 4 pin)

  • VCC — «+» питание модуля
  • GND — «-» питание модуля
  • D0 — цифровой выход
  • A0 -аналоговый выход

Назначение J1 (в исполнении 3 pin)

  • VCC — «+» питание модуля
  • GND — «-» питание модуля
  • D0 — цифровой выход

Подключение модуля освещенности к Arduino UNO.

Подключение модуля освещенности к Arduino NANO

  • Arduino UNO или Arduino NANO
  • Модуль освещенности, LM393
  • Провод DuPont, 2,54 мм.
  • Кабель USB 2.0

Подключение:

В данном примере буду использовать модуль освещенности LM393, 3 pin, и Arduino UNO, все данные будут передаваться в «Мониторинг порта». Схема не сложная, необходимо всего три провода, сначала подключаем D0 к 2 цифровому пину Arduino, осталось подключить питание GND к GND и VCC к 5V (можно запитать и от 3.3В), схема собрана, теперь надо подготовить программную часть.

Запускаем среду разработки и загружаем данный скетч, затем открываем мониторинг порта.

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

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

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

Появились вопросы или предложения, не стесняйся, пиши в комментарии!

Не забывайте подписываться на канал Youtube и вступайте в группы в Вконтакте и Facebook.

Всем Пока-Пока.

И до встречи в следующем уроке.

Понравилась статья? Поделитесь ею с друзьями:

Источник

Adblock
detector