Wednesday 28 November 2018

Giao Tiếp Cảm Biến Chuyển Động PIR

Giới thiệu

Cảm biến PIR phát hiện bức xạ nhiệt hồng ngoại. Nó có thể được sử dụng để phát hiện sự hiện diện của các vật thể sống phát ra bức xạ nhiệt hồng ngoại.
Cảm biến PIR được chia thành hai khe. Hai khe được kết nối với một bộ khuếch đại vi sai.
Bất cứ khi nào một đối tượng tĩnh nằm trước cảm biến, hai khe nhận cùng một lượng bức xạ và đầu ra bằng không.
Bất cứ khi nào một vật chuyển động nằm trước cảm biến, một trong các khe nhận được nhiều bức xạ hơn khe khác. Điều này làm cho swing đầu ra cao hay thấp.
Sự thay đổi điện áp đầu ra này là kết quả của việc phát hiện chuyển động.
Để biết thêm thông tin về cảm biến PIR và cách sử dụng cảm biến PIR , hãy tham khảo từ công cụ tìm kiếm của Google
Cảm biến PIR

Sơ đồ mạch


Giao diện cảm biến chuyển động PIR với 8051

Thí dụ

  • Hãy thiết kế một ứng dụng nhỏ trong đó đèn LED sẽ BẬT khi phát hiện chuyển động.
  • Để làm điều này, giao diện cảm biến chuyển động PIR với 8.051.
  • Như được hiển thị trong Sơ đồ mạch, chốt đầu ra của cảm biến chuyển động PIR được kết nối với chân PORT0.0.
  • Để có được mức độ thích hợp (0 và 5) tại 8051 đầu vào pin được sử dụng để đọc cảm biến PIR, bóng bán dẫn được sử dụng.
  • Khi sử dụng transistor, pin P0.0 đi Thấp cho biết chuyển động được phát hiện và đèn LED sẽ BẬT.
  • Theo chế độ hoạt động, nếu cao trên pin này phát hiện, có nghĩa là một trong hai chuyển động vắng mặt hoặc thời gian kích hoạt là hơn và sẽ tắt đèn LED.
  • Ở đây chúng ta cấu hình mô-đun ở chế độ kích hoạt lặp lại.
Lưu ý : Sau khi cấp nguồn cho mô-đun cần khoảng 30-50 giây để khởi động để hoạt động bình thường.

Chương trình



#include <reg51.h>

sbit Motion_detection=P0^0; /* Read PIR sensor's data on this pin */
sbit LED=P1^0;    /* Connect LED to the PORT1.0 pin */


void MSdelay(unsigned int val);

void main(void) 
{
 P1=0;   /* Initially LED turned OFF*/
 MSdelay(3000); /* Power-on delay for PIR */
 while(1)
 {
  if(Motion_detection==1)  /* Check for human motion */
  LED = 0; /* LED turn OFF for No motion */
  else
  LED = 1; /* LED turn ON if motion is detected */
 }
}
void MSdelay(unsigned int val)
{
     unsigned int i,j;
        for(i=0;i<=val;i++)
            for(j=0;j<112;j++); /* Delay of 1 ms for 11.0592MHz Frequency */
}

Code mô phỏng


No comments:

Post a Comment