驴友花雕 发表于 2024-9-30 16:48:31

【花雕学编程】Arduino动手做(232)---ESP32S3-CAM 红外对管






驴友花雕 发表于 2024-9-30 16:51:19

【花雕学编程】Arduino动手做(232)---ESP32S3-CAM 红外对管

红外对管模块是一种常用于检测物体存在与否的传感器模块,广泛应用于机器人避障、循迹小车、物体计数等场景。以下是红外对管模块的主要特点和使用方法:

1、红外对管模块的特点
组成: 红外对管模块由一个红外发射管和一个红外接收管组成。发射管发射红外光,接收管接收反射回来的红外光。
工作原理: 当发射的红外光遇到障碍物时,会反射回来并被接收管接收。接收管将信号传递给处理电路,输出高低电平信号。
调节灵敏度: 模块通常带有一个电位器,可以调节检测距离和灵敏度。
输出信号: 模块输出数字信号(高电平或低电平),可以直接连接到单片机或开发板的GPIO口。

2、应用场景
机器人避障: 检测前方是否有障碍物,控制机器人避开障碍。
循迹小车: 检测黑白线,实现小车沿特定轨迹行驶。
物体计数: 在流水线上检测物体通过的数量。
安防系统: 检测是否有物体进入特定区域。

3、使用方法
连接电路: 将模块的VCC引脚连接到电源(3.3V或5V),GND引脚连接到地,OUT引脚连接到单片机或开发板的数字输入引脚。
调节灵敏度: 通过旋转电位器调节检测距离和灵敏度。
读取信号: 使用代码读取OUT引脚的高低电平信号,判断是否有物体存在。



驴友花雕 发表于 2024-9-30 17:09:47

【花雕学编程】Arduino动手做(232)---ESP32S3-CAM 红外对管

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
   实验二百三十二:ESP32-S3 WROOM N16R8 CAM开发板WiFi+蓝牙模块
   OV2640/5640摄像头模组
{花雕动手做}项目之二十八:ESP32-S3 CAM使用红外线对管模块控制LED灯

实验开源代码

/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
   实验二百三十二:ESP32-S3 WROOM N16R8 CAM开发板WiFi+蓝牙模块
   OV2640/5640摄像头模组
{花雕动手做}项目之二十八:ESP32-S3 CAM使用红外线对管模块控制LED灯
*/

#define PIN_IR_SENSOR 1// 红外对管模块的输出引脚
#define PIN_LED 2      // LED连接到数字引脚D2

void setup() {
Serial.begin(115200);// 初始化串口通信,波特率为115200
pinMode(PIN_IR_SENSOR, INPUT);// 设置红外对管模块引脚为输入模式
pinMode(PIN_LED, OUTPUT);       // 设置LED引脚为输出模式
Serial.println("红外线对管模块准备就绪!");
}

void loop() {
int sensorVal = digitalRead(PIN_IR_SENSOR);// 读取红外对管模块的输出信号

if (sensorVal == LOW) {
    digitalWrite(PIN_LED, LOW);// 点亮LED
    Serial.println("检测到物体!");
} else {
    digitalWrite(PIN_LED, HIGH);   // 关闭LED
    Serial.println("未检测到物体。");
}

delay(500);// 延迟500毫秒
}

驴友花雕 发表于 2024-9-30 17:20:06

【花雕学编程】Arduino动手做(232)---ESP32S3-CAM 红外对管

程序要点:
1、定义引脚和常量

#define PIN_IR_SENSOR 1// 红外对管模块的输出引脚

#define PIN_LED 2      // LED连接到数字引脚D2

PIN_IR_SENSOR: 定义红外对管模块的输出引脚。
PIN_LED: 定义LED连接的引脚。

2、初始化设置

void setup() {

Serial.begin(115200);// 初始化串口通信,波特率为115200

pinMode(PIN_IR_SENSOR, INPUT);// 设置红外对管模块引脚为输入模式

pinMode(PIN_LED, OUTPUT);       // 设置LED引脚为输出模式

}

Serial.begin(115200): 初始化串口通信,波特率为115200。
pinMode(PIN_IR_SENSOR, INPUT): 将红外对管模块引脚设置为输入模式。
pinMode(PIN_LED, OUTPUT): 将LED引脚设置为输出模式。

3、主循环

void loop() {

int sensorVal = digitalRead(PIN_IR_SENSOR);// 读取红外对管模块的输出信号


digitalRead(PIN_IR_SENSOR): 读取红外对管模块的输出信号,判断是否检测到物体。

4、控制LED

if (sensorVal == LOW) {

    digitalWrite(PIN_LED, HIGH);// 点亮LED

    Serial.println("检测到物体!");

} else {

    digitalWrite(PIN_LED, LOW);   // 关闭LED

    Serial.println("未检测到物体。");

}

if (sensorVal == LOW): 检查红外对管模块是否检测到物体(低电平)。
digitalWrite(PIN_LED, HIGH): 如果检测到物体,点亮LED。
Serial.println(“检测到物体!”): 输出检测结果到串口。
else: 如果未检测到物体。
digitalWrite(PIN_LED, LOW): 关闭LED。
Serial.println(“未检测到物体。”): 输出检测结果到串口。

5、延迟和循环

delay(500);// 延迟500毫秒

}

delay(500): 延迟500毫秒,避免过于频繁的检测和输出。

总结
这段代码通过红外对管模块检测物体的存在,并根据检测结果控制LED的亮灭,同时将检测结果输出到串口。

驴友花雕 发表于 2024-9-30 17:21:48

【花雕学编程】Arduino动手做(232)---ESP32S3-CAM 红外对管

实验串口返回情况


驴友花雕 发表于 2024-9-30 17:24:13

【花雕学编程】Arduino动手做(232)---ESP32S3-CAM 红外对管

实验场景图


页: [1]
查看完整版本: 【花雕学编程】Arduino动手做(232)---ESP32S3-CAM 红外对管