Search Code

Gebruik 'n LDR met Arduino en 'n beheerskakelaar om 'n Arduino te verlig.

Gebruik 'n LDR met Arduino en 'n beheerskakelaar om 'n Arduino te verlig.

In hierdie tutoriaal gaan ons ondersoek hoe om 'n Lig Afhanklike Weerstand (LDR) saam met 'n Arduino te gebruik om 'n lig te beheer op grond van omgewingsligvlakke. Die LDR verander sy weerstand afhangende van die ligintensiteit; dus kan dit gebruik word om te detecteer of dit lig of donker in 'n omgewing is. Wanneer die lig onder 'n sekere drempel is, sal ons 'n uitgangspen aanskakel om 'n lig te aktiveer.

LDR Illustration and symbol

Die primêre komponente wat jy nodig sal hê sluit 'n Arduino-bord, 'n 10k ohm weerstand, die LDR, en 'n paar springdrade in. Die LDR sal in 'n spanningsverdeler-konfigurasie met die weerstand gekoppel word om die analoogspanning te lees, wat sal verander op grond van die ligintensiteit. Ons sal hierdie spanning gebruik om 'n LED of ander uitvoertoestelle te beheer.

Vir 'n visuele demonstrasie van die opstelling en kode, maak seker om die geassosieerde video te kyk (in video by 0:10).

Hardeware verduidelik

Die Liggaamsafhanklike Weerstand (LDR) is 'n tipe weerstand wie se weerstand afneem met toenemende insidente ligintensiteit. Dit word algemeen gebruik in toepassings waar ligvlakke gemonitor moet word. In ons opstelling sal die LDR gebruik word om omgewingsligvlakke te detecteer en sal 'n ooreenstemmende analoogspanning na die Arduino stuur.

Die Arduino sal hierdie spanning lees via een van sy analoog panele en besluit of dit die gekonnekteerde lig moet aan- of afskakel gebaseer op 'n gedefinieerde drempel. Die 10k ohm weerstand word in die spanningsverdeler-konfigurasie met die LDR gebruik om 'n stabiele spanningsuitset te skep wat die Arduino kan lees.

Datasheet Besonderhede

FabrikantGeneries
Onderdeel nommerLDR
Weerstand (lig)100 - 500 Ω
Weerstand (donker)10 kΩ - 1 MΩ
Werkspanning3.3 V - 5 V
Antwoordtyd20 ms (tipies)
PakketDeurgaatjie

  • Verseker die regte spanning vlakke; moenie 5V oorskry nie.
  • Gebruik 'n trek-af weerstand om die lesings te stabiliseer.
  • Kies 'n geskikte weerstandwaarde (10kΩ) vir die spanningsverdeler.
  • Oorweeg om 'n kapasitor te gebruik vir geraasfiltrering indien nodig.
  • Hou die LDR weg van direkte ligbronne wanneer jy toets.

Draadinstruksies

Wiring LDR with Arduino
Wiring LDR with Arduino

Om die stroombaan op te stel, begin deur een terminaal van die LDR aan die 3.3V kragbron op die Arduino te koppel. Die ander terminaal van die LDR sal aan een kant van die 10k ohm weerstand gekoppel word. Die ander kant van die weerstand moet aan die grond gekoppel word.

Volgende, skep 'n verbinding tussen die aansluiting van die LDR en die weerstand na 'n analoog invoerpen, soosA0Hierdie verbinding sal die Arduino in staat stel om die spanning te lees. Maak seker dat jy die grond van die Arduino aan die gemeenskaplike grond van jou stroombaan koppel om behoorlike funksionaliteit te verseker.

Kode Voorbeelde & Staproete

Die volgende kode-snippet inisieer die seriële kommunikasie en lees die analoog waarde van die LDR. Die waarde word dan in 'n spanning omgeskakel en na die seriële monitor geprint.

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 hierdie kode is die veranderlikeLDRvaluestoor die rou analooglesing van die LDR. Die spanning word bereken op grond van die maksimum analoogwaarde (1023) en die spanningsverwysing (5V).

Volgende, ons kyk of hierdie spanning onder 'n drempel (3V in hierdie geval) is om 'n uitgangspen te beheer.

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

Hier, as die gemete spanning onder 3 volt is, stel ons die uitgangspen (10) op HOOG, wat die lig aanskakel; andersins word dit op Laag gestel, wat dit afskakel. Die konstante nagaan van die ligtoestand maak werklike tydbeheer moontlik op grond van die omgewingsligvlakke.

Demonstraie / Wat om te verwag

Wanneer jy die bedrading voltooi en jou kode opgelaai het, behoort jy die spanninglesings op die seriële monitor te sien verander namate jy die ligintensiteit op die LDR verander. As jy die LDR bedek, behoort die spanning te verhoog, en wanneer dit aan lig blootgestel word, behoort dit te daal. Hierdie gedrag sal direk die uitgangspen beïnvloed, wat die lig beheer.

Wees versigtig vir algemene valkuiles, soos drijvende insette of verkeerde spanning vlakke, wat tot foute lesings kan lei (in video om 12:30).

Video Tydmerke

  • 00:00Inleiding tot LDR
  • 01:30Hardeware-opstelling
  • 03:45Kode verduideliking
  • 06:00Die kode hardloop
  • 09:15Probleemoplossing wenke

Beelde

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++
/*
 * Oorspronklike bron: https://www.arduino.cc/en/Tutorial/ReadAnalogVoltage
 * 
 * Hierdie kode word gebruik met 'n video-tutoriaal vir RoboJax.com
 * Gepubliseer op 31 Augustus 2017 van Ajax, ON, Kanada.
 * Geskryf/geredigeer deur A.B.S
 */
/void setup()

{

  Serial.begin(9600); // Stel reeks op
  pinMode(10, OUTPUT);
}



void loop(){

  int LDRvalue = analogRead(A0);
 // Skakel die analoog lesing (wat van 0 - 1023 gaan) om na 'n spanning (0 - 5V):
  float voltage = LDRvalue * (5.0 / 1023.0);
 // Druk die waarde wat jy gelees het, uit:
  Serial.print("Voltage ="); // druk die teks "Spanning ="
  Serial.print(voltage); // druk die werklike spanning

 // kyk of voltage is minder as 3, stel dan pen 10 op hoog of AAN
  if(voltage < 3 ){
    digitalWrite(10, HIGH);
  }else{
    digitalWrite(10, LOW); // of hou dit AF wanneer voltage is groter as 3
  }
  Serial.println();
  delay(300);

}

Hulpbronne en verwysings

Geen hulpbronne nog.

Lêers📁

Ander lêers