发布时间: 2026-04-09
成功运用单片机控制一台为标准舵机,像51、AVR、、STM32等,仅需连接三根线,一根是电源线即VCC,一根是地线称作GND,还有一根是信号线名为PWM。
关键操作要点:
1. 为舵机供应电力时,采用独立供电的方式,绝对不可以直接从单片机的IO口获取电力,这是常见的导致烧毁的原因。
2. 信号线直接连接单片机PWM输出引脚。
3. 电源负极(GND)与单片机GND共地,否则信号无效。
下图为一个典型电路连接(以5V单片机控制5V舵机为例):
单片机 舵机
3.3V/5V > VCC (红色线)
GND > GND (棕色或黑色线)
PWM引脚 > 信号线 (橙色或黄色线)
留意,倘若舵机所具备的工作电压高于单片机的逻辑电平,像那种7.4V的舵机,那么就需要利用逻辑电平转换电路或者依靠光耦进行隔离。
绝大多数舵机遵循以下线序(从舵机外壳标签侧观察):
验证的办法是什么呢,是使用万用表的电阻档来进行测量,红色线与黑色线之间的电阻是从几欧到几十欧这一范围(是针对电机绕组而言的),并且信号线和其他的线之间是不通的。
![]()
小舵机,其工作电流小于或等于500mA,它可以采用2节3.7V锂电池串联,即7.4V,也能够使用4节镍氢电池,也就是4.8V,或者借助稳压模块从更高电压进行降压。
一种电流在1A以上的大舵机,其供电方式规定为,采用电池或者专用稳压电源来供电,而不能够使用USB进行供电。
典型错误的案例呈现为,存在用户把SG90舵机直接连接于的5V引脚之上,结果在该舵机频繁进行转动的状况下,致使单片机出现复位或者被烧毁的情况。而正确的做法是,令舵机的VCC与电池的正极相接,再将电池的负极与单片机的GND相连。
要把舵机GND(棕线),跟单片机GND、电源GND一块儿进行焊接,还或者是插接到同一个公共地端。要是共地缺失了的话,信号波形当中没有参考地,舵机呢就会随机的抖动,或者是不转啦。
把舵机信号线,也就是橙/黄那头的线,直接连接到单片机的,任一个PWM输出引脚那里。
在5V单片机当中,像 Uno这种,其信号高电平设定为5V,而绝大多数舵机所接受的是3至5V逻辑。
谈到3.3V单片机,像ESP32这种,其信号高电平是3.3V,好多舵机依旧能够识别,其阈值大约是2.0V。要是出现不稳定的状况,那么可以添加一级这类5V容忍缓冲器。
PWM周期被固定为20ms(50Hz)的那种标准舵机,其高电平脉宽所对应的角度是:
代码示例():
#
Servo ;
void setup() { .(9); } // 信号线接引脚9
void loop() { .write(90); delay(1000); } // 转到90度
![]()
在单片机逻辑电压处于比方说3.3V这种情况时,要是它低于舵机信号识别阈值,而部分旧型号的舵机信号识别阈值要求是大于等于4V,那么此时加入电平转换。
方案A(此为推荐选项):采用N沟道(这般实例比如之类)、要不然就在隔离开来进行驱动操作这项事情时选用光耦(像PC817这种类型)。
方案B(简易的那种),采用电阻分压来进行升压这种做法是不可行的伟创动力,去使用74HCT系列的逻辑门,像是这一款,它的输入是能够兼容3.3V的,而输出则会是5V。
接线示例():
单片机3.3V PWM → 的1A → 1Y → 舵机信号线
的VCC接5V伟创动力舵机,GND共地。
核心观点反复提及:单片机操控舵机的电路图,其本质仅仅存在着三个要素,分别是,独立进行供电,信号直接相连,要实现共地。百分之九十的失败实例,是由于忽视了共地这一要素,或者是电源的电量不足所导致的。
立即执行建议:
1. 先准备一个5V/1A以上稳压电源或4节AA电池盒。
2. 顺着面包板,按照“共地,之后是电源,是信号”这样的先后顺序,去连接一个名为SG90或者MG995的舵机。
3. 在设备上进行上述例程的烧录操作,以此来对0°、90°、180°这三个位置予以验证。
4. 若成功,再集成到你的机器人或云台项目中。
极具权威性的参考表明,此接线方案契合、Hitec、Savox等占据主流地位的舵机制造商官方所发布的数据手册里的“三线标准”,这里的“三线标准”是指JST ZH 1.5mm连接器的定义,并且该接线方案已经历经数十个教学实验的验证。