Фоторезистор ардуино примеры

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

Фоторезистор (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.

Источник

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. Смотри также список магазинов.

Источник

● Проект 13: Фоторезистор. Обрабатываем освещённость, зажигая или гася светодиоды

В этом эксперименте мы познакомимся с аналоговым датчиком для измерения освещенности – фоторезистором (рис. 13.1).


Необходимые компоненты:

Распространённое использование фоторезистора – измерение освещённости. В темноте его сопротивление довольно велико. Когда на фоторезистор попадает свет, сопротивление падает пропорционально освещенности. Схема подключения фоторезистора к Arduino показана на рис. 13.2. Для измерения освещённости необходимо собрать делитель напряжения, в котором верхнее плечо будет представлено фоторезистором, нижнее – обычным резистором достаточно большого номинала. Будем использовать резистор 10 кОм. Среднее плечо делителя подключаем к аналоговому входу A0 Arduino.

Напишем скетч чтения аналоговых данных и отправки их в последовательный порт. Содержимое скетча показано в листинге 13.1.

Порядок подключения:

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

Теперь создадим индикатор освещенности с помощью светодиодного ряда из 8 светодиодов. Количество горящих светодиодов пропорционально текущей освещенности. Собираем светодиоды по схеме на рис. 13.3, используя ограничительные резисторы номиналом 220 Ом.

Содержимое скетча для отображения текущей освещенности на линейке светодиодов показано в листинге 13.2.

Порядок подключения:

1. Подключаем фоторезистор и светодиоды по схеме на рис. 13.3.
2. Загружаем в плату Arduino скетч из листинга 13.2.
3. Регулируем рукой освещенность фоторезистора и по количеству горящих светодиодов определяем текущий уровень освещенности (рис. 13.3).

Нижний и верхний пределы освещенности мы берем из запомненных значений при проведении эксперимента по предыдущему скетчу (листинг 13.1). Промежуточное значение освещенности мы масштабируем на 8 значений (8 светодиодов) и зажигаем количество светодиодов пропорциональное значению между нижней и верхней границами.

Источник

Ардуино: датчик света на фоторезисторе

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

Еще одно применение датчиков света — это детектирование препятствия роботом, путешествующем по лабиринту. Либо детектирование линии роботом следопытом (LineFollower). Но в этих двух случаях, в паре с датчиком света используют специальный источник света.

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

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

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

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

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

Подключение

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

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

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

Программа

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

Запустив эту программу у нас в хакспейсе, мы получили следующие значения с датчика:

А теперь прикроем датчик рукой:

Видно, что значение сильно меняется. От 830 при прямом попадании света, до 500 в случае затенения (появление преграды на пути света). Зная такое поведение, мы можем численно определить порог срабатывания. Пусть он будет равен, скажем, 600. Не ровно 500, потому что мы хотим обезопасить себя от случайного срабатывания. Вдруг над датчиком пролетит муха — он слегка затенится, и покажет 530.

Наконец, добавим в программу некое действие, которое будет совершаться если уровень освещенности станет ниже заданного порога. Самое простое, что мы можем сделать — это зажигать на Ардуино штатный светодиод #13. Получается такая вот программа:

Накрываем датчик рукой (или выключаем свет в комнате) — светодиод зажигается. Убираем руку — гаснет. Работает, однако. А теперь представьте, что вы зажигаете не светодиод, а подаете сигнал на реле, которое включает лампу в подъезде вашего дома. Получаеся готовый прибор для экономии электроэнергии. Или ставите такой датчик на робота, и он при наступлении ночи ложится спать вместе с вами 🙂 В общем, как говорил профессор Фарнсворт, у датчика света тысяча и одно применение!

К размышлению

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

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

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

Источник