首页 > 行业资讯 >减速电机
TECHNICAL SUPPORT

超声波控制舵机保持角度调整方法 视频讲解

发布时间: 2026-05-06

众多爱好者于制作智能小车或者机械臂期间伟创动力舵机,会碰到一个问题,那就是启用超声波传感器去触发舵机转动至某个角度之后,舵机没法稳定维持,会产生抖动的状况又或者自行回位而去位置。举例来讲伟创动力,当超声波检测到障碍物距离小于30厘米的时候,你期望舵机带动云台转动到90度并且维持住,然而实际上舵机仅仅是瞬间动一下接着又弹回到原来的位置。这一般是由于控制程序没有持续输出保持角度这样的信号,又或者是舵机角度映射计算出现了错误。跟着下面这个视频教学,它会讲解完整步骤,教你怎样正确去调整,从而让舵机稳稳地停在你想要的那个任意角度上。

01核心:持续输出目标角度的PWM信号

由控制信号线所接收的PWM(脉冲宽度调制)信号,决定了舵机的角度。标准舵机每20毫秒会接收一个脉冲,脉冲宽度处于0.5毫秒到2.5毫秒之间时,对应着0度到180度 (不同舵机范围略有差异)。要使舵机维持在一个角度,就不间断地去发送该角度所对应的脉冲宽度信号,而不能仅仅发送一次。调整目标角度,就是对脉冲宽度数值作出改变。

02分步调整教程(对应视频演示)

第一步:硬件连接与确认

把超声波传感器的Trig引脚,连接到开发板的数字引脚,比如D9,再把超声波传感器的Echo引脚,连接到开发板的数字引脚,例如D10。

把舵机的信号线,也就是通常呈现橙色或者黄色的线,连接到那个PWM输出引脚,像D5这个引脚,然后电源线和地线分别连接到5V以及GND。

留意,舵机瞬间电流较大,倘若直接经由开发板供电,那么有可能致使复位,故而建议运用外部5V电源并且进行共地处理。

第二步:获取超声波测距值

超声波控制舵机 保持角度怎么调整视频教学讲解_声波设定_声波角频率

当处于编程主循环之际,不间断地读取有关超声波返回的、以厘米作为单位的距离呢。示例伪代码如下:

 = e(, );

第三步:编写舵机保持角度的核心代码

关键要点在于,当两者间的距离小于预先设定好的阈值之际,要使得舵机转动到指定确切角度且保持该信号状态;不然的话,就要转动到另外一个角度。错误的行为方式是仅仅在检测到有变化之时进行一次写入操作,而正确的行为方式是在每一次循环的过程当中都执行写入动作。

# 
Servo ;
void loop() {
  float  = ();
  if ( < 30) {
    .write(90);  // 转到90度并持续保持
  } else {
    .write(0);   // 转到0度
  }
  delay(15);  // 等待舵机到达位置,但信号持续输出
}

第四步:调整目标角度

要是想变动保持着的角度值,只要去更改.write(角度)里头的数字就行。角度的范围一般是0到180。要是你的舵机是0到270°或者0到360°,那就得查阅舵机数据手册,去算出对应的PWM脉冲宽度(比如说,0°对应0.5ms,270°对应2.5ms,采用线性插值)。

第五步:解决常见问题(视频中重点讲解)

现象 原因 解决方法
舵机剧烈抖动 供电不足或信号线接触不良 使用外置稳压电源(5V/2A以上),检查杜邦线
转到目标角度后慢慢回位 代码中只写入了一次,没有持续写入 确保.write()在每次循环中都执行
超声波触发后舵机反应慢 循环中加入了过长的延时 减少delay(),改用非阻塞定时读取
舵机总是转到最大角度 角度值超出范围或信号引脚不正确 检查.()的引脚,确认角度值≤180

超声波控制舵机 保持角度怎么调整视频教学讲解_声波设定_声波角频率

03视频教学中会演示的完整示例(基于)

# 
Servo servo;
const int  = 9;
const int  = 10;
float ;
void setup() {
  servo.(5);
  (, );
  (, INPUT);
  .begin(9600);
}
void loop() {
  // 获取距离
  (, LOW);
  (2);
  (, HIGH);
  (10);
  (, LOW);
  long  = (, HIGH);
   =  * 0.034 / 2; // 单位厘米
  // 根据距离控制舵机角度并持续保持
  if ( > 0 &&  < 30) {
    servo.write(90);  // 障碍物靠近,转到90度并保持
    .("Hold at 90°");
  } else {
    servo.write(0);   // 无障碍物,转回0度并保持
  }
  delay(20); // 20ms符合舵机信号周期,同时保证读取稳定
}

04核心观点重申

唯一让舵机于超声波触发之后维持固定角度的办法,是去编写持续输出那个对应指定角度PWM信号的控制程序,并非单次触发。只要调整角度,仅需修改写入的目标值就行。任何出现“只能动一下却没法保持”的状况,要优先检查循环里是不是每次都在执行servo.write()。

05行动建议

1. 按照上述所提及的步骤,去连接硬件,进而上传代码,要单独测试舵机,看看它能不能稳定地停在0°,再看看能不能稳定地停在90°,还有能否稳定地停在180°(通过使用servo.write()在setup中进行循环写入,然后加以观察)

2. 增添超声波传感器之后,借由串口监视器,实时去查看距离值,来认定阈值判断是正确的。

3. 若是舵机仍旧存在抖动的情况,那就去更换质量优良的舵机,并且要保证电源输出电流大于或等于2A。

4. 根据视频里头的实际接线状况以及调试展示情形,一行一行地去对比你的代码,这样就能一次性达成成功。

为所有产品提供动力单元

联系伟创动力产品专家,为你的产品推荐合适的驱动系统所需部件。

发送邮件
在线留言
WhatsApp
+86 0769 8399 3238
 
kpowerMap