Справочник радиолюбителя
Содержание
- 1 Использование фоторезисторов
- 2 Фоторезистор ардуино и датчик освещенности
- 3 Пример подключения фоторезистора к Ардуино
- 4 Типы датчиков движения
- 5 Подключение BH1750 к Arduino
- 6 Подключение фоторезистора к ардуино
- 7 Характеристики датчика
- 8 KY-008: лазерный модуль для Ардуино
- 9 Установка библиотеки Adafruit TSL2561
Использование фоторезисторов
Метод считывания аналогового напряжения
Самый простой вариант использования: подключить одну ногу к источнику питания, вторую — к земле через понижающий резистор. После этого точка между резистором с постоянным номиналом и переменным резистором — фоторезистором — подключается к аналоговому входу микроконтроллера. На рисунке ниже показана схема подключения к 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))
То есть напряжение обратно пропорционально сопротивлению фоторезистора, которое, в свою очередь, обратно пропорционально уровню освещения.
Фоторезистор ардуино и датчик освещенности
Фоторезистор, как следует из названия, имеет прямое отношение к резисторам, которые часто встречаются практически в любых электронных схемах. Основной характеристикой обычного резистора является величина его сопротивления. От него зависят напряжение и ток, с помощью резистора мы выставляем нужные режимы работы других компонентов. Как правило, значение сопротивления у резистора в одних и тех же условиях эксплуатации практически не меняется.
В отличие от обычного резистора, фоторезистор может менять свое сопротивление в зависимости от уровня окружающего освещения. Это означает, что в электронной схеме будут постоянно меняться параметры, в первую очередь нас интересует напряжение, падающее на фоторезисторе. Фиксируя эти изменения напряжения на аналоговых пинах ардуино, мы можем менять логику работы схемы, создавая тем самым адаптирующиеся под вешние условия устройства.
Фоторезисторы достаточно активно применяются в самых разнообразных системах. Самый распространенный вариант применения — фонари уличного освещения. Если на город опускается ночь или стало пасмурно, то огни включаются автоматически. Можно сделать из фоторезистора экономную лампочку для дома, включающуюся не по расписанию, а в зависимости от освещения. На базе датчика освещенности можно сделать даже охранную систему, которая будет срабатывать сразу после того, как закрытый шкаф или сейф открыли и осветили. Как всегда, сфера применения любых датчиков ардуино ограничена лишь нашей фантазией.
Самый популярный и доступный вариант датчика на рынке – это модели массового выпуска китайских компаний, клоны изделий производителя VT. Там не всегда можно разораться, кто и что именно производит тот или иной поставщик, но для начала работы с фоторезисторами вполне подойдет самый простой вариант.
Начинающему ардуинщику можно посоветовать купить готовый фотомодуль, который выглядит вот так:
На этом модуле уже есть все необходимые элементы для простого подключения фоторезистора к плате ардуино. В некоторых модулях реализована схема с компаратором и доступен цифровой выход и подстроечный резистор для управления.
Российскому радиолюбителю можно посоветовать обратить на российский датчик ФР. Встречающиеся в продаже ФР1-3, ФР1-4 и т.п. — выпускались ещё в союзовские времена. Но, несмотря на это, ФР1-3 – более точная деталь. Из этого следует и разница в цене За ФР просят не более 400 рублей. ФР1-3 будет стоить больше тысячи рублей за штуку.
Маркировка фоторезистора
Современная маркировка моделей, выпускаемых в России, довольно простая. Первые две буквы — ФотоРезистор, цифры после чёрточки обозначают номер разработки. ФР -765 — фоторезистор, разработка 765. Обычно маркируется прямо на корпусе детали
У датчика VT в схеме маркировке указаны диапазон сопротивлений. Например:
- VT83N1 — 12-100кОм (12K – освещенный, 100K – в темноте)
- VT93N2 — 48-500кОм (48K – освещенный, 100K – в темноте).
Иногда для уточнения информации о моделях продавец предоставляет специальный документ от производителя. Кроме параметров работы там же указывается точность детали. У всех моделей диапазон чувствительности расположен в видимой части спектра. Собирая датчик света нужно понимать, что точность срабатывания — понятие условное. Даже у моделей одного производителя, одной партии, одной закупки отличаться она может на 50% и более.
На заводе детали настраиваются на длину волны от красного до зелёного света. Большинство при этом «видит» и инфракрасное излучение. Особо точные детали могут улавливать даже ультрафиолет.
Достоинства и недостатки датчика
Основным недостатком фоторезисторов является чувствительность к спектру. В зависимости от типа падающего света сопротивление может меняется на несколько порядков. К минусам также относится низкая скорость реакции на изменение освещённости. Если свет мигает — датчик не успевает отреагировать. Если же частота изменения довольно велика — резистор вообще перестанет «видеть», что освещённость меняется.
К плюсам можно отнести простоту и доступность. Прямое изменение сопротивления в зависимости от попадающего на неё света позволяет упростить электрическую схему подключения. Сам фоторезистор очень дешев, входит в состав многочисленных наборов и конструкторов ардуино, поэтому доступен практически любому начинающему ардуинщику.
Пример подключения фоторезистора к Ардуино
На выходе цепи фоторезистора мы получим некое напряжение, в диапазоне от 0 до 5 Вольт, которое нам потребуется превратить в конкретное число, с которым уже будет работать программа микроконтроллера.
Необходимые компоненты для подключения фоторезистора на Arduino
Ардуино подключение фоторезистора
Так выглядит собранная модель Arduino с фоторезистором:
Самое простое, что мы можем сделать — это зажигать на Ардуино штатный светодиод #13. Получается скетч:
const int led = 13;
pinMode( pinPhoto, INPUT );
pinMode( led, OUTPUT );
raw = analogRead( pinPhoto );
if( raw
Для измерения освещенности отлично подходят на базе сенсора BH1750 датчики Gy-30 и Gy-302.
Характеристики BH1750FVI цифровой модуль освещенности для Arduino:
- Цифровой 16-битный цифровой датчик освещённости
- Чувствителен к видимому свету и практически не подвержен влиянию инфракрасного излучения
- Построен на микросхеме BH1750FVI
- Напряжение питания: +3..+5 В постоянного тока.
- Интерфейс: I2C.
- Диапазон измеряемой освещенности: (1 — 65535 лк).
- Размеры: 3,3 см х 1,5 см х 1,1 см
- Вес: 5 г
- Подключение модуля производится по двухпроводному интерфейсу I2C, который в плате Arduino реализован на аналоговых пинах A4 и A5, отвечающих за SDA (шина данных) и SCL (шина тактирования), соответственно. Вывод ADDR модуля GY-302 можно оставить не подключённым или заземлить.
Подключаем модуль с помощью провода «Папа-Мама»
BH1750 (Gy-30, Gy-302) Arduino Uno Vcc +5V GND GND SCL A5 SDA A4 - Устанавливаем библиотеку. Скачанный архив распакуем в директорию со средой разработки «Arduino IDE/libraries»
- Загружаем скетч
// подключаем библиотеку датчика BH1750:
// объявляем объект lightMeter:
void setup() <
Serial.begin(9600); //инициализация послед. порта
lightMeter.begin(); //инициализация датчика BH1750
void loop() <
//считываем показания с BH1750:
uint16_t lux = lightMeter.readLightLevel();
//выводим показания в послед. порт:
delay(100); //задержка 100 мсек
В скетче мы каждые 100 мсек считываем с датчика BH1750 показания освещённости в люксах и выводим эти данные в последовательный порт.
Проверяем работу. Для этого подключаем Ардуино к ПК. Запускаем среду разработки Arduino IDE и открываем монитор последовательного через меню Инструменты (Ctrl+Shift+M). Смотрим как меняются показания, если направить свет на датчик или если его затенить.
Типы датчиков движения
Датчики по способу обнаружения движения в зоне их действия делятся на:
- Инфракрасные;
- Микроволновые;
- Ультразвуковые;
- Комбинированные.
Те датчики включения света, которые только принимают излучение, называются пассивными, а которые излучают и принимают волны – активными.
Отдельно стоит упомянуть о звуковых (акустических) датчиках. Они подают сигнал на включение света, когда повышается уровень шума. О них поговорим чуть позже.
По способу управления датчики делятся на:
- Автоматические;
- Датчики, с возможностью принудительного включения света;
- Датчики с возможностью регулирования дальности обзора, времени срабатывания, уровней освещенности и чувствительности.
Автоматические датчики движения подают команду на включение света в автоматическом режиме при обнаружении движущихся объектов и его отключения при исчезновении таковых. Бывают ситуации, когда человек находящийся в зоне действия датчика перестал двигаться (сел на стул или просто встал на одном месте). В этом случае также может произойти отключение света датчиком. Для предотвращения подобных ситуаций в схему подключения датчика добавляют обычный выключатель, при помощи которого человек включает свет принудительно (смотрите фото).
У большинства устройств включения света имеется возможность изменения параметров их работы. Регулировка датчика движения для включения света производится с помощью потенциометров, чьи ручки расположены на дне корпуса. Для настройки доступны 3 параметра: уровень освещенности, чувствительности, а также время срабатывания.
Уровень освещенности выставляют на такое значение, чтобы датчик работал только при наступлении темноты, днем его активность ни к чему.
Изменение уровня чувствительности устройства необходимо для его точной работы. Чем выше чувствительность датчика, тем чаще он будет срабатывать на возмущения. Суть настройки заключается в том, чтобы он реагировал только на появление в «зоне видимости» человека.
Настройка времени срабатывания необходима для того, чтобы датчик не отключался через 5-10 секунд после включения света. Значения времени выставляют на свое усмотрение – от 1 до 10 минут. Ровно столько будет гореть свет после включения.
По типу и месту монтажа датчики делятся на:
- Устройства наружной установки, которые могут быть встраиваемыми или закрепляемыми на кронштейнах;
- Устройства внутренней установки, также встраиваемые или накладные.
Датчики для установки внутри помещений и на улице конструктивно практически не отличаются, разве что уличные устройства имеют повышенную защиту корпуса от атмосферных осадков. Внутри помещения датчики располагают на потолке или стенах. Потолочный датчик движения для включения света, как и настенный, может быть накладным (в этом случае он крепится к поверхности шурупами и дюбель-гвоздями) или встраиваемым (крепление такого датчика осуществляется в специально просверленное отверстие).
Часто датчики устанавливают в подвесной или натяжной потолки. Их механизм крепления, аналогичен механизму крепления точечных светильников. На улице устанавливают преимущественно накладные датчики.
Также датчики отличаются:
Мощностью нагрузки, которая находится в диапазоне от 8 до 2500 ватт. Разные модели датчиков рассчитаны на свою нагрузку. При их выборе заранее вычисляют мощность подключаемых светильников и учитывают ее. Если со временем к датчику будут подключаться дополнительные светильники, то в схему вводят либо дополнительный датчик, либо промежуточное реле. Если мощность подключаемых к датчику устройств освещения больше, чем та, на которую он рассчитан, могут выйти из строя релейные выходы датчика. В этом случае он подлежит замене;
Дальностью действия – от 8 до 20-ти и более метров. Датчики присутствия для включения света с максимальной дальностью действия устанавливают на улице, в длинных коридорах или обширных помещениях. В помещениях малой площади монтируют датчики, чья дальность действия находится в пределах 8-12 метров;
- Углом обзора (от 60 до 360 градусов);
- Типом подключаемой нагрузки. Это могут быть лампы: накаливания, люминесцентные, галогенные на 220 вольт и галогенные на 12В с подключением через трансформатор, светодиодные, люминесцентные обычные и компактные люминесцентные;
- Степенью защиты (IP20-IP55).
Датчики движения для включения света уличные или производственные должны иметь защиту от влаги, высокой температуры и пыли (класс IP 44 и выше). Для моделей, устанавливаемых внутри жилых, административных, офисных помещений достаточно датчиков с минимальной защитой от внешних факторов.
Подключение BH1750 к Arduino
Модуль модуль GY-302 оборудован пяти-пиновым разъемом стандарта 2.54мм:
- VCC: Питание «+»
- GND: Земля «-«
- SCL: Линия тактирования (Serial CLock)
- SDA: Линия данных (Serial Data)
- ADDR: Выбор адреса
Выводы отвечающие за интерфейс I2C на платах Arduino на базе различных контроллеров разнятся:
Arduino Mega | Arduino Uno/Nano/Pro Mini | BH1750 модуль | Цвет проводов на фото |
---|---|---|---|
GND | GND | GND | Черный |
5V | 5V | VCC | Красный |
20 (SDA) | A4 | SDA | Синий |
21 (SCL) | A5 | SCL | Зелёный |
3.3V | 3.3V | ADDR | Жёлтый |
Схема подключения BH1750 к Arduino по I2C
На следующем рисунке показана схема подключения датчика внешней освещенности BH1750 к Arduino UNO. Вывод ADD можно оставить «висящим»:
но вы можете подключить его к 3.3 В. Это переведет вывод ADD в высокий логический уровень, и адрес ведомого I2C датчика внешней освещенности BH1750 станет 0x5C
Это важно в программировании. Если вывод ADD переведен в низкое логическое состояние путем подключения к земле, адрес ведомого устройства I2C датчика внешней освещенности BH1750 будет 0x23
Таким образом, два датчика внешней освещенности BH1750 могут быть подключены к одной шине I2C, где один вывод ADD имеет низкое логическое состояние, а другой вывод ADD высокое.
Пример скетча
В скетче мы каждые 1000 мсек считываем с датчика BH1750 показания освещённости в люксах и выводим эти данные в последовательный порт.
/*
Подключяем библиотеку Wire (для I2C)
*/
#include <Wire.h>
/*
Подключяем библиотеку для bh1750
*/
#include <BH1750.h>
/*
Объявляем объект lightMeter
*/
BH1750 lightMeter;
void setup() {
/*
Запускаем последовательный порт
*/
Serial.begin(9600);
/*
Инициализируем шину I2C (библиотека BH1750 не делает это автоматически)
На esp8266 вы можете выбрать выводы SCL и SDA, используя Wire.begin (D4, D3);
*/
Wire.begin();
/*
Инициализируем и запускаем BH1750
*/
lightMeter.begin();
Serial.println(F(«BH1750 тест»));
}
void loop() {
/*
Считываем показания с BH1750
*/
float lux = lightMeter.readLightLevel();
/*
Отправляем значение освещенности в последовательный порт
*/
Serial.print(«Light: «);
Serial.print(lux);
Serial.println(» lx»);
/*
раз в секунду
*/
delay(1000);
}
1 |
/* BH1750lightMeter; voidsetup(){ /* Запускаем последовательный порт Serial.begin(9600); /* Инициализируем шину I2C (библиотека BH1750 не делает это автоматически) Wire.begin(); /* Инициализируем и запускаем BH1750 lightMeter.begin(); Serial.println(F(«BH1750 тест»)); } voidloop(){ /* Считываем показания с BH1750 floatlux=lightMeter.readLightLevel(); /* Отправляем значение освещенности в последовательный порт Serial.print(«Light: «); Serial.print(lux); Serial.println(» lx»); /* раз в секунду delay(1000); } |
Результат
Открыть монитор последовательного порта можно сочетанием клавиш Ctrl+Shift+M или через меню Инструменты. В мониторе последовательного порта побегут значения освещённости с нашего датчика BH1750.
Подключение фоторезистора к ардуино
В проектах arduino фоторезистор используется как датчик освещения. Получая от него информацию, плата может включать или выключать реле, запускать двигатели, отсылать сообщения. Естественно, при этом мы должны правильно подключить датчик.
Схема подключения датчика освещенности к ардуино довольна проста. Если мы используем фоторезистор, то в схеме подключения датчик реализован как делитель напряжения. Одно плечо меняется от уровня освещённости, второе – подаёт напряжение на аналоговый вход. В микросхеме контроллера это напряжение преобразуется в цифровые данные через АЦП. Т.к. сопротивление датчика при попадании на него света уменьшается, то и значение падающего на нем напряжения будет уменьшаться.
В зависимости от того, в каком плече делителя мы поставили фоторезистор, на аналоговый вход будет подаваться или повышенное или уменьшенное напряжение. В том случае, если одна нога фоторезистора подключена к земле, то максимальное значение напряжения будет соответствовать темноте (сопротивление фоторезистора максимальное, почти все напряжение падает на нем), а минимальное – хорошему освещению (сопротивление близко к нулю, напряжение минимальное). Если мы подключим плечо фоторезистора к питанию, то поведение будет противоположным.
Сам монтаж платы не должен вызывать трудностей. Так как фоторезистор не имеет полярности, подключить можно любой стороной, к плате его можно припаять, подсоединить проводами с помощью монтажной платы или использовать обычные клипсы (крокодилы) для соединения. Источником питания в схеме является сам ардуино. Фоторезистор подсоединяется одной ногой к земле, другая подключается к АЦП платы (в нашем примере – АО). К этой же ноге подключаем резистор 10 кОм. Естественно, подключать фоторезистор можно не только на аналоговый пин A0, но и на любой другой.
Несколько слов относительно дополнительного резистора на 10 К. У него в нашей схеме две функции: ограничивать ток в цепи и формировать нужное напряжение в схеме с делителем. Ограничение тока нужно в ситуации, когда полностью освещенный фоторезистор резко уменьшает свое сопротивление. А формирование напряжения – для предсказуемых значений на аналоговом порту. На самом деле для нормальной работы с нашими фоторезисторами хватит и сопротивления 1К.
Меняя значение резистора мы можем “сдвигать” уровень чувствительности в “темную” и “светлую” сторону. Так, 10 К даст быстрое переключение наступления света. В случае 1К датчик света будет более точно определять высокий уровень освещенности.
Если вы используете готовый модуль датчика света, то подключение будет еще более простым. Соединяем выход модуля VCC с разъемом 5В на плате, GND – c землей. Оставшиеся выводы соединяем с разъемами ардуино.
Если на плате представлен цифровой выход, то отправляем его на цифровые пины. Если аналоговый – то на аналоговые. В первом случае мы получим сигнал срабатывания – превышения уровня освещенности (порог срабатывания может быть настроен с помощью резистора подстройки). С аналоговых же пинов мы сможем получать величину напряжения, пропорциональную реальному уровню освещенности.
Характеристики датчика
Заранее знать об основных параметрах этого элемента необходимо, чтобы в процессе установки и эксплуатации не были нарушены основные технические требования по безопасному использованию устройств этого типа. Плата датчика может быть изготовлена по аналоговой или цифровой схеме. Во втором случае устройство оснащается подстроечным резистором, с помощью которого можно изменять характеристики выходного сигнала вручную.
Вне зависимости от типа устройства, плата оснащается 3 контактами. По двум соединительным элементам осуществляется подача питающего электричества (+5 и GND), третий контакт служит для передачи цифрового сигнала (обозначается на плате S или D0).
Датчик освещенности аппаратной платформы Ардуино представляет собой довольно простую схему. Основным элементом такого устройства является фоторезистор, которые изменяет сопротивление электрической цепи в зависимости от освещенности.
KY-008: лазерный модуль для Ардуино
Основной компонент модуля — это красный лазерный светодиод с медным цилиндрическим радиатором охлаждения. Также на плате передатчика размещены пассивные компоненты, обеспечивающие стабильный режим работы светодиода. Лазера луч виден в задымленном помещении. и создает небольшое световое пятно на поверхности объекта, расположенного на расстоянии до 14 метров от источника.
Принцип работы лазерного светодиода на схеме
При подключении светодиода к Arduino, во время прохождения электронов через p-n переход происходит спонтанное излучение фотонов света. В лазерном светодиоде происходит рекомбинация фотонов (вынужденное излучения фотонов с одинаковыми параметрами). Принцип работы лазера основан на том, что излучаемые фотоны света вызывают повторное излучение, которое увеличивается лавинообразно.
Интенсивность излучения передатчика ky-008 зависит от силы тока. При малых токах модуль работает, как обычный светодиод, так как происходит только спонтанное излучение фотонов. Когда сила тока превышает пороговое значение – мощность излучения резко вырастает. Лазерный диод испускает свет перпендикулярно поверхности кристалла и фокусируется с помощью оптики (см. фото выше).
Установка библиотеки Adafruit TSL2561
Для работы с данным модулем необходимо установить библиотеку Adafruit TSL2561. Скачиваем, распаковываем и закидываем в папку . В случае, если на момент добавления библиотеки, Arduino IDE была открытой, перезагружаем среду.
Библиотеку можно установить из среды Arduino следующим образом:
- В Arduino IDE открываем менеджер библиотек: Скетч->Подключить библиотеку->Управлять библиотеками…
- В строке поиска вводим «TSL2561», находим библиотеку от Adafruit, выбираем и устанавливаем последнюю версию.
- Библиотека установлена (INSTALLED).
Не стоит забывать о Adafruit Unified Sensor Library, эту библиотеку также нужно установить.