发布时间: 2026-10-02
这篇文章主要讲的是怎么去用 这个板子去驱动那些常见的舵机, 比如说 SG90 , 还有 这种型号都包括在内了, 里面涵盖的内容可多了, 不管是硬件具体要怎么样接线, 还是驱动代码该怎么写, 再或者典型故障要怎么排查, 这些通通都有涉及到的, 它特别适合电子类的初学者以及那种想要搞创客项目开发的程序员可以直接拿来上手去用的。
接线方法(核心三步)
要把舵机的三根线, 一根一根地, 对应连接到控制板上。
把信号线, 也就是那根橙色的线或者黄色的线, 连接到数字引脚上, 这个数字PWM引脚呢, 通常是用的3、5、6、9、10、11这几个。
将电源正极, 也就是那根红色的线, 连接到外部提供五伏电压的电源的正极上面。
把电源的负极, 也就是那个棕色的线或者是蓝色的线连到外部5V电源的负极上面去, 并且还要跟里面的GND这个引脚进行共地的处理。
这里有一个关键提醒, 请你千万不要把舵机的电源直接接到 的5V引脚上, 当多路舵机一起运行的时候, 峰值电流能够达到2安培以上, 这样会很快就把板载稳压器烧坏, 虽然单路静态舵机可以临时使用5V引脚, 但是在动态或者多路场景下外接电源。
驱动代码
![]()
使用内置的Servo库, 最简略的代码结构如下所示:
#
Servo ;
void setup() {
.(9); // 绑定9号引脚
}
void loop() {
for (int a = 0; a <= 180; a += 5) {
.write(a);
delay(30);
}
for (int a = 180; a >= 0; a = 5) {
.write(a);
delay(30);
}
}
write()方法的参数是角度, 其数值范围在0°到180°之间。()方法能够精确控制脉冲的宽度, 其中600μs对应0°, 而2400μs对应180°。只需修改()函数里面的引脚号就可以切换控制通道。
常见故障与排查(真实案例)
1. 舵机这个部件它是不进行旋转的动作, 并且会发出咔咔的这种异常的声音。
这是一个典型的场景, 某位学员直接使用USB接口来为3个SG90舵机进行供电,设备在上电之后出现了卡顿的现象。产生这一现象的原因是5伏特、五百毫安的供电能力不足伟创动力, 无法满足实际需求。
解决问题的办法是换用7.4伏特的锂电池, 并且搭配一个5V稳压模块, 采用单独给舵机电源进行供电的方式, 在实现共地连接之后, 系统运行就恢复了正常状态。
2. 转动角度偏斜、定位不准
![]()
出现这个问题的原因, 可能是信号线被接错了引脚, 也可能是PWM频率受到了其他程序的干扰。解决办法, 要确认引脚之间的对应关系是否正确, 然后删除掉程序里多余的延迟调用或者定时任务代码, 重新向设备上传更新后的代码。
3. 舵机抖动,到位后微颤。
出现这个问题的原因是五伏的电压纹波太大了, 或者是接地线的阻抗偏高。解决办法是在舵机电源的两端并联一个四分之七百微法、十伏的电解电容, 缩短接地走线的长度, 确保公共地只接一点。
行动建议
在开始动手操作之前,一定要先用万用表去测量一下实际的供电电压是多少伟创动力舵机, 确认这个数值是不低于四点八伏的;如果是涉及多个舵机的项目的话, 要设计出一个独立的供电回路来;对于信号线来说, 需要避免让它和电机的动力线并排一起走线, 以此减少干扰。
在这里我要把那个核心的原则再次拿出来强调一下, 就是说要把信号线接到数字PWM引脚上面去, 然后要让外部电源给它独立供电, 并且一定要做到严格意义上的共地, 只要能把这三点给做到了, 那么舵机的驱动就可以在一个稳定的状态下面运行, 如果之后遇到了什么异常的情况发生的话, 应该先把重点放在排查供电这个环节上面, 而不是在那一个劲地反复去修改代码程序。



