Пример обнаружения света на основе LDR и Arduino
Пример обнаружения света с помощью LDR (Light Dependent Resistor — фоторезистора) позволяет измерять уровень освещённости и реагировать на изменения света в окружающей среде. Она проста в реализации и отлично подходит для обучения работе с аналоговыми датчиками и Arduino.
Такую систему можно использовать для автоматического включения света, сигнализации при изменении освещённости или в проектах «умный дом».
Что понадобится для проекта
- Плата Arduino (Uno, Nano или аналоги)
- LDR (фоторезистор)
- Резистор 10 кОм
- Соединительные провода
- Макетная плата (breadboard)
- Светодиод и резистор 220 Ом (для визуальной индикации)
Подключение компонентов
| Компонент | Arduino |
|---|---|
| LDR | A0 (аналоговый вход) |
| Резистор 10 кОм | Подключается к 5V и A0 (создаёт делитель напряжения с LDR) |
| Светодиод | Digital 9 через резистор 220 Ом |
Принцип работы
- LDR изменяет сопротивление в зависимости от уровня освещённости.
- Arduino считывает аналоговое значение с пина A0.
- Если значение выше или ниже заданного порога, Arduino может включать или выключать светодиод.
- Результат выводится в Serial Monitor или управляет другими устройствами.
Пример скетча Arduino
const int ldrPin = A0; // пин LDR
const int ledPin = 9; // пин светодиода
int threshold = 500; // порог освещённости
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
int ldrValue = analogRead(ldrPin);
Serial.print("Уровень света: ");
Serial.println(ldrValue);
if(ldrValue < threshold) {
digitalWrite(ledPin, HIGH); // свет включен
} else {
digitalWrite(ledPin, LOW); // свет выключен
}
delay(200);
}
Этот скетч считывает уровень света с LDR каждые 200 мс, выводит значение в Serial Monitor и включает или выключает светодиод в зависимости от порога.
FAQ — Система обнаружения света на основе LDR
Что такое LDR и как он работает?
LDR — это светозависимый резистор. Его сопротивление меняется в зависимости от уровня освещённости.
Какой диапазон измерений LDR?
Диапазон зависит от конкретного фоторезистора, обычно от очень тёмного (десятки Ом) до яркого света (несколько кОм).
Зачем нужен резистор 10 кОм с LDR?
Он формирует делитель напряжения с LDR, чтобы Arduino мог считывать аналоговое значение.
Можно ли использовать аналоговый вход A0 для нескольких датчиков?
Да, но каждый датчик должен быть подключён через отдельный делитель напряжения к своему аналоговому пину.
Как изменять порог освещённости?
Порог задаётся в переменной threshold в скетче. Можно менять значение в зависимости от условий.
Что делать, если светодиод не реагирует на свет?
Проверьте правильность подключения LDR и резистора, убедитесь, что порог установлен корректно и пин светодиода совпадает со скетчем.
Заключение
Система на основе LDR — простой и наглядный способ изучить работу аналоговых датчиков с Arduino. Она может быть основой для проектов "умный дом", сигнализации или других электронных устройств.