Урок №2 Фоторезистор
В этой схеме, вы познакомитесь с фоторезистором, который изменяет свое сопротивление в зависимости от того, сколько света на него направленно.
Arduino не может сама интерпретировать сопротивление, т.к работает с напряжением, поэтому в этой схеме мы будем использовать делитель напряжения. Делитель состоит из двух резисторов, один из которых будет наш фоторезистор, а считываемое напряжение берется из точки между ними. Делитель будет выдавать высокое напряжение, когда фоторезистор получает много света и низкое, когда фоторезистор получает мало света.
Фоторезистор ардуино и датчик освещенности.
Фоторезисторы используются в робототехнике как датчики освещенности. Встроенный в схему фоторезистор позволяет определять степень освещенности, определять белые или черные участки на поверхности и в соответствие с этим двигаться по линии или совершать другие действия. Фоторезистор, как следует из названия, имеет прямое отношение к резисторам, которые часто встречаются практически в любых электронных схемах. В отличие от обычного резистора, фоторезистор может менять свое сопротивление в зависимости от уровня окружающего освещения. Это означает, что в электронной схеме будут постоянно меняться параметры, в первую очередь нас интересует напряжение, падающее на фоторезисторе. Фиксируя эти изменения напряжения на аналоговых пинах ардуино, мы можем менять логику работы схемы, создавая тем самым адаптирующиеся под вешние условия устройства.
Фоторезисторы достаточно активно применяются в самых разнообразных системах. Самый распространенный вариант применения — фонари уличного освещения. Если на город опускается ночь или стало пасмурно, то огни включаются автоматически. Можно сделать из фоторезистора экономную лампочку для дома, включающуюся не по расписанию, а в зависимости от освещения. На базе датчика освещенности можно сделать даже охранную систему, которая будет срабатывать сразу после того, как закрытый шкаф или сейф открыли и осветили. Как всегда, сфера применения любых датчиков ардуино ограничена лишь нашей фантазией.
Что нам понадобится?
Достаньте и подготовьте необходимые детали из коробки.
Arduino Uno
Мозг нашей схемы
Популярный микроконтроллер, его мощности достаточно пока нам для начальных экспериментов
Светодиод
Любого цвета
Длинная ножка на положительно заряженный, короткая на отрицательно
Макетная плата
на 400 точек
Соединения идут параллельно, плата разделена на 2 части горизонтальной линией
Резистор
На 10 кОм
О резисторах подробно мы подробно поговорим чуть ниже в разделе "Базовые знания"
Вы можете так же использовать для подключения фоторезистор с платой – он имеется в комплекте. С ним не будет нужен резистор. Схему его подключения вы можете подглядеть в уроке № 10.
Подключение фоторезистора к ардуино
Скетч
int led = 13; //переменная с номером пина светодиода
int photo = A0; //переменная с номером пина фоторезистора
void setup() //процедура setup
{
pinMode(led, OUTPUT); //указываем, что светодиод - выход
}
void loop() //процедура loop
{
if (analogRead(photo) < 100 ) digitalWrite(led, HIGH); // считываем значение photo 
//если показатель освещенности меньше 100, включаем светодиод
else digitalWrite(led, LOW); //иначе выключаем светодиод 
}

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

В этой программе мы использовали функцию if else (если – иначе). Она работает следующим образом: ЕСЛИ выполнено первое условие ( например: если значение analogRead < 1000, то включить светодиод) ИНАЧЕ выполнить второе действие ( в нашем случае выключить светодиод).

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

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

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

  • Определяем уровень сигнала с аналогового пина (фоторезистора)
  • Сравниваем уровень с пороговым значением. Максимально значение будет соответствовать темноте, минимальное – максимальной освещенности. Пороговое значение выберем равное 100 (очень ярко).
  • Если уровень меньше порогового – темно, нужно включать светодиод.
  • Иначе – выключаем светодиод.
Задания и вопросы:

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