【花雕学编程】Arduino动手做(232)---ESP32S3-CAM 红外对管
【花雕学编程】Arduino动手做(232)---ESP32S3-CAM 红外对管
红外对管模块是一种常用于检测物体存在与否的传感器模块,广泛应用于机器人避障、循迹小车、物体计数等场景。以下是红外对管模块的主要特点和使用方法:1、红外对管模块的特点
组成: 红外对管模块由一个红外发射管和一个红外接收管组成。发射管发射红外光,接收管接收反射回来的红外光。
工作原理: 当发射的红外光遇到障碍物时,会反射回来并被接收管接收。接收管将信号传递给处理电路,输出高低电平信号。
调节灵敏度: 模块通常带有一个电位器,可以调节检测距离和灵敏度。
输出信号: 模块输出数字信号(高电平或低电平),可以直接连接到单片机或开发板的GPIO口。
2、应用场景
机器人避障: 检测前方是否有障碍物,控制机器人避开障碍。
循迹小车: 检测黑白线,实现小车沿特定轨迹行驶。
物体计数: 在流水线上检测物体通过的数量。
安防系统: 检测是否有物体进入特定区域。
3、使用方法
连接电路: 将模块的VCC引脚连接到电源(3.3V或5V),GND引脚连接到地,OUT引脚连接到单片机或开发板的数字输入引脚。
调节灵敏度: 通过旋转电位器调节检测距离和灵敏度。
读取信号: 使用代码读取OUT引脚的高低电平信号,判断是否有物体存在。
【花雕学编程】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毫秒
}
【花雕学编程】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的亮灭,同时将检测结果输出到串口。
【花雕学编程】Arduino动手做(232)---ESP32S3-CAM 红外对管
实验串口返回情况【花雕学编程】Arduino动手做(232)---ESP32S3-CAM 红外对管
实验场景图
页:
[1]