Senzor de miscare - matefizica.files.wordpress.com … · Web viewSenzor de miscare. Task:...
Transcript of Senzor de miscare - matefizica.files.wordpress.com … · Web viewSenzor de miscare. Task:...
Senzor de miscare
Task: Imediat ce se detecteaza o miscare, un piezo speaker va emite beep-uri.
Echipament necesar: Arduino/ senzor de miscare/ breadboard/ fire/ piezo speaker
Continut teorectic: Citirea valorilor tensiunii date de un senzor de miscare si utilizarea lor catre un dispozitiv de iesire.
Senzorul de miscare, cunoscut si sub numele de senzor PIR (senzor pasiv in infrarosu), are o constructie foarte simpla. Odata ce detecteaza o miscare, produce o tensiune de 5V pe un pin. Acum , microcontrolerul trebuie sa citeasca aceasta tensiune si sa o proceseze.
Durata semnalului de output si sensibilitatea (reach) senzorului de miscare pot fi ajustate cu ajutorul a doua reglaje aflate pe acesta (vezi imaginea din dreapta).
Partea de plastic de deasupra senzorului poate fi usor detasata. Sub ea se afla detectorul IR propriu-zis si trei contacte notate astfel: GND (-), OUT (semnalul de iesire), VCC (+). Acest lucru se poate observa in imaginea din stanga.
In plus, la marginea detectorului exista un jumper. Aceasta face posibila trecerea intre doua moduri de functionare diferite.
1) Jumper plasat intre contactele dinspre exterior: Semnalul de output se va mentine un timp, dupa ce sezorul a sesizat miscarea. Dar dupa acest timp, semnalul va fi dezactivat, chiar daca o miscare poate fi detectata. Semnalul se va ativa din nou dupa ceva timp.
2) Jumper plasat intre doua contacte interioare: Semnalul output va ramane constant activ cat timp miscarea este detectata. Acest mod este recomandat pentru proiecte cu Arduino.
Setup:
Code:
int piezo=5; //cuvantul piezo inlocuieste valoarea 5.
int movement=7; //cuvantul movement inlocuieste valoarea 7.
int movementstatus=0; //cuvantul movementstatus ia valoarea 0. Mai tarziu //se va salva aici informatia daca miscarea este detectata sau nu.
void setup()
{ // parte de program setup incepe aici
pinMode(piezo, OUTPUT); // pinul la care este conectat piezo speaker-ul //este definit ca output.
pinMode(movement, INPUT); //pinul conectat la detectorul de miscare (pin 7) //este definit ca input.
}
void loop()
{ //partea de program loop incepe aici
Movementstatus=digitalRead(movement); //valoarea pinului 7 este citita //(comanda: digitalRead). Rezultatul va fi inregistrat in movementstatus. //(HIGH insemana 5V , iar LOW inseamna 0V).
if(movementstatus==HIGH) // daca miscarea este detectata (tensiunea este //HIGH)
{ //aici se deschide parte de program pentru comanda IF
digitalWrite(piezo, HIGH); //piezo speaker-ul va emite beep
delay(5000); //timp de 5 secunde
digitalWrite(piezo, LOW); //dupa care acesta sunetul inceteaza
} //aici se inchide programul aferent comenzii IF
else
{ //se deschide comanda else
digitalWrite(piezo, LOW); // speaker-ul este inchis
} //se inchide comanda else
} //se inchide partea loop