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

Фоторезисторы дают вам возможность определять интенсивность освещения.

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

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

Фоторезисторы по своей сути являются резисторами, которые изменяют свое сопротивление (измеряется в Ом) в зависимости от того, какое количество света попадает на их чувствительные элементы. Как уже говорилось выше, они очень дешевые, имеют различные размеры и технические характеристики, но в большинстве своем не очень точные. Каждый фоторезистор ведет себя несколько иначе по сравнению с другим, даже если они из одной партии от производителя. Различия в показаниях могут достигать 50% и даже больше! Так что рассчитывать на прецизионные измерения не стоит. В основном их используют для определения общего уровня освещенности в конкретных, "локальных", а не "абсолютных" условиях.

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


Среднестатистические технические характеристики фоторезисторов

Приведенные ниже технические характеристики относятся к фоторезисторам из магазина Adafruit. Эти фоторезисторы обладают характеристиками, схожими с PDV-P8001. Практически все фоторезисторы имеют различные технические характеристики, хотя работают они очень схоже. Если продавец дает вам ссылку на даташит вашего фоторезистора, ознакомьтесь именно с ними, а не с тем, что изложено ниже.

  • Размер: круглый, 5 мм (0.2") в диаметре (другие фоторезисторы могут достигать до 12 мм / 0.4" в диаметре!).
  • Цена: около $1.00 в магазине Adafruit.
  • Диапазон сопротивления: от 200 кОм (темно) до 10 кОм (светло).
  • Диапазон чувствительности: чувствительные элементы фиксируют длины волн в диапазоне от 400 нм (фиолетовый) до 600 нм (оранжевый).
  • Питание: любой с напряжением до 100 В, используют силу тока в среднем около 1 мА (зависит от напряжения питания).

Проблемы при использовании нескольких сенсоров

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

Измерение уровня освещенности

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


Обратите внимание, что характеристика нелинейная, а имеет логарифмический характер.

Фоторезисторы не воспринимают весь диапазон световых волн. В большинстве исполнений они чувствительны к световым волнам в диапазоне между 700 нм (красный) и 500 нм (зеленый).


То есть индикация диапазона световых волн, который соответствует голубому, не будет таким же эффективным как индикация зеленого/желтого диапазона!

Что такое единица измерения «люкс»?

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


Проверка фоторезистора

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



Подключение фоторезистора

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


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


Использование фоторезисторов

Метод считывания аналогового напряжения

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


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

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


В этой таблице приведены приблизительные значения аналогового напряжения на основании уровня освещенности/сопротивления при подключении напряжения питания 5 В и 10 кОм понижающего резистора.

Если вы хотите использовать сенсор на ярко освещенной территории и использовать резистор 10 кОм, он быстро "сдуется". То есть он практически моментально достигнет допустимого уровня напряжения 5 В и не сможет различать более интенсивное освещение. В этом случае вам стоит заменить резистор на 10 кОм на резистор 1кОм. При такой схеме резистор не сможет определять уровень темноты, но лучше определи оттенки высокого уровня освещенности. В общем, вам стоит с этим поиграться в зависимости от ваших условий!

Кроме того, вы также сможете использовать формулу "Axel Benz" для базовых измерений минимального и максимального значения сопротивления с помощью мультиметра и дальнейшего нахождения значения сопротивления резистора с помощью: Понижающий резистор = квадратный корень(Rmin * Rmax), что в результате даст вам гораздо лучший результат в виде:


В таблице выше приведены приблизительные значения аналогового напряжения при использовании сенсора с питанием от 5 В и понижающим резистором 1 кОм.

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

Vo = Vcc (R / (R + Photocell))

То есть напряжение обратно пропорционально сопротивлению фоторезистора, которое, в свою очередь, обратно пропорционально уровню освещения.

Простой пример использования фоторезистора

В этом скетче берутся считываемые аналоговые значения для определения яркости светодиода. Чем темнее будет, тем ярче будет светить светодиод! Не забудьте, что светодиод должен быть подключен к ШИМ контакту для работы данного примера. В данном случае используется контакт 11.


Этот пример предполагает, что вы знакомы с основами программирования Arduino.

/* простой проверочный скетч для фоторезистора.

Подключите одну ногу фоторезистора к 5 В, вторую к аналоговому пину Analog 0.

После этого подключите резистор на 10 кОм между Analog 0 и землей.

Через резистор подключите светодиод между 11 пином и землей. */

int photocellPin = 0; // сенсор и понижающий резистор 10 кОм подключены к a0

