Открыть сервисСервис

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

Датчик света — это электронный модуль, преобразующий уровень освещённости в электрический сигнал, который может быть считан микроконтроллером или управляющей схемой. В радиолюбительской электронике и прототипировании под датчиком света чаще всего понимают модуль на основе фоторезистора (LDR, светорезистора) в связке с компаратором, либо цифровой фотодатчик (например, BH1750, TSL2561). Подключение датча света сводится к правильному выбору интерфейса, распайке проводов и загрузке управляющего кода.

Принцип работы

Фоторезистор — полупроводниковый резистор, сопротивление которого уменьшается при увеличении освещённости. В темноте его сопротивление может достигать нескольких мегаом, при ярком свете — снижаться до сотен ом. Для измерения света фоторезистор включают в делитель напряжения последовательно с постоянным резистором: изменение сопротивления LDR приводит к изменению напряжения на точке раздела, которое измеряется аналого-цифровым преобразователем (АЦП) микроконтроллера.

Простые модули датчика света, распространённые в наборах для Arduino, содержат фоторезистор, фиксированный резистор, компаратор LM393 и подстроечный потенциометр. Компаратор выдаёт на выход цифровой сигнал «0» или «1» в зависимости от того, превышает ли напряжение с делителя порог, заданный потенциометром. Такой модуль имеет три или четыре вывода: VCC, GND, аналоговый (AO) и цифровой (DO).

Виды датчиков света

ТипИнтерфейсОсобенности
Фоторезистор + компаратор LM393Аналоговый и цифровой выходДёшев, прост, порог настраивается потенциометром
BH1750I²CЦифровой, измеряет освещённость в люксах, точность ~±20 %
TSL2561I²CДва канала (инфракрасный и видимый), диапазон до 40 000 лк
ФотодиодАналоговый выходБыстрый отклик, требует схемы ток-напряжение
ОптопараЦифровой выходПростейший детектор наличия светового луча

Подключение модуля на LM393 к Arduino

Схема подключения наиболее распространённого модуля с компаратором выглядит следующим образом:

  1. Вывод VCC модуля соединяется с 5 В (или 3,3 В) Arduino.
  2. Вывод GND — с общей землёй платы.
  3. Вывод AO (аналоговый выход) подключается к любому аналоговому пину, например A0.
  4. Вывод DO (цифровой выход) — к любому цифровому пину, например D2.

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

Пример кода для Arduino

Простейший скетч, считывающий аналоговое значение и управляющий светодиодом:

```cpp const int ldrPin = A0; const int ledPin = 13; int threshold = 500;

void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); }

void loop() { int value = analogRead(ldrPin); Serial.println(value);

if (value < threshold) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } delay(100); } ```

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

Подключение цифрового датчика BH1750

Датчик BH1750 подключается по шине I²C, для которой на Arduino Uno отведены пины A4 (SDA) и A5 (SCL). Порядок действий:

  1. VCC → 3,3 В (или 5 В, если модуль имеет стабилизатор).
  2. GND → земля.
  3. SDA → A4.
  4. SCL → A5.
  5. ADDR → GND (адрес 0x23) или VCC (адрес 0x5C).

Для работы с датчиком используется библиотека BH1750 (автор Christopher Laws). После подключения библиотеки в Arduino IDE вызовы lightMeter.begin(), lightMeter.configureMode(BH1750::CONTINUOUS_HIGH_RES_MODE) и lightMeter.readLightLevel() позволяют получить освещённость в люксах.

Типичные ошибки при подключении

  • Перепутанные провода VCC и GND — наиболее частая причина выхода модуля из строя.
  • Питание цифрового модуля на 5 В при отсутствии стабилизатора на плате (BH1750 рассчитан на 3,3 В).
  • Использование слишком большого последовательного резистора в делителе — сигнал становится шумным.
  • Отсутствие резистора подтяжки 4,7 кОм на линиях I²C (на платах Arduino Uno он уже установлен на плате, на некоторых других платах — нет).
  • Попытка измерить аналоговое напряжение пином, не подключённым к АЦП.

Применение

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

Источники:

Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru