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

超声波控制舵机 保持角度不动 怎么实现

发布时间: 2026-05-28

超声波控制舵机保持角度:实现方法与常见问题

于诸多智能硬件范畴的项目里头, 得借助超声波传感器来测定距离, 且依据距离数值操控舵机转动至特定角度, 还要使得该角度维持静止状态。比如说, 在自动感应垃圾桶的项目之中, 当手靠近之时, 舵机促使桶盖开启至90°并予以保持;手离开之后, 舵机闭合返回到0°。在智能避障小车里面, 超声波探测到前方存在障碍物, 舵机带动云台旋转到特定角度(像45°)并保持住, 进行扫描测距。这种需求的关键之处在于, 怎样使得舵机在获取到一回触发指令之后, 平稳地停留在对象角度处, 不见抖动、不见偏移, 一直到下一回指令出现。

核心原理:PWM信号与角度锁定的关系

舵机, 也就是标准伺服舵机, 它的旋转角度是由控制信号的脉冲宽度, 也就是PWM脉宽来决定的。标准舵机一般情况下接收频率为50Hz周期是20ms的PWM信号, 脉宽与角度的对应关系如下:

0.5毫秒的脉宽, 由此指向0度, 至于或者是负90度, 这要依据舵机的具体型号来决定。

1.0ms 脉宽 → 45°

1.5ms 脉宽 → 90°(中位)

2.0ms 脉宽 → 135°

2.5ms 脉宽 → 180°(或90°,视型号而定)

关键结论是, 要让舵机保持角度处于静止状态, 仅仅持续把对应目标角度的PWM信号发送给舵机就行。舵机内部的控制电路会持续去比对输入脉宽跟当前反馈位置, 会不断地调整其电机, 能使输出轴锁定在目标角度范围。一旦停止发送PWM信号, 多数舵机内部电路会失去控制基准状况, 进而导致舵机出现松动、抖动或者是自动回中位的情况。

伟创动力舵机,实现“超声波触发→舵机转到角度并保持”的完整流程如下:

声音传感器控制舵机_声波角度保持控制舵机的方法_超声波控制舵机 保持角度

1. 超声波测距, 是借助超声波模块(像HCSR04那样)来发射超声脉冲, 进而测量回波时间, 最终计算出距离值。

2. 条件判定: 于/单片机程序里, 把测量所得的距离数值跟预先设定的阈值(像20cm)予以对比。要是距离比阈值小, 就促使舵机产生动作指令。

3. 发出PWM信号, 去执行舵机库函数, 像Servo.write(90)这样的函数, 它会不停输出对应90°的PWM信号。只要在程序循环里持续调用这个函数, 或者在延时阶段由库函数在后台维持信号, 舵机就会被锁定在90°。

4. 保持在所锁定的状态范围: 当条件持续得以满足之时(手一直放置于感应区域之内), 舵机始终持续维持在目标角度的情形。到了条件不再被满足之际(手移开的情况呈现之后)程序能够去发送蕴含另一个角度数值情况(诸如呈现0°这样的角度数值)的PWM信号, 舵机于是转回并维持在相应角度情况。

常见失败原因与(基于实际项目经验)

问题一:舵机抖动或无法保持角度

缘由: 最为常见的缘由乃是电源供电欠缺。舵机开启以及维系扭矩之际电流较大, 特别是在背负负载之时。要是运用的5V引脚径直供电, 因为板载稳压器输出电流存有局限, 会致使电压下降, 进而使得舵机控制电路运行失常。

将舵机电源地跟单片机电源地进行共地, 是, 一定要为舵机采用独立的5V电源, 是具体如超出或者能够达到2A 的适配器, 又或者是4节AA电池组, 并且千万别从单片机板载的5V去获取并以此作驱动舵机的电。

问题二:超声波测距干扰导致舵机误动作

超声波模块对声音敏感, 这是一个存在的情况, 由于此种情况, 当多台同样频率的设备同时进行工作的时候, 或者在房间内部存在回声干扰的状况之下, 就有可能致使测距的值出现跳变这种情况, 而这种测距值跳变的情况, 又会引发舵机频繁地在0°以及90°之间进行切换。

方案解决办法: 于代码里添加滤波处置, 举例而言, 连续去读取三次距离数值, 选取中位数或者平均值, 要么呢, 设定动态阈值, 只是在连续两次测距数值都小于此阈值的时候才启动举动。

问题三:舵机到位后轻微“嘎嘎”响或发热

超声波控制舵机 保持角度_声音传感器控制舵机_声波角度保持控制舵机的方法

情况是这样的, 这是舵机于锁死状态时, 持续输出扭矩以补偿负载力进而产生的那种“抖动”。一般来讲, 是舵机臂上面的负载过于沉重, 或者是舵机型号所具备的扭矩不够才导致这种状况的。

解决办法为: 查看机械结构有没有卡滞。对于那种需要长时间维持角度的应用, 像云台锁定, 要挑选扭矩余量足够多(负载扭矩的1.5倍以上)的金属齿轮舵机, 或者带有自锁功能的蜗轮蜗杆舵机。

问题四:系统复位后舵机突然转动

缘故是, 单片机于上电初始化的那一瞬间, GPIO引脚有可能输出不确定的电平, 致使舵机接收到异常的PWM信号

解决办法是: 于程序开始初始化的阶段之时, 把舵机控制引脚设置成输入模式, 也就是高阻态, 接着等待电源稳定下来, 像delay(500ms)这种情况, 随后再把该引脚转变为输出模式, 并且马上发送目标角度PWM信号。或者采用带有使能控制的舵机驱动模块。

最优操作路径

1. 硬件连接方面, 超声波模块的VCC要接到5V, TRIG以及ECHO需连接到数字引脚上, 舵机红色的那根线即电源正要连接到独立5V电源的正极, 舵机棕色的此线即电源负要连接到独立5V电源的负极, 并且还要和单片机的GND共同接地, 舵机橙色的信号线要连接到PWM兼容的数字引脚比如的9号引脚。

2. 核心代码逻辑

# 
    Servo ;
    const int  = 2;
    const int  = 3;
    const int  = 20; // 触发距离阈值,单位cm
    void setup() {
      (, );
      (, INPUT);
      .(9); // 舵机信号线接9号引脚
      .write(0);  // 初始位置0°
      delay(500);
    }
    void loop() {
      // 超声波测距
      (, LOW);
      (2);
      (, HIGH);
      (10);
      (, LOW);
      long  = (, HIGH);
      int  =  * 0.034 / 2;
      // 判断并控制舵机
      if ( > 0 &&  < ) {
        .write(90); // 触发条件满足,舵机转到90°并保持
      } else {
        .write(0);  // 条件不满足伟创动力,舵机回到0°并保持
      }
      delay(100); // 避免测速过于频繁导致舵机频繁动作
    }

3. 电源进行验证: 运用万用表去测量舵机供电那一部位的电压, 当舵机处于锁死动作这个状态的时候, 电压是不低于4.8V的。要是电压比4.8V还低, 那么就需要增大电源电流或者缩短电源线的长度。

下述为关键结论: 借助超声波对舵机角度实施控制并使其维持特定角度, 究其实质不外乎“于条件达成之际持续地发送目标角度所对应的PWM信号”。只要在供电方面确保稳定, 在测距数据方面保证纯净, 且在初始化顺序方面保证正确无误, 便能够达成舵机的稳定锁定。针对需要长时间保持舵机角度的情形而言, 建议选用那种具备充裕扭矩的金属齿轮舵机, 并且添加了电源滤波电容(电容值在470μF以上)用以抑制电流尖峰。按照上述所提及的方案来进行操作, 你便能够迅速构建并达成一个可靠且不会产生抖动现象的超声波感应对舵机锁定系统。

为所有产品提供动力单元

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

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