红外传感器模块与 Arduino 连接

红外传感器模块与 Arduino 连接

原文地址

Arduino 红外传感器接口

Arduino 红外传感器接口

红外**接近传感器或红外传感器它发射红外光以感知周围环境,并可用于检测物体的运动。由于这是一个无源传感器,它只能测量红外辐射。如果您曾经尝试过设计避障机器人或任何其他基于接近检测的系统,那么您很可能已经知道这个模块。

红外传感器引脚排列

红外传感器有一个 3 针连接器,可将其连接到外部世界。连接如下:

红外传感器模块引脚排列

VCC 连接到 Arduino 上的 5V 引脚的红外传感器的电源引脚。

OUT 引脚为5V TTL逻辑输出。低表示未检测到运动;高表示检测到运动。

GND 连接到Arduino的接地。

红外运动传感器模块如何工作?

红外传感器模块的工作非常简单,它由两个主要组件组成:第一个是红外发射器部分,第二个是红外接收器部分。在发射器部分,使用红外LED,在接收器部分,光电二极管用于接收红外信号,经过信号处理和调理,您将获得输出。

红外传感器工作

红外接近传感器的工作原理是向红外发光二极管施加电压,红外发光二极管发出红外光。该光在空气中传播并撞击物体,然后光电二极管传感器接收。如果物体近,反射光会更强,如果物体离得远,反射光会更弱。如果您仔细观察模块。当传感器触发时,它通过输出引脚发送低电平,Arduino或任何类型的微控制器都可以检测到该信号以执行特定任务。该模块内置了两个板载LED,其中一个在电源可用时亮起,另一个在电路被触发时打开。

**红外运动传感器模块 **

对于大多数Arduino项目,该传感器用于检测接近或构建避障机器人。该传感器在初学者中很受欢迎,因为它们功耗低、成本低、坚固耐用,并且具有宽感应范围,可以调整灵敏度。

红外传感器模块部件

该传感器有三个引脚,其中两个是电源引脚VCC和GND,另一个是数据引脚,如上图所示。它有一个板载电源 LED 和一个信号 LED,当电源施加到电路板上时,电源 LED 亮起,触发电路时信号 LED 亮起。该板还具有一个比较器运算放大器,负责将光电二极管的输入模拟信号转换为数字信号。我们还有一个灵敏度调节电位器;这样,我们可以调整设备的灵敏度。最后,我们有光电二极管和红外发射 LED 对,它们共同构成了整个红外接近传感器模块。

关于红外传感器的常见问题

红外传感器的输入功率是多少?

红外接近传感器模块可由 3.3V 和 5V 电源供电。这使得该模块可用于Arduino等5V系统和Raspberry Pi等3.3V系统。

红外传感器模块的范围是多少?

如果物体与传感器之间的距离为 2 到 10 厘米,则此传感器可以检测物体。此外,您还可以通过调整模块上的微调电位器来控制传感器的最大距离。

如何测试红外传感器模块?

测试您的红外传感器模块很容易,只需分别用 5V 和接地为 Vcc 和 Gnd 引脚供电,然后将手靠近红外传感器。如果一切正常,您应该能够看到模块上的信号 LED 亮起。

红外运动传感器模块电路图

红外运动传感器的示意图如下所示。原理图本身非常简单,需要一些通用元件来构建。如果您手头没有预构建的模块,但仍想测试您的项目,下面的原理图将派上用场。

红外传感器模块电路图

在原理图中,我们有一个红外LED作为发射器,光电二极管作为接收器。如果物体在传感器前面,光电二极管会接收来自物体的反射光,根据强度,我们可以确定物体的距离或距离。在原理图中,您还可以找到一个LM358运算放大器,它正在执行所有比较工作并生成输出。除此之外,还有一个电位计可用于调整红外传感器模块的灵敏度或该模块的触发距离。

带 Arduino UNO 的红外传感器 – 连接图

现在我们已经完全了解了红外传感器的工作原理,我们可以将所有必需的电线连接到Arduino,如下所示。

Arduino 红外传感器模块电路连接

将红外传感器连接到任何微控制器非常简单。众所周知,该传感器输出数字信号,处理该信号非常容易。有两种方法,您始终可以在无限循环中检查端口以查看端口何时将其状态从高变为低,或者另一种方法是使用中断来执行此操作,如果您正在制作复杂的项目,建议使用中断方法。用 5V 或 3.3V 为 IR 供电,并接地。然后将输出连接到数字引脚D9。我们使用公对母跳线将红外传感器模块与 Arduino 板连接,如下所示。

将红外传感器模块与 Arduino Uno 连接

有了这个,您现在可以上传一些代码并使红外运动传感器正常工作。您还可以在本文底部查看上述模块的实际效果。

