Fotorezistor



Yüklə 14,37 Kb.
tarix18.05.2018
ölçüsü14,37 Kb.
#44956

Fotorezistor


Acum va fi putin mai complicat!

Task: Un led ar trebui sa se aprinda daca afara se intuneca sau daca fotorezistorul este acoperit.

Echipament necesar: Arduino/ un led/ rezistor de 200 Ohm/ rezistor de 10k Ohm/ breadboard/ fire/ fotorezistor.

Continut teoretic: Tensiunea citita va fi vizualizata in “serial monitor”.

Citirea tensiunii:

Vrem ca microcontrolerul sa recunoasca gradul de luminozitate citind datele obtinute de la fotorezistor. Pentru asta, vom utiliza un principiu fizic simplu. Daca doi consumatori sunt legati in serie in circuit, ei vor imparti tensiunea aplicata. Exemplu: Doua lampi identice sunt legate in serie, iar la bornele circuitului se aplica o tensiune de 6V. Cu ajutorul unui voltmetru vom putea masura o tensiune de 3V pe fiecare lampa. Daca conectam doua lampi diferite (cu rezistente diferite), atunci vom masura pe cele doua lampi tensiuni diferite, de exemplu: 1,5V si 4,5V.

Un fotorezistor isi schimba rezistenta in functie de intensitatea luminoasa. Vom folosi acest efect pentru a obtine gradul de luminozitatea citind tensiunea de la bornele acestuia. Pentru a creea o tensiune diferita, vom conecta in serie cu fotorezistorul un rezistor (1-10k Ohm, in functie de fotorezistorul utilizat. Rezistorul ar trebui sa aiba rezistenta apropiata de valoarea rezistentei fotorezistorului). Acum circuitul format trebuie legat intre pamant (GND) si 5V (vezi sutup).

Microcontrolerul poate masura un semnal analog (tensiune variabila) si poate sa utilizeze valorile citite. Pentru aceasta functie se folosesc pinii- analog input de pe placa. Microcontrolerul transforma tensiunea citita intr-un numar cu care poate lucra. 0 volti corespunde numarului 0, iar celei mai mari valori masurate, de 5V, ii corespunde numarul 1023 (intre 0 si 1023 sunt 1024 de numere = 10 Bit). Exemplu: pentru o tensiune masurata de 2,5V microcontrolerul va oferi valoarea 512 (1024:2).

“serial monitor”

O unealta importanta a softului Arduino este “serial monitor”. Cu acest “serial monitor” este posibil sa se vizualizeze datele citite de microcontroler (numere sau text). Este foarte util, deoarece nu avem intotdeauna un monitor LCD conectat, care sa se arate aceste valori. In acest sketch vom utiliza “serial monitor” pentru a afisa valorile pe care microcontrolerul se primeste de la fotorezistor.

La ce foloseste asta? Daca vrem ca ledul sa lumineze cand se intuneca, trebuie sa introducem o functie in sketch care sa sune astfel: “daca valoarea obtinuta de la fotorezistor este mai mica decat X, ledul trebuie sa lumineze”. Pentru asta, trebuie sa cunoastem valoarea X, care se obtine cand se lasa intunericul.

Solutie: Vom citi valoarea X data de fotorezistor (cand se intuneca) pe “serial monitor”. Cunoscand asta, vom putea introduce functia de care aveam nevoie in sketch: “Daca tensiunea citita pe fotorezistor este mai mica decat valoarea X, aprinde ledul”.

Setup:



Sketch:

int input=A0; //”input” inlocuieste valoarea “A0” (portul analog 0)

int LED=10; //”LED” inlocuieste valoarea 10

int sensorvalue=0; //variabila pentru valoarea senzorului, avand valoarea se start

void setup() //aici incepe setup

{

Serial.begin(9600); //incepe comunicatia cu portul serial. Vom avea nevoie de acesta pentru a citi pe //serial monitor valorile oferite de fotorezistor



pinMode (LED,OUTPUT); //pinul conectat la led este definit ca output. Nu este nevoie sa definim pinul //analog

}

void loop()



{ //aici incepe partea loop

sensorvalue=analogRead(input); /citeste valoarea de pe fotorezistor si o salveaza in „sensorvalue”

Serial.print("Sensor value ="); //arata “Sensor value=” pe serial monitor

Serial.print(sensorvalue); //trimite valoarea de pe fotorezistor sub forma de numar cuprins intre 0 si //1023, pe serial monitor

if(sensorvalue > 512) //daca valoarea de pe senzor este mai mare decat 512 …

{

digitalWrite(LED,HIGH); //...ledul ar trebui sa lumineze...



}

else


{

digitalWrite(LED,LOW); //altfel ledul se stinge



}

delay(50); //o pauza scurta intre momentul in care ledul lumineaza si cand se stinge



} //aceasta acolada inchide partea loop

//daca valoarea senzorului la luminare normala atinge 100 (aceasta valoare depinde de rezistorul //utilizat, iluminare si directia curentului), atunci ar avea sens sa folosim o valoare mai mica de 512(de //exemplu, 90), pentru a aprinde ledul. Puteti cauta valoarea indicata de senzor pe” serial monitor”.
Yüklə 14,37 Kb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə