舵机(SG90)原理
时间: 2024-12-27 19:13:22 浏览: 34
### SG90伺服电机工作原理
SG90舵机是一种常见的小型舵机,广泛应用于各种DIY项目和教育用途。其核心组件包括微型直流电机、齿轮箱、电位计以及控制电路板。
#### 工作机制
当向SG90舵机发送PWM脉冲宽度调制信号时,这些信号会被传输给内置的控制电路板[^4]。 控制电路解析输入信号并据此驱动内部的小型直流电机正转或反转。 随着电机运转,通过一组精密设计的齿轮系统实现减速增扭效果,最终使输出轴按照指令精准定位在一个特定的角度范围内(一般为0°~180°)。 同时,在整个过程中,安装于输出轴上的电位计持续监测当前位置,并将此信息反馈回控制单元形成闭环调节体系,确保实际角度始终与设定值保持一致[^2]。
#### PWM信号特性
对于SG90而言,典型的PWM周期大约为20毫秒(ms),而有效占空比决定了具体的转向角:
- 当施加1.5ms宽的高电平时对应中间位置;
- 小于1.5ms则往左偏移直至最小限位;
- 大于1.5ms会朝右移动直到最大界限。
这种基于时间间隔变化来指示方向及幅度的方法简单可靠,易于编程实现自动化操作。
```cpp
#include <Servo.h>
Servo myservo; // 创建servo对象以控制一个舵机
int pos = 0; // 变量保存舵机的位置
void setup() {
myservo.attach(9); // 舵机连接到数字引脚9
}
void loop() {
for (pos = 0; pos <= 180; pos += 1) { // 从0度到180度
myservo.write(pos); // 告诉舵机去指定位置
delay(15); // 等待一段时间让舵机到达新位置
}
for (pos = 180; pos >= 0; pos -= 1) { // 返回原点
myservo.write(pos);
delay(15);
}
}
```
这段代码展示了如何利用Arduino开发板配合软件库函数`write()`来改变SG90舵机的角度,从而完成一次完整的来回扫动动作[^3]。
阅读全文