Arduino - Cảm biến PIR

Cảm biến PIR cho phép bạn cảm nhận chuyển động. Chúng được sử dụng để phát hiện xem một người đã di chuyển vào hoặc ra khỏi phạm vi của cảm biến. Chúng thường được tìm thấy trong các thiết bị và tiện ích được sử dụng tại nhà hoặc cho các doanh nghiệp. Chúng thường được gọi là cảm biến PIR, "Hồng ngoại thụ động", "Nhiệt điện" hoặc "Chuyển động hồng ngoại".

Sau đây là những ưu điểm của Cảm biến PIR -

  • Kích cỡ nhỏ
  • Dải ống kính rộng
  • Giao diện dễ dàng
  • Inexpensive
  • Low-power
  • Dễ sử dụng
  • Không mòn

PIR được làm bằng cảm biến nhiệt điện, một lon kim loại tròn với tinh thể hình chữ nhật ở trung tâm, có thể phát hiện mức bức xạ hồng ngoại. Mọi thứ đều phát ra bức xạ ở mức độ thấp, và cái gì càng nóng thì càng phát ra nhiều bức xạ. Cảm biến trong máy dò chuyển động được chia làm hai nửa. Điều này là để phát hiện chuyển động (thay đổi) chứ không phải mức IR trung bình. Hai nửa được kết nối để chúng triệt tiêu lẫn nhau. Nếu một nửa nhìn thấy bức xạ IR nhiều hơn hoặc ít hơn bên kia, đầu ra sẽ tăng hoặc thấp.

PIR có các cài đặt có thể điều chỉnh và có một đầu cắm được lắp vào miếng đệm nối đất / ra / nguồn 3 chân.

Đối với nhiều dự án hoặc sản phẩm cơ bản cần phát hiện khi một người đã rời khỏi hoặc đi vào khu vực, cảm biến PIR là rất tốt. Lưu ý rằng PIR không cho bạn biết số lượng người xung quanh hoặc mức độ gần gũi của họ với cảm biến. Ống kính thường được gắn cố định vào một khoảng quét nhất định ở một khoảng cách xa và chúng đôi khi bị vật nuôi trong nhà đặt ra.

Thành phần bắt buộc

Bạn sẽ cần các thành phần sau:

  • 1 × Breadboard
  • 1 × Arduino Uno R3
  • 1 × Cảm biến PIR (MQ3)

Thủ tục

Làm theo sơ đồ mạch và thực hiện các kết nối như trong hình dưới đây.

Phác thảo

Mở phần mềm Arduino IDE trên máy tính của bạn. Mã hóa bằng ngôn ngữ Arduino sẽ điều khiển mạch của bạn. Mở một tệp phác thảo mới bằng cách nhấp vào Mới.

Mã Arduino

#define pirPin 2
int calibrationTime = 30;
long unsigned int lowIn;
long unsigned int pause = 5000;
boolean lockLow = true;
boolean takeLowTime;
int PIRValue = 0;

void setup() {
   Serial.begin(9600);
   pinMode(pirPin, INPUT);
}

void loop() {
   PIRSensor();
}

void PIRSensor() {
   if(digitalRead(pirPin) == HIGH) {
      if(lockLow) {
         PIRValue = 1;
         lockLow = false;
         Serial.println("Motion detected.");
         delay(50);
      }
      takeLowTime = true;
   }
   if(digitalRead(pirPin) == LOW) {
      if(takeLowTime){
         lowIn = millis();takeLowTime = false;
      }
      if(!lockLow && millis() - lowIn > pause) {
         PIRValue = 0;
         lockLow = true;
         Serial.println("Motion ended.");
         delay(50);
      }
   }
}

Mã cần lưu ý

Cảm biến PIR có ba đầu cuối - V cc , OUT và GND. Kết nối cảm biến như sau:

  • Kết nối cc + V với + 5v trên bảng Arduino.
  • Kết nối OUT với chân số 2 trên bảng Arduino.
  • Kết nối GND với GND trên Arduino.

Bạn có thể điều chỉnh độ nhạy của cảm biến và thời gian trễ thông qua hai biến trở nằm ở dưới cùng của bảng cảm biến.

Khi cảm biến phát hiện bất kỳ chuyển động nào, Arduino sẽ gửi một thông báo qua cổng nối tiếp để nói rằng chuyển động được phát hiện. Cảm giác chuyển động PIR sẽ trì hoãn trong một thời gian nhất định để kiểm tra xem có chuyển động mới hay không. Nếu không có chuyển động nào được phát hiện, Arduino sẽ gửi một thông báo mới nói rằng chuyển động đã kết thúc.

Kết quả

Bạn sẽ thấy một thông báo trên cổng nối tiếp của mình nếu một chuyển động được phát hiện và một thông báo khác khi chuyển động dừng lại.