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

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

3天内不再提示

如何将PIR传感器与Arduino微控制器连接起来

科技观察员 来源:circuitdigest 作者:阿斯文斯·拉吉 2023-01-25 15:36 次阅读

在大多数项目中,检测运动或运动一直很重要。在PIR传感器的帮助下,检测人/动物的运动变得非常容易。在这个项目中,我们将学习如何将 PIR 传感器与 Arduino微控制器连接 。我们将 Arduino 与 PIR 模块连接 ,并在检测到移动时闪烁 LED 并发出蜂鸣器哔哔声。生成此项目需要以下组件。

所需材料:

  1. 红外传感器模块
  2. Arduino UNO (任何版本)
  3. 发光二极管
  4. 蜂鸣器
  5. 面包板
  6. 连接线
  7. 330欧姆电阻器

红外传感器:

PIR 传感器代表被动红外传感器。它是一种低成本的传感器,可以检测人类或动物的存在。传感器中存在两种重要材料,一种是可以检测生物体(人类/动物)的热信号的热释电晶体,另一种是可以扩大传感器范围的菲涅耳透镜。此外,PIR 传感器模块还为我们提供了一些调整传感器工作的选项,如下图所示。

红外传感器引脚排列

内部红外传感器

两个电位计(橙色)用于控制传感器的灵敏度和触发时间。基本上,传感器的Dout引脚位于Vcc和Gnd引脚之间。该模块工作在3.3V,但也可以用5V供电。在左上角,它还具有触发引脚设置,可用于使模块在两种不同的模式下工作。一种是“H”模式,另一种是“I”模式。

在“H”模式下,当检测到有人在范围内时,输出引脚Dout将变为高电平(3.3V),并在特定时间后变为低电平(时间由电位计设置)。在这种模式下,无论该人是否仍在范围内或已离开该区域,输出引脚都将变为高电平。我们在项目中以“H”模式使用我们的模块。

在“I”模式下,当检测到一个人在范围内时,输出引脚Dout将变为高电平(3.3V),只要他/她保持在传感器范围内的限制内,输出引脚Dout就会保持高电平。一旦该人离开该区域,引脚将在可以使用电位计设置的特定时间后变低。

注意:电位计或引脚的位置可能因 PIR 传感器供应商而异。按照丝印确定您的引脚排列

电路图及说明:

下图显示了将Arduino与PIR模块接口并闪烁LED /蜂鸣器的arduino运动检测器项目的电路图。

Arduino运动传感器电路图

我们使用 Arduino 的 5V 电源轨为 PIR 传感器供电。PIR 传感器的输出引脚连接到 2 ^德·^ Arduino的数字引脚。此引脚将是 Arduino 的输入引脚。然后是 3^RD^Arduino的引脚连接到LED和蜂鸣器。该引脚将充当Arduino的输出引脚。我们将对 Arduino 进行编程以触发 3 上的输出^RD^如果检测到输入为 2 的引脚 ^德·^ 针。完整的程序解释如下。

对 Arduino 进行编程:

Arduino的程序非常简单明了。要连接 Arduino PIR 传感器 ,我们必须将引脚编号 2 分配为输入,引脚编号 3 分配为输出。然后,每当引脚 2 变为高电平时,我们必须产生一个不连续的触发器。下面对每行进行说明。

在下面显示的空白设置函数中,我们必须声明连接到 PIR 输出的引脚 2 将用作输入,连接到 LED/蜂鸣器的引脚 3 将用作输入。

void setup() {

  pinMode(2, INPUT); //Pin 2 as INPUT

  pinMode(3, OUTPUT); //PIN 3 as OUTPUT

}

然后我们继续使用 loop() 函数。众所周知,只要MCU通电,此处的代码就会被执行。因此,我们始终使用 loop() 函数中的以下行来检查 Pin 2 是否变高。

if (digitalRead(2) == HIGH)

如果我们发现特定引脚已变为高电平,则表示已触发 PIR 模块。所以,现在我们已经使我们的输出引脚(引脚3)变高。我们以 100 毫秒的延迟打开和关闭此引脚,以便我们可以获得闪烁或嗡嗡声输出。执行相同操作的代码如下所示。

void setup() {

  pinMode(2, INPUT); //Pin 2 as INPUT

  pinMode(3, OUTPUT); //PIN 3 as OUTPUT

}


void loop() {

  if (digitalRead(2) == HIGH) // check if PIR is triggered.

  {

  digitalWrite(3, HIGH);   // turn the LED/Buzz ON

  delay(100);                       // wait for 100 msecond

  digitalWrite(3, LOW);   // turn the LED/Buzz OFF

  delay(100);                       // wait for 100 msecond

  }

}

加工:

上面已经讨论了这个arduino运动检测器的电路和程序。现在,您可以按照上面给出的原理图在面包板上构建该电路,并上传本教程末尾的程序。连接完成后,您的设置应如下所示。

Arduino运动传感器项目

现在,打开 Arduino 电源并等待大约 50-60 秒,让 PIR 传感器进行校准。不要对在此期间获得的输出感到沮丧。之后,尝试移动到 PIR 传感器前面,您的 LED/蜂鸣器应该被触发。

一段时间后应停止发出蜂鸣声/闪烁声;现在,您可以通过改变电位计来改变模块的灵敏度或低时间,从而绕过输出。

