Hoe het lichtniveau te meten met Arduino en een LDR

  • Een LDR is een weerstand waarvan de waarde varieert afhankelijk van het waargenomen licht.
  • Het werkingsprincipe van een LDR is gebaseerd op de geleidbaarheid van halfgeleidermaterialen.
  • De basisopstelling met Arduino is gebaseerd op een spanningsdeler tussen de LDR en een vaste weerstand.
  • LDR's zijn nuttig voor het meten van lichttrends, maar zijn niet nauwkeurig voor het meten van de verlichtingssterkte in lux.

LDR-lichtsensor

Als je je ooit hebt afgevraagd hoe je efficiënt het lichtniveau in een omgeving kunt meten met Arduino, dan ben je hier op de juiste plek. In dit artikel leggen we stap voor stap uit hoe je dat doet met een LDR-fotoresistor, ook wel fotoresistor genoemd. Deze kleine technologische wonderen zijn elektronische componenten die hun weerstand kunnen veranderen afhankelijk van de hoeveelheid licht die ze ontvangen, wat eindeloze mogelijkheden opent voor elektronische en automatiseringsprojecten.

De toepassingen van de lichtsensor met Arduino zijn talrijk: van automatische verlichtingssystemen tot robots die zich oriënteren op basis van licht. Het beste van alles is dat het een betaalbaar en gebruiksvriendelijk onderdeel is. Hier geven we u alle nodige informatie, zodat u uw eigen lichtmeetsysteem met Arduino kunt bouwen en het volledige potentieel ervan kunt benutten.

Wat is een LDR en hoe werkt het?

een LDR (lichtafhankelijke weerstand) Het is een weerstand waarvan de grootte varieert afhankelijk van de hoeveelheid licht die erop valt. In donkere omstandigheden is de weerstand zeer hoog en bereikt waarden tot 1 MOhm. Integendeel, wanneer de LDR overvloedig licht ontvangt, neemt de weerstand aanzienlijk af en bereikt bij intens licht waarden tussen 50 en 100 Ohm.

De werking ervan is gebaseerd op het principe van de geleidbaarheid van halfgeleidermaterialen. Bij het ontvangen van licht geven fotonen energie aan de elektronen in het materiaal, waardoor de stroomstroom wordt vergemakkelijkt en daardoor de weerstand afneemt. Dit type sensor is erg handig voor toepassingen waarbij een relatieve meting van licht in de omgeving vereist is.

LDR-functies

Dit onderdeel is erg populair vanwege de lage kosten en het gebruiksgemak. Typische weerstandswaarden variëren van 1 MOhm in volledige duisternis tot 50-100 Ohm bij fel licht. Het is echter de moeite waard te vermelden dat dit niet de meest nauwkeurige sensoren zijn als u de verlichtingssterkte (licht in lux) nauwkeurig wilt meten, omdat ze kunnen worden beïnvloed door factoren zoals temperatuur.

De weerstandsvariatie is vrij langzaam, afhankelijk van het model, duurt dit tussen de 20 en 100 milliseconden. Dit betekent dat het niet geschikt is voor het detecteren van snelle lichtveranderingen, zoals die geproduceerd onder lampen op wisselstroom, maar uitstekende stabiliteit biedt bij constantere lichtomstandigheden.

Si bien LDR's zijn geschikter voor het meten van lichttrends dat om nauwkeurige gegevens te leveren, hun lage kosten en het gemak van integratie met Arduino-borden ze tot een ideale sensor maken voor doe-het-zelf-projecten.

Schakel- en aansluitschema

Om ervoor te zorgen dat de Arduino de weerstandsvariatie van de LDR kan meten, is het noodzakelijk om de sensor te monteren op een zogenaamde spanningsdeler. Dit is een heel eenvoudig circuit dat bestaat uit de LDR en een vaste weerstand die in serie is geschakeld. De LDR wordt tussen de ingangsspanning geplaatst (bijvoorbeeld 5V op het bord). Arduino Uno) en de analoge ingangspin, en de vaste weerstand is aangesloten tussen de pin en aarde (GND).

De waarde van de vaste weerstand is doorgaans 10 kOhm, hoewel deze kan variëren afhankelijk van de gevoeligheid die u bij uw meting wilt bereiken.

Assemblage- en codevoorbeelden

Om een ​​basissysteem met Arduino en een LDR te bouwen, moet je eerst de volgende elementen verbinden:

  • Eén uiteinde van de LDR naar de 5V-voeding.
  • Het andere uiteinde van de LDR met de analoge ingang (bijvoorbeeld A0) en tegelijkertijd met een vaste weerstand die met aarde wordt verbonden.

Met deze opstelling kun je beginnen met het uitlezen van de waarden die de LDR via de analoge ingang levert. De onderstaande code is een eenvoudig voorbeeld om die waarden te lezen:

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);
}

Deze code drukt waarden af ​​tussen 0 (d.w.z. wanneer er geen licht is) en 1023 (maximaal ontvangen licht). Deze waarden zijn evenredig met het door de LDR waargenomen licht.

Het gedrag van weerstand als functie van licht

Zoals reeds vermeld neemt de weerstand van de LDR af naarmate deze meer licht ontvangt. Voor het verkrijgen van een nauwkeurige meting van de hoeveelheid lichtmoet u de weerstandswaarden van uw LDR onder verschillende lichtomstandigheden kennen.

Bij de GL55-serie variëren de waarden bijvoorbeeld van 5 kΩ tot 200 kΩ bij aanwezigheid van licht en van 500 kΩ tot 10 MΩ in donkere omstandigheden. Deze waarden kunnen variëren van model tot model, daarom is het altijd raadzaam om het datablad van de sensorfabrikant te raadplegen.

Een interessante eigenaardigheid van de LDR is dat De gevoeligheid is het grootst in het groene lichtgedeelte van het spectrum., ongeveer bij golflengten van 540 nm. Dit betekent dat LDR's beter reageren op groen licht dan andere delen van het zichtbare spectrum.

Praktische toepassingen

De mogelijke toepassingen van LDR's aangesloten op een Arduino zijn vrijwel eindeloos. Een van de meest praktische zijn automatische verlichtingssystemen, waarbij het circuit lampen kan activeren of deactiveren, afhankelijk van de gedetecteerde lichtniveaus. Ze worden er ook voor gebruikt licht volgende robots en domoticasystemen.

Je kunt bijvoorbeeld een systeem creëren waarbij naarmate het lichtniveau afneemt, een LED oplicht om het gebrek aan licht te compenseren. Hier is een eenvoudig codevoorbeeld:

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);}

Dit kleine programma leest de LDR-waarde en als het lichtniveau lager is dan de ingestelde drempel, schakelt het de LED in. Anders wordt het uitgeschakeld. Een eenvoudig maar zeer functioneel voorbeeld in verlichtingsautomatiseringsprojecten.

Beperkingen en voorzorgsmaatregelen

Hoewel het gebruik van een LDR in veel projecten erg handig is, is het belangrijk om rekening te houden met enkele beperkingen:

  • Ze zijn niet erg nauwkeurig als je de exacte lichtintensiteit in lux wilt meten.
  • Het gedrag kan variëren afhankelijk van de temperatuur.
  • Ze werken het beste om grotere veranderingen in het licht te detecteren en niet om snelle variaties.

Wees de eerste om te reageren

Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.