ESP32-S3 控制 红外避障模块

ESP32-S3 红外避障模块实验 —— 指示灯控制

本实验通过 ESP32-S3 与红外避障模块 实现对障碍物的检测,并通过 LED 指示灯显示模块状态。


一、实验名称

红外避障模块实验


二、接线说明

红外避障模块 ESP32-S3 引脚
VCC 3V3
GND GND
DO 15
LED1 (指示灯) 3

三、实验现象

  • 程序下载成功后,当红外避障模块感应到障碍物时,LED 指示灯 D1 会亮起,感应结束时熄灭。

四、注意事项

  • DO 引脚输出数字信号,高电平或低电平表示检测状态。
  • LED 指示灯需要通过 GPIO 控制,确保连接正确。

五、完整代码示例

// 定义控制管脚
#define touch_pin  15
#define LED1       3

void setup() {
  // 设置红外模块输入引脚
  pinMode(touch_pin, INPUT);
  
  // 设置LED1输出引脚
  pinMode(LED1, OUTPUT);
  
  // 初始状态LED熄灭
  digitalWrite(LED1, LOW);
}

void loop() {
  char ledsta = 0;

  while (1) {
    // 当红外模块检测到障碍物
    if (digitalRead(touch_pin) == 0) {
      ledsta = !ledsta;           // 翻转LED状态
      digitalWrite(LED1, ledsta); // 控制LED
      while (!digitalRead(touch_pin)); // 等待模块信号恢复
    }
  }
}

六、代码讲解

  1. 输入读取
if(digitalRead(touch_pin) == 0)
  • DO 引脚为数字输入,高低电平表示是否检测到障碍物。
  1. LED 控制
ledsta = !ledsta;
digitalWrite(LED1, ledsta);
  • 状态翻转方式控制 LED 灯亮灭。
  1. 等待信号恢复
while(!digitalRead(touch_pin));
  • 防止 LED 状态重复切换,等待模块信号恢复。

七、实验效果

  • 检测到障碍物时,LED D1 亮起。
  • 障碍物移开,LED 熄灭。
posted @ 2025-08-16 16:07  jeikerxiao  阅读(61)  评论(0)    收藏  举报