Arduino 代码,用于将红外运动传感器模块与 Arduino 接口

Arduino IR传感器模块代码非常简单易懂。我们基本上只是跟踪引脚D9的输入是高电平还是低电平。

我们通过声明两个全局变量来初始化代码,第一个变量保存连接红外传感器的引脚值,第二个保存 LED 连接处的值

int IRSensor = 9; // connect IR sensor module to Arduino pin D9
int LED = 13; // connect LED to Arduino pin 13

接下来,我们有设置功能。在设置函数中,我们用 115200 波特初始化串行。接下来,我们打印一条语句来检查串行监视器窗口是否正常工作,然后将IRSensor引脚初始化为输入,将LED引脚初始化为输出。

void setup() {
  Serial.begin(115200); // Init Serial at 115200 Baud Rate.
  Serial.println("Serial Working"); // Test to check if serial is working or not
  pinMode(IRSensor, INPUT); // IR Sensor pin INPUT
  pinMode(LED, OUTPUT); // LED Pin Output
}

接下来,我们有无限循环。在无限循环中,我们首先使用 digitalRead() 函数读取传感器引脚,并将值存储到 sensorStatus 变量中。然后我们检查传感器的输出是高还是低,如果传感器的输出是高,则表示未检测到运动,否则检测到运动,我们还在串行监视器窗口中打印此状态。

void loop() {
  int sensorStatus = digitalRead(IRSensor); // Set the GPIO as Input
  if (sensorStatus == 1) // Check if the pin high or not
  {
    // if the pin is high turn off the onboard Led
    digitalWrite(LED, LOW); // LED LOW
    Serial.println("Motion Detected!"); // print Motion Detected! on the serial monitor window
  }
  else  {
    //else turn on the onboard LED
    digitalWrite(LED, HIGH); // LED High
    Serial.println("Motion Ended!"); // print Motion Ended! on the serial monitor window
  }
}

这就是我们简单的基于Arduino的红外传感器代码的结尾。

红外运动传感器模块的工作原理

GIF 显示了红外传感器模块的运行情况,您可以注意到模块和 Arduino 板上的 LED 都亮起,因为红色箭头指向购买。如果您是第一次使用红外运动传感器模块,那么您应该得到与此类似的响应。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KBMgjWVU-1678238510539)(https://circuitdigest.com/sites/default/files/inlineimages/u4/Working-of-IR-Sensor.gif)]

使用 Arduino 红外传感器模块的项目

以前我们已经使用这个红外传感器来构建许多有趣的项目。如果您想了解有关这些主题的更多信息,请在下面提供链接。

带 Arduino 的红外传感器

自动瓶灌装系统

使用Arduino和现成的材料构建您自己的简单高效的瓶子灌装机,可用于在聚会上倒饮料,或者如果您必须在一天内填充许多瓶子,该设备可以成为救星。

带 Arduino 的红外传感器

基于 ESP8266 节点MCU 的智能停车系统

如果您在当地或公寓遇到停车问题,您可以构建这个简单的基于物联网的智能停车系统,该系统使用红外传感器打开大门并通过互联网将您更新到您的手机。

img

Arduino UNO线路跟随机器人

如果您是初学者并且想要构建汽车机器人,那么这对您来说可能是一个良好的开端,因为它使用易于使用的零件和组件。

img

使用Arduino的红外控制直流电机

如果您是初学者并正在寻找简单的项目,那么这个项目对您来说可能是一个不错的选择,因为它使用红外传感器电机和继电器在您站在风扇前时打开风扇。

代码

// Arduino IR Sensor Code
int IRSensor = 9;  // connect ir sensor module to Arduino pin 9
int LED = 13;      // conect LED to Arduino pin 13
void setup() {
  Serial.begin(9600);                // Init Serila at 115200 Baud
  Serial.println("Serial Working");  // Test to check if serial is working or not
  pinMode(IRSensor, INPUT);          // IR Sensor pin INPUT
  pinMode(LED, OUTPUT);              // LED Pin Output
}

void loop() {
  int sensorStatus = digitalRead(IRSensor);  // Set the GPIO as Input

  if (sensorStatus == 1)   // Check if the pin high or not
  {
    // if the pin is high turn off the onboard Led
    digitalWrite(LED, LOW);           // LED LOW
    Serial.println("Motion Ended!");  // print Motion Detected! on the serial monitor window
  } else {
    //else turn on the onboard LED
    digitalWrite(LED, HIGH);             // LED High
    Serial.println("Motion Detected!");  // print Motion Ended! on the serial monitor window
  }
}
物联沃分享整理
物联沃-IOTWORD物联网 » 红外传感器模块与 Arduino 连接

发表评论