Как да измерите нивото на светлина с Arduino и LDR

  • LDR е резистор, който променя стойността си в зависимост от възприеманата светлина.
  • Принципът на работа на LDR се основава на проводимостта на полупроводниковите материали.
  • Основната настройка с Arduino се основава на делител на напрежение между LDR и фиксиран резистор.
  • LDRs са полезни за измерване на светлинните тенденции, но не са точни за измерване на осветеността в луксове.

LDR сензор за светлина

Ако някога сте се чудили как да измервате ефективно нивото на светлина в среда с Arduino, вие сте на правилното място. В тази статия ще обясним стъпка по стъпка как да го направите с помощта на LDR фоторезистор, известен също като фоторезистор. Тези малки технологични чудеса са електронни компоненти, способни да променят съпротивлението си в зависимост от количеството светлина, което получават, което отваря безкрайни възможности за електронни и автоматизирани проекти.

Приложенията на светлинния сензор с Arduino са много: от автоматични системи за осветление до роботи, които се ориентират по светлина. Най-доброто от всичко е, че е достъпен и лесен за използване компонент. Тук ще ви дадем цялата необходима информация, за да можете да изградите своя собствена система за измерване на светлина с Arduino и да се възползвате от пълния й потенциал.

Какво е LDR и как работи?

а LDR (светлинно зависим резистор) Това е съпротивление, чиято величина варира в зависимост от количеството светлина, което пада върху него. При тъмни условия съпротивлението е много високо, достигайки стойности до 1 MOhm. Напротив, когато LDR получава обилна светлина, съпротивлението намалява значително, достигайки стойности между 50 до 100 ома при интензивна светлина.

Работата му се основава на принципа на проводимостта на полупроводниковите материали. При получаване на светлина фотоните зареждат електроните в материала, улеснявайки протичането на ток и следователно намалявайки съпротивлението. Този тип сензор е много полезен за приложения, където се изисква относително измерване на светлината в околната среда.

Характеристики на LDR

Този компонент е много популярен поради ниската си цена и лекотата на използване. Типичните стойности на съпротивление варират от 1 MOhm в пълна тъмнина до 50-100 Ohm при ярка светлина. Струва си обаче да се спомене, че те не са най-прецизните сензори, ако искате да измервате точно осветеността (светлина в луксове), тъй като те могат да бъдат повлияни от фактори като температура.

Промяната на съпротивлението е доста бавна, което отнема между 20 и 100 милисекунди в зависимост от модела. Това означава, че той не е подходящ за откриване на бързи промени в светлината, като тези, произведени от променливотоково захранване, но предлага отлична стабилност при по-постоянни условия на осветеност.

Докато LDRs са по-подходящи за измерване на светлинни тенденции че за да осигурят точни данни, тяхната ниска цена и лесна интеграция с платки Arduino ги правят идеален сензор за проекти „Направи си сам“.

Електрическа схема и схема на свързване

За да може Arduino да измерва вариацията на съпротивлението на LDR, е необходимо сензорът да се монтира на това, което е известно като делител на напрежението. Това е много проста схема, съставена от LDR и фиксиран резистор, свързани последователно. LDR се поставя между входното напрежение (напр. 5V на платката Arduino Uno) и аналоговия входен щифт, а постоянният резистор е свързан между щифта и земята (GND).

Стойността на фиксираното съпротивление обикновено е 10 kOhms, въпреки че може да варира в зависимост от чувствителността, която искате да постигнете при измерването.

Примери за сглобяване и код

За да изградите основна система с Arduino и LDR, първото нещо, което трябва да направите, е да свържете следните елементи:

  • Единият край на LDR към 5V захранване.
  • Другият край на 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 намалява, когато получава повече светлина. За получаване на a прецизно измерване на количеството светлина, трябва да знаете стойностите на съпротивлението на вашия LDR при различни условия на осветление.

В серията GL55, например, стойностите варират от 5 kΩ до 200 kΩ при наличие на светлина и от 500 kΩ до 10 MΩ при тъмни условия. Тези стойности могат да варират от един модел на друг, така че винаги е препоръчително да се консултирате с информационния лист на производителя на сензора.

Интересна особеност на LDR е, че Неговата чувствителност е най-голяма в зелената част на спектъра., приблизително при дължини на вълната 540 nm. Това означава, че 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 е много удобно в много проекти, важно е да се вземат предвид някои от неговите ограничения:

  • Те не са много точни, ако искате да измерите точния интензитет на светлината в луксове.
  • Поведението му може да варира в зависимост от температурата.
  • Те работят най-добре за откриване на по-големи промени в светлината, а не бързи промени.

Бъдете първите, които коментират

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.