Testarea unui senzor de miscare PIR cu Arduino Uno
PIR senzor de miscare este un miniproiect în care am vrut sa testez un modul PIR. Practic îl conectez la un Arduino Uno și acest senzor îmi semnalează o mișcare.
PIR-urile sunt realizate în esență dintr-un senzor piroelectric (pe care îl puteți vedea mai jos, deoarece cutia de metal rotundă cu un cristal dreptunghiular în centru), care poate detecta nivelurile de radiații infraroșii. Totul emite o radiație de nivel scăzut și, cu cât este ceva mai fierbinte, cu atât sunt emise mai multe radiații. Senzorul dintr-un detector de mișcare este de fapt împărțit în două jumătăți. Motivul pentru aceasta este că noi căutăm să detectăm mișcarea (schimbarea) nu nivelul mediu al IR. Cele două jumătăți sunt conectate astfel încât să se anuleze reciproc. Dacă o jumătate vede mai multă sau mai puțină radiație IR decât cealaltă, ieșirea va oscila în sus sau în jos, ceea ce ne semnalează pe PIN-ul din mijloc o mișcare.
Documentatie proiect:
Componente:
Schema electronica/sistem:
Cod de test:
/* | |
* PIR sensor tester | |
*/ | |
int ledPin = 13; // choose the pin for the LED | |
int inputPin = 2; // choose the input pin (for PIR sensor) | |
int pirState = LOW; // we start, assuming no motion detected | |
int val = 0; // variable for reading the pin status | |
void setup() { | |
pinMode(ledPin, OUTPUT); // declare LED as output | |
pinMode(inputPin, INPUT); // declare sensor as input | |
Serial.begin(9600); | |
} | |
void loop(){ | |
val = digitalRead(inputPin); // read input value | |
if (val == HIGH) { // check if the input is HIGH | |
digitalWrite(ledPin, HIGH); // turn LED ON | |
if (pirState == LOW) { | |
// we have just turned on | |
Serial.println("Motion detected!"); | |
// We only want to print on the output change, not state | |
pirState = HIGH; | |
} | |
} else { | |
digitalWrite(ledPin, LOW); // turn LED OFF | |
if (pirState == HIGH){ | |
// we have just turned of | |
Serial.println("Motion ended!"); | |
// We only want to print on the output change, not state | |
pirState = LOW; | |
} | |
} | |
} |
O seară plăcută tuturor !