Ардуино подключение фоторезистора. Датчик освещенности для arduino. Подключение фоторезистора к ардуино и работа с датчиком освещенности Подключение фоторезистора

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

Основные виды фотоэлектронных приборов. Общие сведения

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

Фоторезисторы - изменяют сопротивление при освещении

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

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

Энергия светового потока тратится на преодоление электронами запрещенной зоны и их переходу в зону проводимости. В качестве полупроводника у фоторезисторов используют материалы типа: Сульфид Кадмия, Сульфид Свинца, Селенит Кадмия и другие. От типа этого материала зависит спектральная характеристика фоторезистора

Интересно:

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

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

На ней изображена зависимость тока от напряжения при различных величинах светового потока: Ф - темнота, а Ф3 - это яркий свет. Она линейна. Еще одна важная характеристика - это чувствительность, она измеряется в мА(мкА)/(Лм*В). Что отражает, сколько тока протекает через резистор, при определенном световом потоке и приложенном напряжении.

Темновое сопротивление - это активное сопротивление при полном отсутствии освещения, обозначается Rт, а характеристика Rт/Rсв - это кратность изменения сопротивления от состояния фоторезистора в полном отсутствии освещения к максимально освещенному состоянию и минимально возможному сопротивлению соответственно.

У фоторезисторов есть существенный недостаток - его граничная частота. Это величина описывает максимальную частоту синусоидального сигнала, которым вы моделируете световой поток, при которой чувствительность снижается на 1.41 раз. В справочниках это отражается либо значением частоты, либо через постоянную времени. Она отражает быстродействие приборов, которое обычно занимает десятки микросекунд - 10^(-5) с. Это не позволяет использовать его там, где нужно высокое быстродействие.

Фотодиод - преобразует свет в электрический заряд

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

Если на фоторезисторе изменялась проводимость из-за движения носителей заряда в полупроводнике, то здесь происходит образование заряда на границе p-n перехода. Он может работать в режиме фотопреобразователя и фотогенератора.

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

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

У фотодиодов, как и у фоторезисторов есть граничная частота, только здесь она на порядки больше и достигает 10 МГц, что позволяет обеспечить неплохое быстродействие. P-i-N фотодиоды обладают большим быстродействием - 100МГц-1ГГц, как и диоды на основании барьера Шоттки. Лавинные диоды имеют граничную частоту в порядка 1-10 ГГц.

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

Когда диод не освещается светом - в цепи протекает только обратный темновой ток Iобрт (единицы и десятки мкА), а когда диод освещен к нему добавляется фототок, который зависит только от степени освещенности (десятки мА). Чем больше света - тем больше ток.

Фототок Iф равен:

где Sинт - интегральная чувствительность, Ф - световой поток.

Типовая схема включения фотодиода в режиме фотопреобразователя. Обратите внимание на то, как он подключен - в обратном направлении по отношению к источнику питания.

Другой режим - генератор. При попадании света на фотодиод на его выводах образуется напряжение, при этом токи короткого замыкания в таком режиме равняются десятки ампер. Это напоминает , но имеют малую мощность.

Фототранзисторы - открываются от количества падающего света

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

Иногда на УГО еще дополнительно изображается вывод базы. Вообще напряжения на фототранзистор подают также как и на обычный, а второй вариант включения - с плавающей базой, когда базовый вывод остаётся незадействованным.

В схему включают фототранзисторы подобным образом.

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

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

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

Из вольтамперной характеристики видна зависимость фототока от освещения, при этом он практически не зависит от напряжения коллектор-эмиттер.

Кроме биполярных фототранзисторов существуют и полевые. Биполярные работают на частотах 10-100 кГц, то полевые более чувствительны. Их чувствительность достигает нескольких Ампер на Люмен, и более «быстрые» - до 100 мГц. У полевых транзисторов есть интересная особенность, при максимальных значениях светового потока напряжение на затворе почти не влияет на ток стока.

Области применения фотоэлектронных приборов

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

Схема, изображенная выше - это простейший прибор для включения и выключения нагрузки при определенной освещенности. Фотодиод ФД320 При попадании на него света открывается и на R1 падает определенное напряжение, когда его величина достаточна для открытия транзистора VT1 - он открывается, и открывает еще один транзистор - VT2. Эти два транзистора - это двухкаскадный усилитель тока, необходим для запитки катушки реле K1.

Диод VD2 - нужен для гашения ЭДС-самоиндукции, которое образуется при переключениях катушки. На подводящий контакт реле, верхний по схеме, подключается один из проводов от нагрузки (для переменного тока - фаза или ноль).

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

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

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

В типографии при обрыве полосы бумаги свет попадает на фотоприемник и тем самым даёт сигнал оператору об этом. Излучатель стоит по одну сторону от бумаги, а фотоприемник с обратной стороны. Когда бумага рвётся, свет от излучателя достигает фотоприемника.

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

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

Информация таким образом ранее передавалась через ИК-порты мобильных телефонов. Скорость передачи ограничена, как последовательным способом передачи, так и принципом работы самого прибора.

В компьютерных мышках также используется технология связанная с фотоэлектронными приборами.

Применение для передачи сигналов в электронных схемах

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

Это нужно для гальванической развязки, быстрой передачи сигнала, а также для соединения цепей постоянного и переменного тока, как в случае управления симистором в цепи 220 В 5 В сигналом с микроконтроллера.

Они имеют условно-графическое обозначение, которое содержит информацию о типе используемых внутри оптопары элементов.

Рассмотрим пару примеров использования таких приборов.

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

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

В конкретном примере вы видите реализацию такой ОС из выходной цепи в обмотку обратной связи (управляющую) транзистора с помощью оптопары с порядковым обозначением U1.

Выводы

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

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

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

Напряжение с делителя, мы подаем на вход АЦП Arduino. Там мы сравниваем полученное значение с определенным порогом и включаем или выключаем светильник.

Принципиальная схема делителя показана ниже. Когда освещенность увеличивается, сопротивление фоторезистора падает и соответственно на выходе делителя (и входе АЦП) напряжение увеличивается. Когда освещенность падает все наоборот.

На фото ниже, показана собранная схема на макетной плате. Напряжения 0В и 5В берутся с Arduino. Ножка А0 используется как вход АЦП.

Ниже показан скетч Arduino. В данном уроке мы просто включаем и выключаем LED, который встроен в плату Arduino. Более яркий LED-светодиод, вы можете подключить к ноге 13 (через резистор ~220 Ом). Если будете подключать более мощную нагрузку, такую как лампу накаливания, то ее следует подключать через реле или тиристор.

В коде программы есть закомментированные участки, они служат для отладки. Можно будет контролировать значение АЦП (от 0 до 1024). Также, необходимо в коде изменить значение 500 (порог включения и выключения) на то, которое вы подберете опытным путем, изменяя освещенность.

/* ** Ночник ** ** www.hobbytronics.co.uk */ int sensorPin = A0; // устанавливаем входную ногу для АЦП unsigned int sensorValue = 0; // цифровое значение фоторезистора void setup() { pinMode(13, OUTPUT); Serial.begin(9600); // старт последовательного вывода данных (для тестирования) } void loop() { sensorValue = analogRead(sensorPin); // считываем значение с фоторезистора if(sensorValue<500) digitalWrite(13, HIGH); // включаем else digitalWrite(13, LOW); // выключаем // Для отладки раскомментируйте нижеследующие строки //Serial.print(sensorValue, DEC); // вывод данных с фоторезистора (0-1024) //Serial.println(""); // возврат каретки //delay(500); }

Основным элементом датчика являются фоторезисторы, фототранзисторы и фотодиоды.

Обозначение фоторезистора
Обозначение фоторезистора


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

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

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

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

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

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

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





Пример подключения фоторезистора к Ардуино

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


Ардуино подключение фоторезистора — схема
Так выглядит собранная модель Arduino с фоторезистором:

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

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

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

const int pinPhoto = A0;

const int led = 13;

pinMode(pinPhoto, INPUT);

pinMode(led, OUTPUT);

raw = analogRead(pinPhoto);

if(raw < 600)

digitalWrite(led, HIGH);

digitalWrite(led, LOW);

Датчик освещенности — ардуино подключение





BH1750FVI цифровой модуль освещенности для Arduino

Для измерения освещенности отлично подходят на базе сенсора BH1750 датчики Gy-30 и Gy-302.

Характеристики BH1750FVI цифровой модуль освещенности для Arduino:

  • Цифровой 16-битный цифровой датчик освещённости
  • Чувствителен к видимому свету и практически не подвержен влиянию инфракрасного излучения
  • Построен на микросхеме BH1750FVI
  • Напряжение питания: +3..+5 В постоянного тока.
  • Интерфейс: I2C.
  • Диапазон измеряемой освещенности: (1 — 65535 лк).
  • Размеры: 3,3 см х 1,5 см х 1,1 см
  • Вес: 5 г

// подключаем библиотеку I2C:

#include

// подключаем библиотеку датчика BH1750:

#include

// объявляем объект lightMeter:

BH1750 lightMeter;

void setup () {

Serial.begin(9600); //инициализация послед. порта

lightMeter.begin(); //инициализация датчика BH1750

void loop () {

//считываем показания с BH1750:

uint16_t lux = lightMeter.readLightLevel();

//выводим показания в послед. порт:

Serial.println(String(lux) + » lx»);

delay(100); //задержка 100 мсек

В скетче мы каждые 100 мсек считываем с датчика BH1750 показания освещённости в люксах и выводим эти данные в последовательный порт.

Проверяем работу. Для этого подключаем Ардуино к ПК. Запускаем среду разработки Arduino IDE и открываем монитор последовательного через меню Инструменты (Ctrl+Shift+M). Смотрим как меняются показания, если направить свет на датчик или если его затенить.

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

Arduino не может сама интерпретировать сопротивление, т.к работает с напряжением, поэтому в этой схеме используется делитель напряжения. Делитель, обычно состоит из двух резисторов, в нашем случае один из которых будет нашем фоторезистором, а считываемое напряжение Arduino берет из средней точки между ними, поступаемое на аналоговый вход Arduino (pin 0). Делитель будет выдавать высокое напряжение, когда фоторезистор получает много света и низкое, когда фоторезистор получает мало света (темнота).

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

1. Arduino UNO — 1 шт.

2. Светодиод — 1 шт.

3. Резистор 10 Ком. — 1 шт.

4. Резистор от 200 до 560 Ом. — 1 шт.

5. Фоторезистор

6. Соединительные провода.

Arduino и Фоторезистор. Схема соединений к уроку №6

Скачать урок со скетчем и подробным описанием урока:

Набор для экспериментов ArduinoKit
Скачать код программы для опыта №6:

Вид созданного урока на макетной схеме:

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

Всем удачи! Ждём ваши комментарии к ARDUINO УРОК 6 — ФОТОРЕЗИСТОР.

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

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

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

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

Фоторезисторы достаточно активно применяются в самых разнообразных системах. Самый распространенный вариант применения - фонари уличного освещения. Если на город опускается ночь или стало пасмурно, то огни включаются автоматически. Можно сделать из фоторезистора экономную лампочку для дома, включающуюся не по расписанию, а в зависимости от освещения. На базе датчика освещенности можно сделать даже охранную систему, которая будет срабатывать сразу после того, как закрытый шкаф или сейф открыли и осветили. Как всегда, сфера применения любых датчиков Arduino ограничена лишь нашей фантазией.

Какие фоторезисторы можно купить в интернет-магазинах

Самый популярный и доступный вариант датчика на рынке – это модели массового выпуска китайских компаний, клоны изделий производителя VT. Для начала работы с фоторезисторами вполне подойдет самый простой вариант.

Начинающему ардуинщику можно посоветовать купить готовый фотомодуль, который выглядит вот так:

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

Российскому радиолюбителю можно посоветовать обратить на российский датчик ФР. Встречающиеся в продаже ФР1-3, ФР1-4 и т.п. - выпускались ещё в союзовские времена. Но, несмотря на это, ФР1-3 - более точная деталь. Из этого следует и разница в цене За ФР просят не более 400 рублей. ФР1-3 будет стоить больше тысячи рублей за штуку.

Современная маркировка моделей, выпускаемых в России, довольно простая. Первые две буквы - ФотоРезистор, цифры после чёрточки обозначают номер разработки. ФР -765 - фоторезистор, разработка 765. Обычно маркируется прямо на корпусе детали

У датчика VT в схеме маркировке указаны диапазон сопротивлений. Например:

  • VT83N1 - 12-100кОм (12K - освещенный, 100K - в темноте)
  • VT93N2 - 48-500кОм (48K - освещенный, 100K - в темноте).

Иногда для уточнения информации о моделях продавец предоставляет специальный документ от производителя. Кроме параметров работы там же указывается точность детали. У всех моделей диапазон чувствительности расположен в видимой части спектра. Собирая датчик света нужно понимать, что точность срабатывания - понятие условное. Даже у моделей одного производителя, одной партии, одной закупки отличаться она может на 50% и более.

На заводе детали настраиваются на длину волны от красного до зелёного света. Большинство при этом «видит» и инфракрасное излучение. Особо точные детали могут улавливать даже ультрафиолет.

Достоинства и недостатки датчика

Основным недостатком фоторезисторов является чувствительность к спектру. В зависимости от типа падающего света сопротивление может меняется на несколько порядков. К минусам также относится низкая скорость реакции на изменение освещённости. Если свет мигает - датчик не успевает отреагировать. Если же частота изменения довольно велика - резистор вообще перестанет «видеть», что освещённость меняется.

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

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

Схема подключения датчика освещенности к Arduino довольна проста. Если мы используем фоторезистор, то в схеме подключения датчик реализован как делитель напряжения. Одно плечо меняется от уровня освещённости, второе - подаёт напряжение на аналоговый вход. В микросхеме контроллера это напряжение преобразуется в цифровые данные через АЦП. Т.к. сопротивление датчика при попадании на него света уменьшается, то и значение падающего на нем напряжения будет уменьшаться.

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

Сам монтаж платы не должен вызывать трудностей. Так как фоторезистор не имеет полярности, подключить можно любой стороной, к плате его можно припаять, подсоединить проводами с помощью монтажной платы или использовать обычные клипсы (крокодилы) для соединения. Источником питания в схеме является сам ардуино. Фоторезистор подсоединяется одной ногой к земле, другая подключается к АЦП платы (в нашем примере - АО). К этой же ноге подключаем резистор 10 кОм. Естественно, подключать фоторезистор можно не только на аналоговый пин A0, но и на любой другой.

Несколько слов относительно дополнительного резистора на 10 К. У него в нашей схеме две функции: ограничивать ток в цепи и формировать нужное напряжение в схеме с делителем. Ограничение тока нужно в ситуации, когда полностью освещенный фоторезистор резко уменьшает свое сопротивление. А формирование напряжения - для предсказуемых значений на аналоговом порту. На самом деле для нормальной работы с нашими фоторезисторами хватит и сопротивления 1К.

Меняя значение резистора мы можем «сдвигать» уровень чувствительности в «темную» и «светлую» сторону. Так, 10 К даст быстрое переключение наступления света. В случае 1К датчик света будет более точно определять высокий уровень освещенности.

Если вы используете готовый модуль датчика света, то подключение будет еще более простым. Соединяем выход модуля VCC с разъемом 5В на плате, GND – c землей. Оставшиеся выводы соединяем с разъемами ардуино.

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

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

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

Давайте напишем скетч для датчика освещенности, включающего или выключающего светодиод, подключенный по следующей схеме.

Алгоритм работы следующий:

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

#define PIN_LED 13 #define PIN_PHOTO_SENSOR A0 void setup() { Serial.begin(9600); pinMode(PIN_LED, OUTPUT); } void loop() { int val = analogRead(PIN_PHOTO_SENSOR); Serial.println(val); if (val < 300) { digitalWrite(PIN_LED, LOW); } else { digitalWrite(PIN_LED, HIGH); } }

#define PIN_LED 13

#define PIN_PHOTO_SENSOR A0

void setup () {

Serial . begin (9600 ) ;

void loop () {

Serial . println (val ) ;

if (val < 300 ) {

digitalWrite (PIN_LED , LOW ) ;

} else {

digitalWrite (PIN_LED , HIGH ) ;

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

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

Датчик освещенности и плавное изменение яркости подсветки

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

  • Яркость лампочки будем менять через ШИМ, посылая с помощью analogWrite() на пин со светодиодом значения от 0 до 255.
  • Для преобразования цифрового значения уровня освещения от датчика освещенности (от 0 до 1023) в диапазон ШИМ яркости светодиода (от 0 до 255) будем использовать функцию map().

Пример скетча:

#define PIN_LED 10 #define PIN_PHOTO_SENSOR A0 void setup() { Serial.begin(9600); pinMode(PIN_LED, OUTPUT); } void loop() { int val = analogRead(PIN_PHOTO_SENSOR); Serial.println(val); int ledPower = map(val, 0, 1023, 0, 255); // Преобразуем полученное значение в уровень PWM-сигнала. Чем меньше значение освещенности, тем меньше мощности мы должны подавать на светодиод через ШИМ. analogWrite(PIN_LED, ledPower); // Меняем яркость }

#define PIN_LED 10

#define PIN_PHOTO_SENSOR A0

void setup () {

Serial . begin (9600 ) ;

pinMode (PIN_LED , OUTPUT ) ;

void loop () {

int val = analogRead (PIN_PHOTO_SENSOR ) ;

Serial . println (val ) ;

int ledPower = map (val , 0 , 1023 , 0 , 255 ) ; // Преобразуем полученное значение в уровень PWM-сигнала. Чем меньше значение освещенности, тем меньше мощности мы должны подавать на светодиод через ШИМ.

analogWrite (PIN_LED , ledPower ) ; // Меняем яркость

В случае другого способа подключения, при котором сигнал с аналогового порта пропорционален степени освещенности, надо будет дополнительно «обратить» значение, вычитая его из максимального:

int val = 1023 – analogRead(PIN_PHOTO_RESISTOR);

Случайные статьи

Вверх