Search Code

Použitie LDR s Arduinom a ovládacieho spínača na osvetlenie Arduina

Použitie LDR s Arduinom a ovládacieho spínača na osvetlenie Arduina

V tomto tutoriále preskúmame, ako používať svetelne závislý odpor (LDR) s Arduinom na ovládanie svetla na základe úrovne okolitého svetla. LDR mení svoj odpor v závislosti od intenzity svetla; preto sa dá použiť na zistenie, či je v prostredí svetlo alebo tma. Keď je svetlo pod určitým prahom, zapneme výstupný pin na aktiváciu svetla.

LDR Illustration and symbol

Hlavné komponenty, ktoré budete potrebovať, zahŕňajú dosku Arduino, 10k ohmový rezistor, LDR a niekoľko skokových vodičov. LDR bude pripojený v konfigurácii deliča napätia s rezistorom na čítanie analógového napätia, ktoré sa bude meniť v závislosti od intenzity svetla. Toto napätie použijeme na ovládanie LED alebo iných výstupných zariadení.

Pre zabezpečenie vizuálnej ukážky nastavenia a kódu si určite pozrite priložené video (vo videu na 0:10).

Vysvetlenie hardvéru

Svetelne závislý odpor (LDR) je typ odporu, ktorého odpor klesá so zvyšujúcou sa intenzitou dopadajúceho svetla. Bežne sa používa v aplikáciách, kde je potrebné monitorovať úroveň svetla. V našej konfigurácii bude LDR použitý na detekciu úrovne okolitého svetla a bude posielať zodpovedajúce analógové napätie do Arduina.

Arduino prečíta toto napätie cez jeden zo svojich analógových pinov a rozhodne, či zapnúť alebo vypnúť pripojené svetlo na základe definovaného prahu. Rezistor 10k ohm sa používa v konfigurácii deliča napätia s LDR na vytvorenie stabilného napäťového výstupu, ktorý môže Arduino prečítať.

Technické údaje

VýrobcaGenerický
Číslo dieluLDR
Odpor (svetlo)100 - 500 Ω
Odpor (tmavý)10 kΩ - 1 MΩ
Pracovné napätie3,3 V - 5 V
Čas odozvy20 ms (typ.)
BalíkPriechodzí otvor

  • Zabezpečte správne úrovne napätia; neprekračujte 5V.
  • Použite odpor s ťahom na stabilizáciu meraní.
  • Zvoľte vhodnú hodnotu rezistora (10kΩ) pre napäťový delič.
  • Zvážte použitie kondenzátora na filtrovanie šumu, ak je to potrebné.
  • Udržujte LDR mimo priame svetelné zdroje počas testovania.

Inštrukcie na zapojenie

Wiring LDR with Arduino
Wiring LDR with Arduino

Na nastavenie obvodu začnite pripojením jedného terminálu LDR k napájaniu 3,3V na Arduine. Druhý terminál LDR sa pripojí k jednému koncu rezistora 10k ohm. Druhý koniec rezistora by mal byť pripojený k zemi.

Ďalej vytvorte pripojenie medzi spojom LDR a rezistorom k analógovému vstupnému pinu, ako jeA0Toto pripojenie umožní Arduinu čítať napätie. Uistite sa, že pripojíte zem Arduina k spoločnej zemi vášho obvodu, aby ste zabezpečili správnu funkčnosť.

Príklady kódu a návod

Nasledujúci úryvok kódu inicializuje sériovú komunikáciu a číta analógovú hodnotu z LDR. Hodnota sa potom prevedie na napätie a vytlačí na sériový 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

V tomto kóde je premennáLDRvalueukladá surové analógové čítanie z LDR. Napätie sa vypočíta na základe maximálnej analógovej hodnoty (1023) a referenčného napätia (5V).

Ďalej skontrolujeme, či je toto napätie pod prahovou hodnotou (v tomto prípade 3V), aby sme ovládali výstupný pin.

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

Tu, ak je namerané napätie pod 3 volty, nastavíme výstupný pin (10) na HIGH, čím zapneme svetlo; inak je nastavený na LOW, čím ho vypneme. Neustále kontrolovanie stavu svetla umožňuje riadenie v reálnom čase na základe úrovne okolitého svetla.

Demonštrácia / Čo očakávať

Po dokončení zapojenia a nahratí vášho kódu by ste mali vidieť, ako sa hodnoty napätia na sériovom monitore menia, keď meníte intenzitu svetla na LDR. Ak zakryjete LDR, napätie by sa malo zvýšiť, a keď je vystavené svetlu, malo by sa znížiť. Toto správanie priamo ovplyvní výstupný pin, ktorý ovláda svetlo.

Buďte opatrní na bežné nástrahy, ako sú plávajúce vstupy alebo nesprávne úrovne napätia, ktoré môžu viesť k chybným meraniam (vo videu o 12:30).

Časové pečiatky videa

  • 00:00Úvod do LDR
  • 01:30Hardvérové nastavenie
  • 03:45Vysvetlenie kódu
  • 06:00Spustenie kódu
  • 09:15Tipy na riešenie problémov

Images

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
Language: 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);

}

Resources & references

No resources yet.

Files📁

Other files