当前位置: 首页 > news >正文

Arduino项目实战与编程技术详解

一、智能避障小车:超声波传感器与PWM电机控制

1.1 硬件需求与工作原理

智能避障小车的核心在于超声波传感器与电机驱动模块的协同工作。超声波传感器(HC-SR04)通过发射高频声波并接收回波来测量距离,而L298N电机驱动模块则负责控制两个直流电机的转向与速度。

1.1.1 超声波传感器工作原理

HC-SR04超声波传感器的测量原理基于声波的传播时间。当传感器的TRIG引脚接收到一个10微秒的高电平触发信号后,会自动发出8个40kHz的超声波脉冲。这些脉冲在空气中传播,遇到障碍物后反射回传感器,通过ECHO引脚返回回波信号。通过测量超声波发射与接收的时间差,可以计算出与障碍物之间的距离。

公式如下:
Distance=Time×Speed of Sound2Distance=2Time×Speed of Sound​
其中,声速约为343 m/s(20°C常温下的空气声速)。

1.1.2 L298N电机驱动模块

L298N是一个双H桥电机驱动模块,能够同时控制两个直流电机的转向和速度。其核心是两路H桥电路,通过控制输入引脚的高低电平,可以改变电机的旋转方向。此外,PWM(脉宽调制)信号可以通过ENA和ENB引脚控制电机的转速。

1.2 代码实现与功能扩展

以下代码实现了小车的基本避障功能:当检测到前方障碍物距离小于20厘米时,小车后退并右转;否则,小车直行。

cpp

#include <NewPing.h>  
#define TRIG_PIN 12  
#define ECHO_PIN 11  
#define MAX_DISTANCE 200  
NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE);  void setup() {  pinMode(5, OUTPUT); // 电机A速度控制  pinMode(6, OUTPUT); // 电机B速度控制  pinMode(7, OUTPUT); // 电机方向控制  pinMode(8, OUTPUT); // 电机方向控制  
}  void loop() {  int distance = sonar.ping_cm();  if (distance < 20) {  // 遇到障碍物后退并转向  analogWrite(5, 200); 

相关文章:

  • LangChain的向量RAG与MCP在意图识别的主要区别
  • 离轴干涉系统 | 赋能超表面性能精准检测
  • Java批量数据处理唯一ID生成优化
  • WPF之TextBox控件详解
  • LeRobot 项目部署运行逻辑(三)——机器人及舵机配置
  • 黑苹果显卡免驱教程:蓝宝石RX580刷成RX570详细步骤(附工具与注意事项)
  • 分布式计算框架(Dask)与单机库(Pandas)数据处理方法对比分析
  • 小知识总结记录
  • 数据库的死锁相关(一)
  • 软考:硬件中的CPU架构、存储系统(Cache、虚拟内存)、I/O设备与接口
  • 泛微OA.E9--07--IDEA搭建后端二开环境
  • Docker进入MySQL之后如何用sql文件初始化数据
  • 关于杰理ac791切换版本, git clone下来仍然是最新版本问题
  • 使用Docker部署魔豆文库:本地化搭建私有文档管理系统
  • Godot笔记:入门索引
  • 第一章 OpenCV篇-配置及基础知识-Python
  • Ethan独立开发产品日报 | 2025-04-29
  • 研发效率破局之道阅读总结(4)个人效率
  • MIPS架构详解:定义、应用与其他架构对比
  • SpringBoot 设置HTTP代理访问
  • 湖南新宁一矿厂排水管破裂,尾砂及积水泄漏至河流,当地回应
  • 体坛联播|欧冠巴萨3比3战平国米,柯洁未进入国家集训队
  • 五部门:开展新就业形态劳动者劳动权益保障水平提升专项行动
  • 美参议院通过新任美国驻华大使任命,外交部回应
  • 中国人保不再设监事会,国寿集团未再设置监事长职务
  • IMF前副总裁朱民捐赠1000万元,在复旦设立青云学子基金