Если вы когда-нибудь задавались вопросом, как эффективно измерить уровень освещенности в помещении с помощью Arduino, вы попали по адресу. В этой статье мы шаг за шагом объясним, как это сделать с помощью фоторезистора LDR, также известного как фоторезистор. Эти маленькие технологические чудеса представляют собой электронные компоненты, способные изменять свое сопротивление в зависимости от количества получаемого ими света, что открывает безграничные возможности для проектов в области электроники и автоматизации.
Применений датчика освещенности с Arduino множество: от автоматических систем освещения до роботов, которые ориентируются по свету. Самое приятное то, что это доступный и простой в использовании компонент. Здесь мы предоставим вам всю необходимую информацию, чтобы вы могли создать собственную систему измерения освещенности с помощью Arduino и использовать весь ее потенциал.
Что такое LDR и как он работает?
Una LDR (Светозависимый резистор) Это сопротивление, величина которого меняется в зависимости от количества падающего на него света. В темноте сопротивление очень велико, достигая значений до 1 МОм. Напротив, когда LDR получает обильный свет, сопротивление значительно снижается, достигая значений от 50 до 100 Ом при интенсивном освещении.
Его работа основана на принципе проводимости полупроводниковых материалов. При получении света фотоны заряжают электроны в материале, облегчая протекание тока и, следовательно, уменьшая сопротивление. Этот тип датчика очень полезен в приложениях, где требуется относительное измерение освещенности в окружающей среде.
Особенности ЛДР
Этот компонент пользуется большой популярностью благодаря невысокой стоимости и простоте использования. Типичные значения сопротивления варьируются от 1 МОм в полной темноте до 50-100 Ом при ярком свете. Однако стоит отметить, что это не самые точные датчики, если вы хотите точно измерить освещенность (свет в люксах), поскольку на них могут влиять такие факторы, как температура.
Изменение сопротивления происходит довольно медленно., что занимает от 20 до 100 миллисекунд в зависимости от модели. Это означает, что он не подходит для обнаружения быстрых изменений освещенности, например, при источниках переменного тока, но обеспечивает превосходную стабильность в условиях более постоянного освещения.
В то время как LDR больше подходят для измерения световых тенденций. что для предоставления точных данных, их низкая стоимость и простота интеграции с платами Arduino делают их идеальным датчиком для проектов DIY.
Схема подключения и подключения
Чтобы Arduino мог измерить изменение сопротивления LDR, необходимо установить датчик на так называемую опору. делитель напряжения. Это очень простая схема, состоящая из LDR и постоянного резистора, соединенных последовательно. LDR размещается между входным напряжением (например, 5 В на плате) Arduino Uno) и контакту аналогового входа, а постоянный резистор подключается между контактом и землей (GND).
Значение фиксированного сопротивления обычно составляет 10 кОм, хотя оно может варьироваться в зависимости от чувствительности, которую вы хотите достичь при измерении.
Примеры сборки и кода
Чтобы построить базовую систему с Arduino и LDR, первое, что вам нужно сделать, это соединить следующие элементы:
- Один конец LDR подключен к источнику питания 5 В.
- Другой конец LDR к аналоговому входу (например, A0) и одновременно к постоянному резистору, который будет подключен к земле.
С помощью этой настройки вы можете начать считывать значения, которые LDR предоставляет через аналоговый вход. Код ниже представляет собой базовый пример чтения этих значений:
const int pinLDR = A0;
void setup() {
Serial.begin(9600); // Iniciar monitor serie}
void loop() {
int valorLDR = analogRead(pinLDR); // Leer valor de LDR
Serial.println(valorLDR); // Imprimir valor en monitor
delay(500);
}
Этот код будет печатать значения от 0 (т. е. при отсутствии света) до 1023 (полученный максимальный свет). Эти значения пропорциональны свету, воспринимаемому LDR.
Поведение сопротивления в зависимости от света
Как уже упоминалось, сопротивление LDR уменьшается по мере того, как он получает больше света. Чтобы получить точное измерение количества света, вам необходимо знать значения сопротивления вашего ЛДР в различных условиях освещения.
Например, в серии GL55 значения варьируются от 5 кОм до 200 кОм при наличии света и от 500 кОм до 10 МОм в темных условиях. Эти значения могут варьироваться от одной модели к другой, поэтому всегда рекомендуется сверяться с техническими данными производителя датчика.
Интересной особенностью LDR является то, что Его чувствительность наибольшая в зеленой части спектра., примерно на длинах волн 540 нм. Это означает, что LDR лучше реагируют на зеленый свет, чем на другие части видимого спектра.
Практическое применение
Возможные применения LDR, подключенных к Arduino, практически безграничны. Среди наиболее практичных — автоматические системы освещения, в которых схема может включать или выключать освещение в зависимости от обнаруженного уровня освещенности. Они также используются для световые следующие роботы и системы домашней автоматизации.
Можно, например, создать систему, в которой при снижении уровня освещенности загорается светодиод, чтобы компенсировать недостаток света. Вот простой пример кода:
int LDRPin = A0; // Pin para la LDR
int LEDPin = 13; // Pin para el LED
int threshold = 500; // Umbral para encender el LED
void setup() {
pinMode(LEDPin, OUTPUT);
pinMode(LDRPin, INPUT);}
void loop() {
int valorLuz = analogRead(LDRPin);
if (valorLuz < threshold) {
digitalWrite(LEDPin, HIGH); // Enciende el LED
} else {
digitalWrite(LEDPin, LOW); // Apaga el LED
}
delay(100);}
Эта небольшая программа считывает значение LDR и, если уровень освещенности ниже установленного порога, включает светодиод. В противном случае он выключает его. Простой, но очень функциональный пример в проектах автоматизации освещения.
Ограничения и меры предосторожности
Хотя использование LDR очень удобно во многих проектах, важно учитывать некоторые его ограничения:
- Они не очень точны, если вы хотите измерить точную интенсивность света в люксах.
- Его поведение может меняться в зависимости от температуры.
- Они лучше всего работают для обнаружения более крупных изменений освещенности, а не быстрых изменений.