发布时间: 2026-04-02
进行机器人或者智能小车搭建之际,时常会有让超声波传感器转动起来用于扫描不同方向当中障碍物的需求。而达成此间需求的话,就得把舵机以及超声波传感器妥善连接在同一控制器之上(就像是单片机、开发板这样的)。其中的核心原理是:供电呈现共地状态、信号线相互独立、凭借控制器对时序予以调试。舵机会接收PWM(脉冲宽度调制)信号进而控制转动角度,超声波模块借助Trig/Echo引脚来完成测距举措,但是二者之间并不存在直接的电气连接情况,全然依靠控制器的程序逻辑来实现联动。此篇文章,针对实际接线步骤之举,信号控制逻辑之法伟创动力,以及常见故障排除之措,给出了完整的操作指南。
舵机需要工作电源,超声波模块也需要工作电源,通常这工作电源是5V直流,然而舵机启动瞬间电流比较大,能达到1 2A,超声波模块工作电流仅仅15mA左右。错误的做法是,把两者直接并联到控制器自带的5V输出口,这会致使控制器复位或者损坏。正确做法是。
舵机电源,要运用独立的,外接5V电源,像4节AA电池或者稳压模块这类,此电源的正极要连接舵机的红线,负极呢,要同时连接舵机的棕或者黑线以及控制器的GND。
超声波电源,要从控制器的5V引脚获取电力才行,它的GND同样跟控制器GND以及舵机电源GND连接,连接在一起也就是共地,这样做。
控制器的GND要连通,外接电源GND也要连通,超声波GND同样需要连通,舵机GND也连通,不然信号不能正确传输。
接线表(以常见5V舵机和超声波模块为例):
舵机的转角呢,是由信号线上的高电平脉冲宽度去决定的。标准周期是20ms,即50Hz,脉冲宽度在0.5ms到2.5ms的时候,对应着0°到180° ,或者90°到 90° ,这取决于舵机的型号。控制器会产生精确的PWM波形,比如说:
0°:高电平0.5ms,低电平19.5ms
90°:高电平1.5ms,低电平18.5ms
180°:高电平2.5ms,低电平17.5ms
存在着这样一个常见的误区,即不能够直接借助数字IO输出的高低电平去驱动舵机,而要运用PWM或者通过定时器来模拟出PWM才行。
以最常见的触发回响式超声波模块为例:
开启条件:当由控制器朝着Trig引脚输送一个持续时间不少于10μs的处于高电平状态的脉冲信号时,模块内部便会发射出8个具备40kHz频率的超声波。
回响:模块接收到回波之后,Echo引脚会输出高电平,此高电平持续的时间跟距离成正比例关系(在空气中声速是340m/s,时间除以58约等于厘米)。
控制器任务:测量Echo引脚高电平的持续时间,计算距离。
![]()
并没有直接的电气连接处于舵机和超声波之间,所有的联动是依靠程序控制的呀。以下是一个典型的扫描测距循环呢:
1. 控制器通过PWM让舵机转到角度A(例如0°)。
2. 等待舵机稳定(至少100~200ms)。
3. 控制器触发超声波模块测距,读取距离值并存储。
4. 控制器让舵机转到角度B(例如30°),重复步骤23。
5. 依次扫描完所有预设角度,得到一组角度距离数据。
案例场景呈现为,有一位爱好者,当他制作自动避障小车之际,把超声波传感器径直固定在了舵机转盘之上。在接通电源这个动作完成之后,舵机出现了抖动的状况,以至于无法正常进行定位,并且超声波的读数呈现出频繁跳变的态势。
故障分析:
舵机出现抖动情况,原因是电源不足,此用户把舵机与控制器共同使用USB供电,供电规格为5V/500mA,在舵机启动的时候拉低了电压,进而致使控制器重启。
超声波读数出现跳变现象,其原因在于,舵机转动之际会产生电磁噪声,并且没有采用共地措施。用户把舵机电源负极连接到外接电池负极,然而却未与控制器的GND相连,最终致使Echo信号电压参考点出现不一致的情况。
:
用到2节18650锂电池,其电压为7.4V,经由稳压模块把电压降低,降至5V/3A,从而单独给舵机供应电力。
把舵机电源的负极那一端,与控制器的GND,以及超声波的GND,通过导线去进行焊接,使其处于同一个接地点。
将一个100μF至470μF的电解电容,并联于舵机电源的正极与负极之间,来用于吸收启动尖峰。
存在这样一种情况,于超声波 Echo 引脚跟控制器之间串连一个 1kΩ的电阻,其中,当控制器属于 3.3V 系统的时候,能够防止 5V 回波对引脚造成损坏。
Q1:控制器是3.3V(如ESP32),而超声波模块和舵机都要求5V信号,如何连接?
舵机发出的信号是这样的情况,大部分5V的舵机,在处在3.3V PWM的状态之下的时候,依旧是能够进行工作的,不过呢,其力矩会出现降低的状况。要是需要达到稳定的状态,那就得使用逻辑电平转换模块,就像这种类型的,把3.3V提升到5V。
超声波Echo,其输出为5V高电平,若直接将此接入3.3V的GPIO,那么将会导致芯片被烧毁。所以采用电阻分压的方式,也就是让Echo串联一个2.2kΩ的电阻后连接到GPIO,同时GPIO还要对地连接一个3.3kΩ的电阻,不然就只能进行电平转换了。
![]()
Q2:舵机转动时超声波读数完全不变,或始终为0?
检查超声波模块的Trig/Echo引脚是否接反。
着手确认一下,当舵机处于转动的状态时段,电源的电压有否出现跌落的情况,具体测量方式为,借助万用表来测超声波VCC针对GND的电压,这个所测电压是大于或者等于4.8V。
程序里,是不是在舵机转动的时段,去试着触发超声波呢?一定要添加延时,以此等待舵机变得稳定。
Q3:如何同时控制多个舵机和多个超声波?
每个舵机需要一个独立的PWM引脚(或使用舵机驱动板)。
每个被称为超声波模块的部件,都需要具备独立的Trig以及Echo引脚,Trig这个引脚呢,能够以并联的形式进行共用,然而,Echo引脚绝对分开,不然的话,就没办法清晰地区分回波了哦。
关于电源,其设计要严格依据总电流来进行:对于每一台舵机而言,是按照1A峰值来计算的,而针对每台超声波,是按照20mA来计算的,之后要据此去选择对应电流的稳压模块。
核心观点重申:
舵机和超声波之间不存在直接的数据或者控制线路,它们二者借助控制器的程序逻辑来协同开展工作。
成功连接的三个必要条件:共地、独立供电、信号电平匹配。
90%的异常问题源于电源不足或GND未共接,而非程序错误。
行动建议(请按顺序执行):
1. 先是进行分别测试伟创动力舵机,针对舵机单独实施测试,借助示例代码使得舵机在0°至180°之间循环转动,针对超声波模块单独开展测试,持续不断地打印距离值。
2. 查看电压,运用万用表去确定舵机供电电压大于或等于4.8V,并且在其转动的时候压降不超过0.5V。
3. 共地进行验证,在处于断电状态的情况下,运用电阻档去测量舵机的GND,以及控制器的GND,还有超声波的GND之间的电阻,这个电阻是0Ω。
4. 编写这样一个联动程序,是先要去实现其中的那个“固定角度测距”,也就是要将舵机转到90°,之后呢要进行10次测距,呢再往里面加入角度循环。
5. 运用协助工具,也就是逻辑分析仪或者示波器,去查看PWM周期是不是20ms,还有Echo高电平是不是会随着距离而产生变化。
按照上述所讲的原理以及步骤,任何依靠舵机加上超声波的扫描测距系统都能够稳定地实现运行。请一定先要确保硬件连接是正确无误的,之后再去对软件逻辑进行调试。