0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

将PIR与PIC16F877A连接起来的教程

科技观察员 来源:circuitdigest 作者:潘卡伊·卡特里 2022-11-16 16:12 次阅读

PIR(被动红外)或运动传感器用于检测移动人体或物体的运动。每当有人进入 PIR 传感器的范围内时,它的输出引脚都会发出高电平。

今天,我们将简单地将PIR与PIC微控制器PIC16F877A连接。在此电路中,如果一些移动物体进入 PIR 传感器的范围内,蜂鸣器将开始发出蜂鸣声。

所需材料

图片套件 3

红外传感器。

PIC16F877A 集成电路

40 - 引脚 IC 支架

性能板

20 MHz 晶体 OSC

内螺纹和外螺纹伯格斯图销

33pf 电容器 - 2 个电容、100uf 和 10uf 电容。

680 欧姆、10K 和 560 欧姆电阻器

任何颜色的发光二极管

1 焊接套件

集成电路 7805

12V 适配器

蜂鸣器

连接线

面包板

红外传感器:

PIR 传感器价格低廉、功耗低且易于使用的运动检测 Sesnor。PIR 传感器只接收红外线,不发射,这就是为什么它被称为被动。PIR 感应热量的任何变化,如果有变化,它会在输出时给出高电平。PIR 传感器也称为热释电或红外运动传感器。

pYYBAGN0m2eAcwaxAACs0MLxWBM736.jpg

每个物体在加热时都会发出一定量的红外线,类似于人体因体温而发出红外线。由于空气和物体之间的摩擦,每个物体产生的红外线。PIR传感器的主要部件是热释电传感器。除此之外,BISS0001(“微功率PIR运动检测器IC”),一些电阻器,电容器和其他用于构建PIR传感器的组件。BISS0001 IC从传感器获取输入并进行处理,使输出引脚相应地高或低。

您还可以调整距离灵敏度和持续时间,一旦检测到运动,输出引脚将处于高电平。它有两个电位计旋钮来调整这两个参数

电路图

poYBAGN0mrqAKEobAAGwkWVVRi4243.png

PIC微控制器:

为了对PIC微控制器进行编程以连接PIR,我们将需要一个IDE(集成开发环境),用于进行编程。一个编译器,我们的程序被转换为MCU可读形式,称为HEX文件。一个IPE(集成编程环境),用于将我们的十六进制文件转储到我们的PIC MCU中。

Microchip免费提供了这三个软件。可以直接从其官方页面下载。为了您的方便,我还提供了链接。下载后,将它们安装在您的计算机上。如果您在这样做时遇到任何问题,可以查看最后给出的视频

要将我们的代码转储或上传到 PIC,我们需要PICkit 3。PICkit 3编程器/调试器是一种简单、低成本的在线调试器,由在 Windows 平台上运行 MPLAB IDE(v8.20 或更高版本)软件的 PC 控制。PICkit 3编程器/调试器是开发工程师工具套件不可或缺的一部分。除此之外,我们还需要其他硬件,如 Perf 板、焊台、PIC IC、晶体振荡器、电容器等。但是,随着教程的进行,我们会将它们添加到我们的列表中。

我们将使用MCU中提供的ICSP选项对PIC16F877A进行编程。

要刻录代码,请执行以下步骤:

启动 MPLAB IPE。

将 PicKit 3 的一端连接到 PC,另一端连接到性能板上的 ICSP 引脚。

通过单击连接按钮连接到您的 PIC 设备。

浏览闪烁十六进制文件,然后单击程序。

代码和说明
首先,我们需要在 pic 微控制器中设置配置位,然后从 void main 函数开始。

在下面的代码中,“XC.h”是包含引脚和外设的所有友好名称的头文件。此外,我们还在下面的代码中定义了晶体振荡器频率、PIR 和蜂鸣器引脚连接。

#include
#define _XTAL_FREQ 20000000 //Specify the XTAL crystall FREQ
#define PIR RC0
#define Buzzer RB2
在空主()中,“TRISB=0X00”用于指示MCU将PORTB引脚用作输出,“TRISC=0Xff”用于指示MCU将PORTB引脚用作输入。“PORTB=0X00”用于指示MCU使RB3的所有输出为低电平。

TRISB=0X00;
TRISC=0Xff;
PORTB=0X00; //Make all output of RB3 LOW
根据下面的代码,每当 PIR 变高时,蜂鸣器就会变高,否则它就会保持关闭状态。

while(1) //Get into the Infinie While loop
{
if(PIR ==1){
Buzzer=1;
__delay_ms(1000); //Wait
}
else{
Buzzer=0;
}
}
}

带PIC微控制器的PIR传感器的工作:

该项目没有任何复杂的硬件设置,我们再次使用我们在LED闪烁教程中创建的相同PIC微控制器板(如下所示)。只需根据连接图将 PIR 传感器模块与PIC 微控制器板连接即可。完成连接后,只需按照上一教程中的说明使用 PicKit 3 编程器转储代码即可享受输出。

pYYBAGN0m2mAYiFwAACibBrl5VM342.jpg

上传程序后,PIR 传感器已准备好提供输出。每当发射 IR 的人或物体进入 PIR 范围内时,它都会给输出提供高电平。而且,基于该输出,蜂鸣器将运行。如果 PIR 输出为高蜂鸣器输入,则输出为高电平,反之亦然。

poYBAGN0m2uAUeMJAACzo4AYGz4419.jpg

您可以使用固定在 PIR 模块上的两个电位计来控制感应距离和时间延迟。

// 'C' source line config statements