int photocellReading; // считываем аналоговые значения с делителя сенсора

int LEDpin = 11; // подключаем красный светодиод к пину 11 (ШИМ пин)

int LEDbrightness; //

void setup(void) {

// информацию для дебагинга мы будем отправлять на серийный монитор

Serial.begin(9600);

void loop(void) {

Serial.println(photocellReading); // аналоговые значения с сенсора

// светодиод горит ярче, если уровень освещенности на датчике уменьшается

// это значит, что мы должны инвертировать считываемые значения от 0-1023 к 1023-0

photocellReading = 1023 - photocellReading;

//теперь мы должны преобразовать диапазон 0-1023 в 0-255, так как именно такой диапазон использует analogWrite

LEDbrightness = map(photocellReading, 0, 1023, 0, 255);

analogWrite(LEDpin, LEDbrightness);


Можете попробовать другие резисторы в зависимости от уровня освещенности, который вы хотите измерять!

Простой код для аналоговых измерений уровня освещенности

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


/* Простой проверочный скетч для фоторерезистора.

Подключите одну ногу фоторезистора к 5 В, вторую к пину Analog 0.

После этого подключите контакт резистора на 10 кОм к земле, а второй к аналоговому пину Analog 0 */

int photocellPin = 0; // сенсор и понижающий резистор на 10 кОм подключены к a0

int photocellReading; // данные считываемые с аналогового пина

void setup(void) {

// Передаем информацию для дебагинга на серийный монитор

Serial.begin(9600);

void loop(void) {

photocellReading = analogRead(photocellPin);

Serial.print("Analog reading = ");

Serial.print(photocellReading); // аналоговые значения

if (photocellReading

Serial.println(" - Dark");

} else if (photocellReading

Serial.println(" - Dim");

} else if (photocellReading

Serial.println(" - Light");

} else if (photocellReading

Serial.println(" - Bright");

Serial.println(" - Very bright");

Эта проверка проводилась в комнате днем. Я прикрывал сенсор рукой, а после этого куском ткани.


Считывание значений с фоторезистора без использования аналоговых пинов

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

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


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


В нашем случае "корзина" представляет из себя керамический резистор емкостью 0.1 мкФ. Вы можете поэкспериментировать с емкостью конденсатора. И этот показатель напрямую повлияет на время. Если вы хотите померять уровень освещенности, используйте конденсатор емкостью 1 мкФ. Если вы работаете в условиях плохой освещенности, можете использовать конденсатор емкостью 0.01 мкФ.

/* простой скетч для проверки работоспособности фоторезистора.

Подключите одну ногу фоторезистора к питанию, вторую - к пину 2.

После этого подключите одну ногу конденсатора 0.1 мкФ к пину 2, а вторую - к земле */

int photocellPin = 2; // фоторезистор подключен к пину 2

int photocellReading; // цифровые значения

int ledPin = 13; // вы можете использовать встроенный светодиод

void setup(void) {

// отправляем информацию для дебаггинга для отображения в окне серийного моитора

Serial.begin(9600);

pinMode(ledPin, OUTPUT); // используем светодиод в качестве выходного сигнала

void loop(void) {

// считывааем показания с сенсора с использованием технологии RCtime

photocellReading = RCtime(photocellPin);

if (photocellReading == 30000) {

// если показания достигают 30000, это значит, что мы достигли граничного значения

Serial.println("Nothing connected!");

Serial.print("RCtime reading = ");

Serial.println(photocellReading); // поток считанных аналоговых данных

// чем ярче, тем чаще светодиод мигает!

digitalWrite(ledPin, HIGH);

delay(photocellReading);

digitalWrite(ledPin, LOW);

delay(photocellReading);

// используем цифровой пин для измерения сопротивления

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

// рассчитывая сколько времени пройдет, чтобы достичь Vcc/2 (для большинства Arduino это значение равно 2.5 В)

int RCtime(int RCpin) {

int reading = 0; // начинаем с 0

// инициализируем пин в качестве output и присваиваем ему значение LOW (земля)

pinMode(RCpin, OUTPUT);

digitalWrite(RCpin, LOW);

// Теперь устанавливаем пин в качестве input и...

pinMode(RCpin, INPUT);

while (digitalRead(RCpin) == LOW) { // считаем время, которое надо, чтобы получить значение HIGH

reading++; // инкремент для отсчета времени

if (reading == 30000) {

// если мы дошли до такого уровня, сопротивление настолько велико,

// что скорее всего ничего не подключено!

break; // выходим за пределы цикла

Видео проектов на Arduino с использованием фоторезисторов

Изменение частоты вращения двигателя с использованием фоторезистора:

Робот отслеживает траекторию для перемещения с использованием фоторезистора:

Оставляйте Ваши комментарии, вопросы и делитесь личным опытом ниже. В дискуссии часто рождаются новые идеи и проекты!

Продолжаем серию уроков “ ”. Сегодня подключаем фоторезистор (фотоэлемент) к плате Arduino. Фоторезисторы используются в роботах как датчики освещенности. В статье видео-инструкция, листинг программы, схема подключения и необходимые компоненты.

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

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

Видео-инструкция сборки модели Arduino с фоторезистором:

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

  • плата Arduino
  • 6 проводов “папа-папа”
  • фоторезистор
  • светодиод
  • резистор на 220 Ом
  • резистор на 10 кОм
  • программа Arduino IDE, которую можно скачать с сайта Arduino .

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

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

Для работы этой модели подойдет следующая программа (программу вы можете просто скопировать в Arduino IDE):

int led = 13; //переменная с номером пина светодиода
int ldr = 0; //и фоторезистора
void setup() //процедура setup
{
pinMode(led, OUTPUT); //указываем, что светодиод - выход
}
void loop() //процедура loop
{
if (analogRead(ldr) < 800) digitalWrite(led, HIGH);
//если показатель освещенности меньше 800, включаем светодиод
else digitalWrite(led, LOW); //иначе выключаем
}

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

Готовая модель подключения фоторезистора на Arduino

Если светодиод не реагирует на изменение освещенности, то попробуйте поменять число 800 в программе, если он все время горит — уменьшите, если не горит — увеличьте.

Посты по урокам:

  1. Первый урок:
  2. Второй урок:
  3. Третий урок:
  4. Четвертый урок:
  5. Пятый урок:
  6. Шестой урок:
  7. Седьмой урок:
  8. Восьмой урок:
  9. Девятый урок:

Все посты сайта «Занимательная робототехника» по тегу .

Наш YouTube канал , где публикуются видео-уроки.

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

Сопротивление фоторезистора зависит от света, попадающего на него. Используя фоторезистор в связке с обычным резистором 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); }

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

Фоторезисторы чаще всего используются для определения наличия или отсутствия света или для измерения интенсивности света. В темноте, их сопротивление очень высокое, иногда доходит до 1 МОм, но когда датчик LDR подвергается воздействию света, его сопротивление резко падает, вплоть до нескольких десятков ом в зависимости от интенсивности света.

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

Определение: Фоторезистор — светочувствительный элемент, чье сопротивление уменьшается при интенсивном освещении и увеличивается при его отсутствии.

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

Виды фоторезисторов и принцип работы

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

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

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

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

Фоторезистор на схемах обозначается следующим образом:

Чувствительность фоторезистора от длины волны

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

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

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

Чувствительность фоторезистора

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

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

Инертность фоторезистора

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

Для того чтобы сопротивление упало до минимума при полном освещении необходимо около 10 мс времени, и около 1 секунды для того, чтобы сопротивление фоторезистора возросло до максимума после его затемнения.

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

Конструкция и свойства фоторезистора

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

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

Спектральная кривая отклика сульфида кадмия совпадает с человеческим глазом. Длина волны пиковой чувствительности составляет около 560-600 нм, что соответствует видимой части спектра. Следует отметить, что устройства, содержащие свинец или кадмий не соответствуют RoHS и запрещены для использования в странах, которые придерживаются законов RoHS.

Примеры применения фоторезисторов

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

Фотореле для уличного освещения

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

При освещении фоторезистора (R1), его сопротивление уменьшается, падение напряжения на переменном резисторе R2 будет высоким, вследствие чего транзистор VT1 открывается. Коллектор VT1 (BC107) соединен с базой транзистора VT2 (SL100). Транзистор VT2 закрыт и реле обесточено. Когда наступает ночь, сопротивление LDR увеличивается, напряжение на переменном резисторе R2, падает, транзистор VT1 закрывается. В свою очередь, транзистор VT2 открывается и подает напряжение на реле, которое включает лампу.

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

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


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

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

Когда свет попадает на фоторезистор, он меняет сопротивление, чем больше света тем меньше сопротивление и больше падение напряжения на нем. При увеличении падения напряжения транзистор открывается, срабатывает реле. Порог срабатывания реле можно отрегулировать при помощи переменного резистора 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). Смотрим как меняются показания, если направить свет на датчик или если его затенить.

Поделиться: