Измерение интенсивности света с помощью фоторезистора и Arduino


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

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

Внешний вид проекта для измерения интенсивности света с помощью фоторезистора и Arduino

Аналогичный проект на основе микроконтроллера AVR мы уже рассматривали на нашем сайте – автоматический свет на лестнице.

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

  1. Плата Arduino Uno (купить на AliExpress).
  2. Фоторезистор (LDR - Light Dependent Resistor) (купить на AliExpress).
  3. Резистор 100 кОм (купить на AliExpress).
  4. Резистор 330 Ом (купить на AliExpress).
  5. Светодиод (купить на AliExpress).
  6. Модуль реле на 5 В.
  7. Электрическая лампочка (Bulb/CFL).
  8. Соединительные провода.
  9. Макетная плата.

Что такое фоторезистор

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

Внешний вид фоторезисторов

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

Работа схемы

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

Схема подключения фоторезистора к плате ArduinoКак видно из схемы, мы использовали делитель напряжения, состоящий из фоторезистора и резистора на 100 кОм. Выход делителя напряжения подключается к аналоговому контакту A0 платы Arduino, который считывает это значение напряжения и преобразует его в цифровое значение. То есть если интенсивность света увеличивается, то сопротивление фоторезистора уменьшается, следовательно, напряжение на выходе делителя напряжения увеличивается. И, наоборот, интенсивность света ↓ - сопротивление фоторезистора↑ - напряжение на аналоговом контакте↓ - свет включается.

В коде программы для Arduino мы смотрим, если значение на выходе АЦП контакта A0 упало ниже 700, мы считаем что это темно и поэтому включаем свет. Если же значение больше 700, то мы считаем это светло и поэтому выключаем свет.

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

Схема подключения фоторезистора и реле к плате ArduinoИ собранная конструкция нашего проекта в этом случае будет выглядеть следующим образом:

Собранная конструкция с фоторезистором

Объяснение программы для Arduino

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

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

Контакты, к которым подключены светодиод и реле, установим в режим вывода данных, а контакт, к которому подключен фоторезистор – в режим ввода данных.

Далее в программе мы считываем значение напряжения на входе контакта A0 платы Arduino – оно может уменьшаться и увеличиваться в зависимости от сопротивления фоторезистора.

Далее записываем условия для наступления темноты и когда вокруг достаточно светло. Если значение с выхода АЦП контакта A0 платы Arduino меньше 700, мы включаем светодиод (лампочку), если же больше 700 – то выключаем светодиод (лампочку).

Исходный код программы

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

Видео, демонстрирующее работу схемы

(Проголосуй первым!)
Загрузка...
2 074 просмотров

Комментарии

Измерение интенсивности света с помощью фоторезистора и Arduino — 2 комментария

  1. Почему-то при сборке схемы лампочка постоянно мигает, вместо того, чтобы светить, в чём может быть проблема?

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *