开发板存档

基于超声波传感器的障碍物检测系统,通过 LED 灯带显示不同的警报状态。

        系统使用两个超声波传感器(左、右各一个)检测周围障碍物,根据障碍物的距离触发不同的警报状态,并通过 WS2812B LED 灯带以不同的灯光效果显示这些状态。系统还可以根据环境光线自动调整 LED 亮度,并通过电位器调节检测灵敏度。

引脚
  • 引脚 13 通常是 Arduino 板上的内置 LED 引脚
  • 引脚 14 和 27 是 ESP32 等开发板上的常用 GPIO 引脚,具有良好的数字输入 / 输出能力。
  • 引脚 5 是一个 PWM 输出引脚(在大多数 Arduino 板上)模拟输入引脚

  • LIGHT_SENSOR_PIN (A0):连接环境光传感器(如光敏电阻或光电二极管)。模拟输入范围为 0-4095(对于 12 位 ADC 的开发板,如 ESP32)。
  • POTENTIOMETER_PIN (A3):连接电位器,用于手动调节系统的检测灵敏度。
  • 环境光传感器和电位器输出的是连续变化的模拟信号,需要通过 Arduino 的 ADC(模拟 - to - 数字转换器)转换为数字值。
  • A0 和 A3 是常见的模拟输入引脚,通常用于连接传感器。
// 引脚定义(适配Arduino Nano)
#define LEFT_TRIG_PIN 13      // 左侧超声波触发引脚
#define LEFT_ECHO_PIN 12      // 左侧超声波回声引脚
#define RIGHT_TRIG_PIN 11     // 右侧超声波触发引脚
#define RIGHT_ECHO_PIN 10     // 右侧超声波回声引脚
#define LED_PIN 6             // LED灯带数据引脚
#define LIGHT_SENSOR_PIN A0   // 环境光传感器
#define POTENTIOMETER_PIN A3  // 电位器
函数

digitalWrite():向数字引脚写入电平,可以是高电平(1)或低电平(0)。

delayMicroseconds():暂停程序执行一段时间,单位为微秒。发送 10 微秒的触发脉冲,然后测量回声信号的持续时间来计算距离。公式 duration * 0.034 / 2 是将声波传播时间转换为距离(厘米)的计算方式(声波速度约为 340 米 / 秒)。

millis():获取程序从启动到现在的毫秒数。

主循环

系统定期检测左右超声波传感器的距离:

  • 通过电位器调整检测灵敏度
  • 根据测量距离更新警报状态
  • 只有当障碍物距离大于 2cm 且小于灵敏度设置值时才触发警报(避免误触发)
  • 当左右两侧都检测到近距离障碍物时,触发后方警报
  • 最后调用updateLights()函数更新 LED 显示

开发板型号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值