// CONFIG

#pragma config FOSC = HS // Oscillator Selection bits (HS oscillator)

#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)

#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)

#pragma config BOREN = ON // Brown-out Reset Enable bit (BOR enabled)

#pragma config LVP = OFF // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming)

#pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off)

#pragma config WRT = OFF // Flash Program Memory Write Enable bits (Write protection off; all program memory may be written to by EECON control)

#pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off)


// #pragma config statements should precede project file includes.

// Use project enums instead of #define for ON and OFF.


#include


#define _XTAL_FREQ 20000000 //Specify the XTAL crystall FREQ

#define PIR RC0

#define Buzzer RB2


void main() //The main function

{

TRISB=0X00; //Instruct the MCU that the PORTB pins are used as Output.

TRISC=0Xff; //Instruct the MCU that the PORTB pins are used as Input.

PORTB=0X00; //Make all output of RB3 LOW


while(1) //Get into the Infinie While loop

{

if(PIR ==1){

Buzzer=1;

__delay_ms(1000); //Wait

}

else{

Buzzer=0;

}

}


}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    7482

    浏览量

    151012
  • PIC16F877A
    +关注

    关注

    2

    文章

    43

    浏览量

    21777
  • PIR
    PIR
    +关注

    关注

    0

    文章

    74

    浏览量

    17863
收藏 人收藏

    评论

    相关推荐

    PIC16F877A在proteus中读写AT24C512

    此时把I2C DEBUGGER的SCL线连接PIC16F877A和AT24C512的SCL线上,这样PIC16F877A可以正常的写AT24C512。当PIC16F877A发送启动信
    发表于 12-30 16:09

    pic16f877a中文资料pdf

    pic16f877a中文资料
    发表于 07-15 13:20 4548次下载
    <b class='flag-5'>pic16f877a</b>中文资料pdf

    PIC16F877A开发板原理图

    PIC16F877A开发板原理图,有需要的可以瞧一瞧!
    发表于 08-22 15:16 86次下载

    PIC16F877A串口发送查询方式

    PIC16F877A串口发送,查询方式,就为了调出这个费了我一天时间,原来是串口芯片电压问题,现总结如下
    发表于 09-01 11:03 10次下载
    <b class='flag-5'>PIC16F877A</b>串口发送查询方式

    PIC16F877A串口芯片电压问题

    PIC16F877A串口发送,查询方式,就为了调出这个费了我一天时间,原来是串口芯片电压问题,现总结如下
    发表于 09-01 11:15 9次下载
    <b class='flag-5'>PIC16F877A</b>串口芯片电压问题

    PIC16F877A的UART通信和proteus仿真的资料合集免费下载

    本文档的主要内容详细介绍的是PIC16F877A的UART通信和proteus仿真的资料合集免费下载PIC877单片机进行UART测试
    发表于 12-29 08:00 29次下载
    <b class='flag-5'>PIC16F877A</b>的UART通信和proteus仿真的资料合集免费下载

    PIC16F877A的T0定时器制作的电子钟程序

    经过努力,利用PIC16F877A的T0定时器制作的电子钟实验成功!
    发表于 05-15 09:42 1876次阅读

    PIC16F877A开发板 数码管动态扫描实验

    //****************电子园PIC16F877A开发板 数码管动态扫描实验****************//////mcu: PIC16F877A 4MHz //2010年12月
    发表于 11-16 19:51 13次下载
    <b class='flag-5'>PIC16F877A</b>开发板 数码管动态扫描实验

    PIC16F877A开发板 普通IO驱动74595实验

    //*****************电子园PIC16F877A开发板 普通IO驱动74595实验***************////PIC16F877A 实验板////mcu
    发表于 11-16 19:51 13次下载
    <b class='flag-5'>PIC16F877A</b>开发板 普通IO驱动74595实验

    PIC16F877A 看门狗定时器实验

    //*******************PIC16F877A 看门狗定时器实验******************* // //PORTA,PORTB,PORTC,PORTD,PORTE
    发表于 11-16 20:06 8次下载
    <b class='flag-5'>PIC16F877A</b> 看门狗定时器实验

    PIC16F877A和TB6612FNG电机驱动的微型电路

    电子发烧友网站提供《用PIC16F877A和TB6612FNG电机驱动的微型电路.zip》资料免费下载
    发表于 08-15 11:17 4次下载
    用<b class='flag-5'>PIC16F877A</b>和TB6612FNG电机驱动的微型电路

    MCP4921与PIC16F877A接口进行数模转换的方法

    在本教程中,我们DAC MCP4921 与 Microchip PIC16F877A 接口以进行数模转换。
    发表于 09-06 17:40 1597次阅读
    <b class='flag-5'>将</b>MCP4921与<b class='flag-5'>PIC16F877A</b>接口进行数模转换的方法

    使用热敏打印机连接PIC16F877A并使用轻触开关实现打印的教程

    在本教程中,我们热敏打印机 CSN A1 与广泛使用的 PIC 微控制器 PIC16F877A 连接。在本项目中,热敏打印机
    的头像 发表于 11-04 15:10 2729次阅读
    使用热敏打印机<b class='flag-5'>连接</b><b class='flag-5'>PIC16F877A</b>并使用轻触开关实现打印的教程

    PIC16F877A单片机代码生成系统

    PIC16F877A单片机代码生成系统V3.4_221214_1035
    发表于 12-20 17:00 7次下载

    PIC16F877A开发板原理图

    PIC16F877A开发板原理图免费下载。
    发表于 03-21 15:47 12次下载