Si mai t'has preguntat com mesurar eficientment el nivell de llum en un entorn amb Arduino, ets al lloc adequat. En aquest article, t'explicarem pas a pas com fer-ho usant una fotoresistència LDR, també coneguda com a fotoresistor. Aquestes petites meravelles tecnològiques són components electrònics capaços de canviar la seva resistència segons la quantitat de llum que reben, cosa que obre una infinitat de possibilitats per a projectes electrònics i d'automatització.
Les aplicacions del sensor de llum amb Arduino són moltes: des de sistemes de llum automà tica fins a robots que s'orienten en funció de la llum. El millor de tot és que és un component assequible i fà cil dutilitzar. Aquà et donarem tota la informació necessà ria perquè puguis construir el teu propi sistema de mesura de llum amb Arduino i aprofitar-ne tot el potencial.
Què és una LDR i com funciona?
Una LDR (Light Dependent Resistor) és una resistència la magnitud de la qual varia depenent de la quantitat de llum que hi incideix. En condicions de foscor, la resistència és molt alta, arribant a valors de fins a 1 MOhm. Per contra, quan la LDR rep abundant llum, la resistència disminueix considerablement, arribant a valors entre 50 a 100 Ohms sota llum intensa.
El funcionament es basa en el principi de conductivitat de materials semiconductors. En rebre llum, els fotons energitzen els electrons del material, cosa que facilita el flux de corrent i, per tant, disminueix la resistència. Aquest tipus de sensor és molt útil per a aplicacions on es requereixi una mesura relativa de la llum a l'entorn.
CaracterÃstiques de la LDR
Aquest component és molt popular a causa del seu baix cost i facilitat dús. Els valors tÃpics de la seva resistència van des de 1 MOhm en completa foscor fins a 50-100 Ohm en llum brillant. Tot i això, cal esmentar que no són els sensors més precisos si el que busques és mesurar amb exactitud la il·luminà ncia (llum en lux), ja que poden veure's afectats per factors com la temperatura.
La variació de resistència és força lenta, trigant entre 20 a 100 mil·lisegons depenent del model. Això significa que no és adequat per detectar canvis rà pids de llum, com els produïts sota llums alimentades per corrent altern, però ofereix una estabilitat excel·lent en condicions de llum més constants.
Si bé les LDR són més adequades per mesurar tendències de llum que per proporcionar dades exactes, el baix cost i la facilitat d'integració amb les plaques Arduino les converteixen en un sensor ideal per a projectes DIY.
Circuit i Esquema de Connexió
Perquè l'Arduino pugui mesurar la variació de resistència del LDR, cal muntar el sensor en allò que es coneix com un divisor de tensió. Aquest és un circuit molt simple compost per la LDR i una resistència fixa connectades en sèrie. Es col·loca la LDR entre el voltatge d'entrada (per exemple, 5V a la placa Arduino Uno) i el pin dentrada analògica, i la resistència fixa es connecta entre el pin i la massa (GND).
El valor de la resistència fixa sol ser de 10 kOhms, encara que pot variar depenent de la sensibilitat que vulguis aconseguir en la teva mida.
Muntatge i Exemples de Codi
Per muntar un sistema bà sic amb Arduino i una LDR, el primer que has de fer és connectar els elements següents:
- Un extrem de la LDR a lalimentació de 5V.
- L'altre extrem de la LDR a l'entrada analògica (A0, per exemple) i alhora una resistència fixa que anirà connectada a massa.
Amb aquest muntatge podeu començar a llegir els valors que la LDR proporciona a través de l'entrada analògica. El codi següent és un exemple bà sic per llegir aquests valors:
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);
}
Aquest codi imprimirà valors compresos entre 0 (és a dir, quan no hi ha llum) i 1023 (mà xima llum rebuda). Aquests valors són proporcionals a la llum percebuda per la LDR.
El comportament de la resistència en funció de la llum
Com ja s'ha esmentat, la resistència de la LDR disminueix a mesura que rep més llum. mesurament precÃs de la quantitat de llum, cal conèixer els valors de resistència del teu LDR en diferents condicions d'il·luminació.
A la sèrie GL55, per exemple, els valors van de 5 kΩ a 200 kΩ en presència de llum i des de 500 kΩ fins a 10 MΩ en condicions de foscor. Aquests valors poden variar d'un model a un altre, per això sempre és recomanable consultar el full de dades del fabricant del sensor.
Una peculiaritat interessant de les LDR és que la seva sensibilitat és més gran en la porció de l'espectre de llum verda, aproximadament en longituds d'ona de 540 nm. Això vol dir que les LDR responen millor a la llum verda que no pas a altres parts de l'espectre visible.
Aplicacions Prà ctiques
Les possibles aplicacions de les LDR connectades a un Arduino són gairebé infinites. Entre les més prà ctiques hi ha els sistemes d'il·luminació automà tica, on el circuit pot activar o desactivar llums segons els nivells de llum detectats. També es fan servir per robots seguidors de llum i sistemes domòtics.
Pots, per exemple, crear un sistema on a mesura que els nivells de llum disminueixin, un LED s'encengui per compensar la manca de llum. Aquà un exemple senzill de codi:
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);}
Aquest petit programa llegeix el valor de la LDR i, si el nivell de llum és inferior al llindar establert, encén el LED. En cas contrari, ho apaga. Un exemple fà cil però molt funcional en projectes d'automatització d'il·luminació.
Limitacions i precaucions
Tot i que l'ús d'una LDR és molt convenient en molts projectes, cal tenir en compte algunes de les seves limitacions:
- No són gaire precises si el que busques és mesurar la intensitat exacta de la llum a lux.
- El comportament pot variar segons la temperatura.
- Funcionen millor per detectar canvis més grans de llum i no variacions rà pides.