您的位置:首页 > 教育 > 培训 > 网络培训ppt_电商平台入驻_seo扣费系统源码_如何做网站推广的策略

网络培训ppt_电商平台入驻_seo扣费系统源码_如何做网站推广的策略

2024/12/26 8:15:04 来源:https://blog.csdn.net/shaosheng2008/article/details/144724082  浏览:    关键词:网络培训ppt_电商平台入驻_seo扣费系统源码_如何做网站推广的策略
网络培训ppt_电商平台入驻_seo扣费系统源码_如何做网站推广的策略

在智能控制和机器人技术中,距离感知是一项至关重要的功能。HC-SR04超声波传感器以其高精度、稳定性和非接触式测距的优点,广泛应用于障碍检测、物体躲避和水位监测等领域。本项目利用树莓派Pico控制超声波传感器,实现距离测量,并通过LED灯直观显示测量结果。


一、项目目标

通过树莓派Pico板读取HC-SR04超声波传感器的距离值,实时计算物体与传感器的距离,并通过4个LED灯模拟距离的远近。


二、所需元件

  1. 树莓派Pico开发板 × 1
  2. HC-SR04超声波传感器 × 1
  3. LED灯 × 4
  4. 220Ω电阻 × 4
  5. 杜邦线 若干
  6. 面包板 × 1
  7. USB数据线 × 1

点我获取套件


三、HC-SR04超声波传感器原理

1. 工作原理

HC-SR04通过发射超声波脉冲,并测量其反射回波的时间来计算与物体之间的距离。其内部包含超声波发射器和接收器:

  • Trig引脚:触发器,用于发射超声波。
  • Echo引脚:接收器,用于接收反射的超声波。
  • 测距公式: 距离=回波持续时间×声速2\text{距离} = \frac{\text{回波持续时间} \times \text{声速}}{2}距离=2回波持续时间×声速​ 简化为: 距离(cm)=回波脉冲宽度(μs)58\text{距离(cm)} = \frac{\text{回波脉冲宽度}(\mu s)}{58}距离(cm)=58回波脉冲宽度(μs)​
2. 特性与优点
  • 测量范围:2cm~400cm
  • 高精度:±3mm
  • 不受阳光或黑色材料的影响

四、硬件接线

1. HC-SR04与树莓派Pico连接
  • VCC → Pico 3.3V
  • GND → Pico GND
  • Trig → Pico GPIO27
  • Echo → Pico GPIO26
2. LED与树莓派Pico连接
  • LED1正极 → Pico GPIO19 (通过220Ω电阻)
  • LED2正极 → Pico GPIO18 (通过220Ω电阻)
  • LED3正极 → Pico GPIO17 (通过220Ω电阻)
  • LED4正极 → Pico GPIO16 (通过220Ω电阻)
  • LED负极 → 公共GND

五、代码实现

以下代码分两部分:距离测量与LED显示。

1. 基本距离测量代码
const int TrigPin = 27;  // 定义Trig引脚
const int EchoPin = 26;  // 定义Echo引脚void setup() {pinMode(TrigPin, OUTPUT); // 设置Trig引脚为输出pinMode(EchoPin, INPUT);  // 设置Echo引脚为输入Serial.begin(115200);     // 初始化串口通信
}void loop() {digitalWrite(TrigPin, LOW);delayMicroseconds(2);digitalWrite(TrigPin, HIGH); // 发出10μs的高电平信号delayMicroseconds(10);digitalWrite(TrigPin, LOW);long duration = pulseIn(EchoPin, HIGH);  // 读取回波时间int distance = duration / 58;           // 将时间转换为距离Serial.print("Distance: ");Serial.print(distance);Serial.println(" cm");delay(100);
}
2. 超声波控制LED代码
const int TrigPin = 27;
const int EchoPin = 26;
const int PIN_LED1 = 19;
const int PIN_LED2 = 18;
const int PIN_LED3 = 17;
const int PIN_LED4 = 16;void setup() {pinMode(TrigPin, OUTPUT);pinMode(EchoPin, INPUT);pinMode(PIN_LED1, OUTPUT);pinMode(PIN_LED2, OUTPUT);pinMode(PIN_LED3, OUTPUT);pinMode(PIN_LED4, OUTPUT);Serial.begin(115200);
}void loop() {digitalWrite(TrigPin, LOW);delayMicroseconds(2);digitalWrite(TrigPin, HIGH);delayMicroseconds(10);digitalWrite(TrigPin, LOW);long duration = pulseIn(EchoPin, HIGH);int distance = duration / 58;Serial.print("Distance: ");Serial.print(distance);Serial.println(" cm");digitalWrite(PIN_LED1, distance <= 7 ? HIGH : LOW);digitalWrite(PIN_LED2, distance <= 14 ? HIGH : LOW);digitalWrite(PIN_LED3, distance <= 21 ? HIGH : LOW);digitalWrite(PIN_LED4, distance <= 28 ? HIGH : LOW);delay(100);
}

六、实验现象

  1. 距离测量

    • 在串口监视器中实时打印物体距离,单位为厘米。
  2. LED状态指示

    • 当距离小于7cm时,LED1点亮。
    • 当距离小于14cm时,LED1和LED2点亮。
    • 当距离小于21cm时,LED1、LED2和LED3点亮。
    • 当距离小于28cm时,所有LED点亮。

七、扩展应用

  1. 智能停车系统

    • 利用超声波传感器实现车位距离测量,LED用于显示停车进程。
  2. 水位监测

    • 通过超声波传感器监测水位高度,结合蜂鸣器提示用户水位状态。
  3. 障碍检测

    • 应用于机器人导航中,通过实时测距避开障碍物。

八、总结

本项目通过树莓派Pico和HC-SR04超声波传感器实现了基本的测距功能,并结合LED灯实现了直观的距离指示。项目结构简单、成本低廉,非常适合嵌入式开发入门学习。通过对代码和硬件的理解,用户可以进一步扩展,实现更多复杂的功能

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com