Search Code

Een LDR gebruiken met Arduino en een schakelaar om een Arduino te verlichten

Een LDR gebruiken met Arduino en een schakelaar om een Arduino te verlichten

In deze tutorial zullen we verkennen hoe we een lichtafhankelijke weerstand (LDR) kunnen gebruiken met een Arduino om een licht te regelen op basis van de omgevingslichtniveaus. De LDR verandert zijn weerstand afhankelijk van de lichtintensiteit; zo kan het worden gebruikt om te detecteren of het licht of donker is in een omgeving. Wanneer het licht onder een bepaalde drempelwaarde ligt, zullen we een uitgangspen inschakelen om een licht te activeren.

LDR Illustration and symbol

De belangrijkste componenten die je nodig hebt zijn een Arduino-bord, een 10k ohm weerstand, de LDR en enkele jumperdraden. De LDR zal worden aangesloten in een spanningsdelerconfiguratie met de weerstand om de analoge spanning te meten, die zal veranderen op basis van de lichtintensiteit. We zullen deze spanning gebruiken om een LED of andere uitvoerapparaten aan te sturen.

Voor een visuele demonstratie van de opstelling en de code, zorg ervoor dat je de bijbehorende video bekijkt (in de video op 0:10).

Hardware Uitleg

De lichtafhankelijke weerstand (LDR) is een type weerstand waarvan de weerstand afneemt naarmate de inval van lichtintensiteit toeneemt. Het wordt vaak gebruikt in toepassingen waar lichtniveaus moeten worden gemonitord. In onze opstelling zal de LDR worden gebruikt om omgevingslichtniveaus te detecteren en zal een overeenkomstige analoge spanning naar de Arduino worden gestuurd.

De Arduino zal deze spanning lezen via een van zijn analoge pinnen en beslissen of het aangesloten licht aan of uit moet worden gezet op basis van een gedefinieerde drempel. De 10k ohm weerstand wordt gebruikt in de spanningsdelerconfiguratie met de LDR om een stabiele spanningsuitgang te creëren die de Arduino kan lezen.

Datasheet Gegevens

FabrikantAlgemeen
OnderdeelnummerLDR
Weerstand (licht)100 - 500 Ω
Weerstand (donker)10 kΩ - 1 MΩ
Werkspanning3,3 V - 5 V
Reactietijd20 ms (typ.)
PakketDoorvoergaatje

  • Zorg voor de juiste spanningsniveaus; overschrijd 5V niet.
  • Gebruik een pull-down weerstand om de metingen te stabiliseren.
  • Kies een geschikte weerstandwaarde (10kΩ) voor de spanningsdeler.
  • Overweeg het gebruik van een condensator voor ruisfiltering indien nodig.
  • Houd de LDR uit de buurt van directe lichtbronnen tijdens het testen.

Bedradinginstructies

Wiring LDR with Arduino
Wiring LDR with Arduino

Om de schakeling op te zetten, begin je met het aansluiten van één terminal van de LDR op de 3,3V voeding van de Arduino. De andere terminal van de LDR wordt aangesloten op één uiteinde van de 10k ohm weerstand. Het andere uiteinde van de weerstand moet op de aarde worden aangesloten.

Vervolgens maak je een verbinding tussen de aansluiting van de LDR en de weerstand naar een analoge ingangs-pinna, zoalsA0Deze verbinding stelt de Arduino in staat om de spanning te meten. Zorg ervoor dat je de aarde van de Arduino aansluit op de gemeenschappelijke aarde van je circuit om een goede functionaliteit te garanderen.

Codevoorbeelden en Stappenplan

De volgende codefragment initialiseert de seriële communicatie en leest de analoge waarde van de LDR. De waarde wordt vervolgens omgezet in een spanning en afgedrukt op de seriële monitor.

int LDRvalue = analogRead(A0); // Read the analog value from LDR
float voltage = LDRvalue * (5.0 / 1023.0); // Convert to voltage
Serial.print("Voltage ="); // Print label
Serial.print(voltage); // Print actual voltage

In deze code is de variabeleLDRvalueslaat de ruwe analoge meting van de LDR op. De spanning wordt berekend op basis van de maximale analoge waarde (1023) en de spanningsreferentie (5V).

Vervolgens controleren we of deze spanning onder een drempelwaarde ligt (3V in dit geval) om een uitgangspen te regelen.

if(voltage < 3 ){ 
  digitalWrite(10, HIGH); // Turn on the light
}else{
  digitalWrite(10, LOW); // Turn off the light
}

Hier, als de gemeten spanning onder de 3 volt ligt, zetten we de uitgangsp pin (10) op HIGH, waardoor het licht aan gaat; anders wordt het op LOW gezet, waardoor het uit gaat. Het constante controleren van de lichtconditie maakt real-time controle mogelijk op basis van de omgevingslichtniveaus.

Demonstratie / Wat te Verwachten

Na het voltooien van de bedrading en het uploaden van je code, zou je de spanningsmetingen op de seriële monitor moeten zien veranderen naarmate je de lichtintensiteit op de LDR varieert. Als je de LDR bedekt, zou de spanning moeten toenemen, en wanneer deze aan licht wordt blootgesteld, zou deze moeten afnemen. Dit gedrag zal direct invloed hebben op de uitgangspen, die het licht regelt.

Wees voorzichtig met veelvoorkomende valkuilen, zoals zwevende ingangen of onjuiste spanningsniveaus, die kunnen leiden tot foutieve metingen (in video om 12:30).

Videotijdstempels

  • 00:00Inleiding tot LDR
  • 01:30Hardware-instelling
  • 03:45Code uitleg
  • 06:00De code uitvoeren
  • 09:15Probleemoplossingstips

Afbeeldingen

Wiring LDR with Arduino
Wiring LDR with Arduino
An LDR
An LDR
LDR Illustration and symbol
LDR Illustration and symbol
14-Using an LDR with an Arduino and a control switch for a light
Taal: C++
//Original source:  https://www.arduino.cc/en/Tutorial/ReadAnalogVoltage

// This code is used with a video tutorial for RoboJax.com
// Published on August 31, 2017 from Ajax, ON, Canada.
// Written/Edited by A.B.S

/void setup()

{

  Serial.begin(9600);          //  setup serial
  pinMode(10, OUTPUT);
}



void loop(){

  int LDRvalue = analogRead(A0);
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
  float voltage = LDRvalue * (5.0 / 1023.0);
  // print out the value you read:
  Serial.print("Voltage =");// prints the text "Voltage ="
  Serial.print(voltage);// prints the actual voltage
  
  // check if voltage is less than 3, then set pin 10 to high or ON
  if(voltage < 3 ){
    digitalWrite(10, HIGH); 
  }else{
    digitalWrite(10, LOW); // or keep it OFF when voltage is larger than 3
  }
  Serial.println();
  delay(300);

}

Hulpmiddelen en referenties

Nog geen middelen.

Bestanden📁

Andere bestanden