void setup() {
pinMode(2, INPUT); //Pin 2 as INPUT
pinMode(3, OUTPUT); //PIN 3 as OUTPUT
}

void loop() {
if (digitalRead(2) == HIGH)
{
digitalWrite(3, HIGH); // turn the LED/Buzz ON
delay(100); // wait for 100 msecond
digitalWrite(3, LOW); // turn the LED/Buzz OFF
delay(100); // wait for 100 msecond
}
}

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

    关注

    48

    文章

    6740

    浏览量

    147390
  • Arduino
    +关注

    关注

    184

    文章

    6422

    浏览量

    184628
  • PIR传感器
    +关注

    关注

    2

    文章

    56

    浏览量

    9609
收藏 人收藏

    评论

    相关推荐

    PIR与PIC16F877A连接起来的教程

    PIR(被动红外)或运动传感器用于检测移动人体或物体的运动。每当有人进入 PIR 传感器的范围内时,它的输出引脚都会发出高电平。 今天,我们将简单地将
    的头像 发表于 11-16 16:12 1183次阅读
    将<b class='flag-5'>PIR</b>与PIC16F877A<b class='flag-5'>连接起来</b>的教程

    如何将PLC通信口与无线数据终端连接起来??

    `如何将PLC通信口与无线数据终端连接起来,实现PLC与PLC之间,PLC与HMI触摸屏间,PLC与PC组态软件以及PLC与设备之间的无线数据交换!关注微信公众号【PLC无线通讯】解决您的一切烦恼!`
    发表于 09-28 09:49

    如何将IC的SCL和SDA引脚与FPGA板连接起来

    Aoa ..我想将我的FPGA板(virtex6 ML605)与外部时钟IC(ds1307)连接起来。请指导我如何将IC的SCL和SDA引脚与FPGA板连接。谢谢
    发表于 04-29 08:13

    怎么才能使Atmel Studio 7.0伺服电机与Atmega16 AVR微控制器连接起来

    怎么才能使Atmel Studio 7.0伺服电机与Atmega16 AVR微控制器连接起来
    发表于 09-29 08:37

    如何将蓝牙与STM32连接起来

    蓝牙模块有何功能?如何将蓝牙与STM32连接起来呢?
    发表于 11-18 07:02

    如何将Eink显示与esp32连接起来

    一般来说,我是嵌入式系统和 ESP-IDF 的新手。我正在尝试 Eink 显示与 esp32 连接起来,但我对如何为其编写代码有点迷茫。有没有我可以参考的指南或教程?
    发表于 03-01 06:36

    如何将hwirq与中断连接起来

    的 MSIR7 寄存设置中断 0 位。那么,当那个中断到达时,我该如何调用我的 interrupt_handler 函数呢?我想我应该使用 irq_create_mapping 和 request_irq Linux 函数,但我不知道如何将 hwirq 与我的中断链
    发表于 03-14 08:20

    如何将Eink显示与esp32接口连接起来

    一般来说,我是嵌入式系统和 ESP-IDF 的新手。我正在尝试 Eink 显示与 esp32 连接起来,但我对如何为其编写代码有点迷茫。有没有我可以参考的指南或教程?
    发表于 04-13 08:09

    如何将HLW8032与NodeMCU连接起来

    我正在尝试 HLW8032 与 NodeMCU 连接起来。我示例中的代码上传到微控制器,但我在串行监视上获取垃圾值。 当我尝试获取有关
    发表于 05-10 12:59

    如何将TDA8026 CAKE子板与主机控制器连接起来

    我正在尝试 TDA8026 CAKE 子板与主机控制器连接起来。起初,我试图通过连接 I2C 引脚和 VDd、VDDintf 引脚来检测设备的产品版本。但我无法读取寄存
    发表于 05-19 06:25

    TDS传感器与ESP12F裸机模块连接起来传感器无法读取传感器输出的电压怎么解决?

    我一直在尝试将我的 TDS 传感器与 ESP12F 裸机模块连接起来。我可以让 TDS 传感器与 Nodemcu 模块一起工作,因为它有内部分压。 然而,对于 ESP12F ,我知道
    发表于 05-26 15:00

    如何将LoRa模块和esp8266与Arduino核心连接起来

    我需要将 LoRa 模块和 esp8266 与 Arduino 核心连接起来,所以我需要 SPI 引脚 (12-13-14) 和其他 3 个用于 DIO0、RESET 和 NSS 的引脚,但我的项目
    发表于 05-30 06:34

    如何将编码与s32k连接起来并在freemaster中显示结果?

    我正在尝试 nxp pmsm 闭环模型与我电机中存在的正余弦编码连接起来,并在 freemaster 中获取可视化的转子位置数据。 我能够变量添加到 freemaster,但是当
    发表于 06-07 06:31

    如何将ToF传感器与IMX8MP处理连接起来

    我正在尝试 ToF 传感器与 IMX8MP 处理连接起来。我的主机开发 PC 是 Ubuntu 操作系统,所以有人可以指导我使用交叉编译
    发表于 06-08 06:31

    如何将PIR传感器连接Arduino

    在这个项目中,我们将了解PIR传感器以及如何通过Arduino PIR传感器教程将其用作运动传感器
    的头像 发表于 07-30 10:27 4862次阅读