Рубрики
Схемы на 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 представлена на следующем рисунке.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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