Thứ Năm, 29 tháng 11, 2018

Giao tiếp cảm biến PID

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 vật thể đứng 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.
Cảm biến chuyển động PIR
Cảm biến chuyển động PIR

Sơ đồ

Cảm biến PIR với PIC18F4550

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 PIC18F4550.
  • 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 PORTA.0.
  • Nếu pin này HIGH, thì chuyển động được phát hiện và LED sẽ BẬT.
  • Theo phương thức hoạt động, nếu phát hiện thấy LOW trên pin này, điều đó có nghĩa là chuyển động vắng mặt hoặc Thời gian kích hoạt đã kết thúc và sẽ TẮT 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

/*
 * PIR Motion sensor interface with PIC18F4550
 */


#include <pic18f4550.h>
#include "Configuration_Header_File.h"

#define Motion_detection PORTAbits.RA0  /* Read PIR sensor's data on this pin */
#define PORT_Dir TRISAbits.RA0          /* define for setting direction */
#define LED LATD0                       /* connect LED to the PORT pin */
#define LED_Dir TRISDbits.RD0           /* define for setting direction */

void MSdelay(unsigned int val);

void main(void) 
{
    ADCON1=0x0F;       /* this makes all pins as a digital I/O pins */    
    PORT_Dir = 1;      /* set as input port */
    LED_Dir = 0;       /* set as output port */
    LED = 0;           /* initially turned OFF LED */
    OSCCON = 0x72;
    while(1)
    {
        while(Motion_detection)        
            LED = 1;   /* LED turn ON if any Human motion is detected */  
        
            LED = 0;   /* LED turn OFF */    
    }
}
void MSdelay(unsigned int val)
{
     unsigned int i,j;
        for(i=0;i<val;i++)
            for(j=0;j<165;j++);  /*This count Provide delay of 1 ms for 8MHz Frequency */
 }

Code
Tập tin đính kèm



1 nhận xét:

  1. What is the best sports toto
    We explain the best sports toto. the bookies who have more than 100 years 오래된 토토 사이트 of experience in horse betting and other sports betting activities.

    Trả lờiXóa