Folosirea unui fotorezistor cu Arduino

Am scris acest tutorial pentru a face primul pas într-un proiect mai mare: vreau să am aproximativ aceiași intensitate luminoasă într-o cameră pe parcursul întregii zile de lucru. Pentru a putea face acest lucru am nevoie de 3 lucruri:
1) să învăț să folosesc fotorezistoare
2) sa învăt să folosesc un triac cu Arduino
3) să folosesc un dimmer pentru a controla intensitatea becului în funcție de necesități.

Hai să facem prima parte :)

Fotorezistorul (sau fotorezistența sau RDL) este o componentă electronică a cărei rezistențe scade odată cu creșterea intensității luminii ce cade pe suprafața ei activă.

La ce se poate folosi în practică:
1) automat de lumină - exact ca acum, dar în loc de LED se foloseșe un montaj simplu cu triac pentru a comanda un bec normal de 220V - despre asta într-un alt proiect
2) păstrarea aceluiași nivel de iluminare pe parcursul unui interval de timp - asta e ce vreau să fac la iarnă :)

Pasul 1: Conectarea la Arduino

Folosirea unui fotorezistor cu Arduino - Conectarea la Arduino Folosirea unui fotorezistor cu Arduino - Conectarea la Arduino Folosirea unui fotorezistor cu Arduino - Conectarea la Arduino

Schema electronică am realizat-o rapid în Yenka.
Fotorezistorul se conectează foarte simplu la Arduino, se folosește doar o singură altă piesă, un rezistor de 10k ca pull-down.
Am făcut totul pe o plăcuță pe care să o utilizez ușor în alte proiecte.

Dacă vrei să folosești codul de jos conectează circuitul la pinul Analog 0, dacă vrei să folosești alt pin .. nu uita să modifici codul (variabila sensorPin).

Pasul 2: Codul

Fiind vorba de un pin Analog valorile citite pot fi (teoretic) între 0 și 1023. La lumina din camera mea, în momentul testării, valorile erau între 700-750.
Ca să testez și vizual, am conectat un LED pe pinul Digital 13 (are rezistor deja, dacă vrei să folosești alt pin nu uita să modifici codul și să mai pui un rezistor).

Ce face codul? Urmărește comentariile din el și vezi filmulețul de mai jos.

// Pin-ul Analogic la care se conecteaza fotorezistorul
int sensorPin = 0;
// Pin-ul Digital cu LED-ul de test
int lightPin = 13;
int lightValue = 0;
// La ce valoare minima sa aprindem lumina?
int lightOnThreshold = 300;
// E aprinsa lumina?
int lightOn = false;

void setup()
{
    Serial.begin(9600);
    pinMode(lightPin, OUTPUT);
}

void loop()
{
  // Citeste rezistenta fotorezistorului
  lightValue = analogRead(sensorPin);
  Serial.println(lightValue);
  // E sub valoarea minima SI lumina e stinsa?
  if (lightValue < lightOnThreshold && lightOn == false)
  {
    // Aprinde lumina
    digitalWrite(lightPin, HIGH);
    lightOn = true;
  }
  // Lumina exterioara e prea puternica SI sursa noastra de lumina e deja aprinsa
  else if (lightValue > lightOnThreshold && lightOn == true)
  {
    // Stinge lumina
    digitalWrite(lightPin, LOW);
    lightOn = false;
  }
  delay(100);
}

Pasul 3: Video cu testul schemei


Despre autor

sorin
Telefon: 0724540234
Trimite-i un email