Search Code

Folosind un LDR cu Arduino și un comutator de control pentru a ilumina un Arduino

Folosind un LDR cu Arduino și un comutator de control pentru a ilumina un Arduino

În acest tutorial, vom explora cum să folosim un Rezistor Dependent de Lumină (LDR) cu un Arduino pentru a controla o lumină în funcție de nivelurile de lumină ambientală. LDR-ul își schimbă rezistența în funcție de intensitatea luminii; astfel, poate fi folosit pentru a detecta dacă este lumină sau întuneric într-un mediu. Când lumina este sub un anumit prag, vom activa un pin de ieșire pentru a porni o lumină.

LDR Illustration and symbol

Componentele principale de care veți avea nevoie includ o placă Arduino, un rezistor de 10k ohmi, LDR-ul și câteva fire de legătură. LDR-ul va fi conectat într-o configurație de divizor de tensiune cu rezistorul pentru a citi tensiunea analogică, care se va schimba în funcție de intensitatea luminii. Vom folosi această tensiune pentru a controla un LED sau alte dispozitive de ieșire.

Pentru o demonstrație vizuală a configurării și codului, asigurați-vă că verificați videoclipul asociat (în videoclip la :10).

Hardware explicat

Rezistorul dependent de lumină (LDR) este un tip de rezistor al cărui rezistență scade odată cu creșterea intensității luminii incidente. Este utilizat frecvent în aplicații unde nivelurile de lumină trebuie monitorizate. În configurația noastră, LDR-ul va fi folosit pentru a detecta nivelurile de lumină ambientală și va trimite o tensiune analogică corespunzătoare către Arduino.

Arduino va citi această tensiune prin unul dintre pini săi analogici și va decide dacă să aprindă sau să stingă lumina conectată pe baza unui prag definit. Rezistorul de 10k ohmi este folosit în configurația divizorului de tensiune cu LDR pentru a crea o ieșire de tensiune stabilă pe care Arduino o poate citi.

Detalii fișă tehnică

ProducătorGeneric
Număr de parteLDR
Rezistență (ușoară)100 - 500 Ω
Rezistență (întunecată)10 kΩ - 1 MΩ
Tensiune de lucru3,3 V - 5 V
Timp de răspuns20 ms (tipic)
PachetOrificiu trecător

  • Asigurați-vă că nivelurile de tensiune sunt corecte; nu depășiți 5V.
  • Folosește un rezistor de tragere pentru a stabiliza citirile.
  • Alegeți o valoare adecvată a rezistorului (10kΩ) pentru divizorul de tensiune.
  • Considerați utilizarea unui condensator pentru filtrarea zgomotului, dacă este necesar.
  • Păstrați LDR-ul departe de sursele directe de lumină atunci când testați.

Instrucțiuni de cablare

Wiring LDR with Arduino
Wiring LDR with Arduino

Pentru a configura circuitul, începe prin a conecta un terminal al LDR-ului la sursa de alimentare de 3,3V de pe Arduino. Celălalt terminal al LDR-ului se va conecta la un capăt al rezistorului de 10k ohmi. Celălalt capăt al rezistorului ar trebui să fie conectat la masă.

Apoi, creați o conexiune între joncțiunea LDR și rezistor la un pin de intrare analogică, cum ar fiA0Această conexiune va permite Arduino-ului să citească tensiunea. Asigurați-vă că conectați masa Arduino-ului la masa comună a circuitului dvs. pentru a asigura o funcționare corectă.

Exemple de cod și ghiduri

Următorul fragment de cod inițiază comunicația serială și citește valoarea analogică de la LDR. Valoarea este apoi convertită într-o tensiune și imprimată pe monitorul serial.

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

În acest cod, variabilaLDRvaluestochează citirea analogică brută de la LDR. Tensiunea este calculată pe baza valorii analogice maxime (1023) și a referinței de tensiune (5V).

Apoi, verificăm dacă această tensiune este sub un prag (3V în acest caz) pentru a controla un pin de ieșire.

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

Aici, dacă tensiunea măsurată este sub 3 volți, setăm pinul de ieșire (10) la HIGH, aprinzând lumina; în caz contrar, este setat la LOW, stingând-o. Verificarea constantă a stării luminii permite controlul în timp real pe baza nivelurilor de lumină ambientală.

Demonstrație / Ce să aștepți

După ce ați finalizat cablarea și ați încărcat codul, ar trebui să observați citirile de tensiune pe monitorul serial schimbându-se pe măsură ce variați intensitatea luminii pe LDR. Dacă acoperiți LDR-ul, tensiunea ar trebui să crească, iar când este expus la lumină, ar trebui să scadă. Această comportare va afecta direct pinul de ieșire, care controlează lumina.

Fii atent la capcanele comune, cum ar fi intrările flotante sau nivelurile de tensiune incorecte, care pot duce la citiri eronate (în video la 12:30).

Marcaje temporal video

  • 00:00Introducere în LDR
  • 01:30Configurare hardware
  • 03:45Explicație cod
  • 06:00Executarea codului
  • 09:15Sfaturi pentru depanare

Imagini

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

}

Resurse și referințe

Încă nu sunt resurse.

Fișiere📁

Alte fișiere