Cảm biến chuyển động PIR phát hiện ánh sáng hồng ngoại của người khi đứng trước đầu thu. Sử dụng cảm biến PIR khá đơn giản. Ngoài hai chân cấp nguồn (5V và GND) thì chỉ có 1 lối ra. Bình thường lối ra có trạng thái 0, điện áp 0V. Khi có người đứng trước cảm biến, lối ra lên trạng thái 1, điện áp khoảng 3V. Thời gian chân ra có trạng thái lên cao tùy thuộc từng loại PIR, khoảng vài giây.
Tầm hoạt động của PIR lên đến 6m với góc mở hình nón khoảng 70 độ. Nắp nhựa trắng chính là lăng kính hội tụ ánh sáng hồng ngoại vào cảm biến. Cảm biến PIR thế hệ mới có nút chỉnh độ nhạy và thời gian lên cao của lối ra.
Khi cấp nguồn, cảm biến PIR cần vài giây đến 1 phút để làm nóng và hoạt động. Trong khoảng thời gian này, cảm biến sẽ có thể báo sai trạng thái.
Phía sau cảm biến có một vị trí 3 chân được đánh dấu L/H. Nên kẹp hai đầu tại vị trí H để cảm biến có thể đọc liên tục.
- Chương trình:
int ledPin = 13; // LED cảnh báo int inputPin = 8; // chân lối vào cảm biến int pirState = LOW; // giả sử ban đầu cảm biến int val = 0; // biến đọc trạng thái void setup() { pinMode(ledPin, OUTPUT); // lối ra LED pinMode(inputPin, INPUT); // lối vào cảm biến Serial.begin(9600); // truyền về máy tính } void loop(){ val = digitalRead(inputPin); // đọc cảm biến if (val == HIGH) { // nếu trạng thái cao digitalWrite(ledPin, HIGH); // bật LED if (pirState == LOW) { // trạng thái trước đó của cảm biến là thấp Serial.println("Motion detected!"); // báo hiệu về máy tính pirState = HIGH; //lưu trạng thái } } else { digitalWrite(ledPin, LOW); // tắt LED if (pirState == HIGH){ // trạng thái trước đó là cao Serial.println("Motion ended!"); // báo hiệu pirState = LOW; //lưu trạng thái } } }