SG90舵机的原理和控制方式

前言

做过机器人、智能车或者玩航模的朋友应该对舵机不会陌生,这种舵机也是很常用的。

舵机只是我们通俗的叫法,它的本质是一个伺服电机,也可以叫做位置(角度)伺服驱动器。一般被应用在那些需要控制角度变化的系统中,可以方便的实现转动任意的角度,实现控制角度的变化。

sg90舵机的图示:

1、sg90舵机的应用场景

(1)航模

在很多的航模中,sg90舵机都被用于两翼的位置控制,从而实现航模的转向,倾斜之类的。因为航模本身的要求,需要尽量的控制航模的自重,而sg90舵机的重量本身就很轻,扭矩也大,所以能很好的满足要求。如下:

(2)智能小车的转向桥

因为sg90舵机的精准角度控制,所以在很多的智能小车类中被用作转向控制。如下的一个简易转向桥:

(3)云台控制

将sg90用于云台控制也是很常见,如下:

2、sg90舵机的参数

(1)sg90舵机的一些重要特性参数:

1)工作扭矩:16KG/CM

2)反应速度:0.12 – 0.13秒/60°

3)温度范围:-30° ~ +60°

4)死区设定:5微妙

5)转动角度:常见0°、90°、180°、360°

6)电压范围:3V – 5V

(2)sg90舵机的接线定义

sg90舵机的接线定义如下:

3、sg90舵机的工作原理

sg90舵机模块内是有控制电路的,控制信号通过信号线输入到内部的控制电路中,调制芯片将输入的信号进行调制,获得直流偏置电压。然后再由内部的基准电路产生周期为20ms,宽度为1.5ms的基准信号,将直流偏置电压和电位器电压进行比较,从而获得输出的电压差。由电压差控制舵机的转动,这个电压差的正负控制舵机正反转。大致原理就是这样!

4、sg90舵机的控制原理

至于如何驱动sg90电机也是比较简单的。

驱动原理:产生一个周期为20ms,高电平宽度为0.5ms-2.5ms的方波就能驱动sg90舵机。

换一种说法就是需要一个50Hz的pwm波,然后通过改变占空比来控制sg90舵机的转动角度。

下面以180°舵机为例说明,高电平宽度和sg90舵机的转动角度的关系表如下:

占空比如下:

方波示意如下:

或者看下面的演示图就更加形象:

(素材源自网络,侵删!)

按照理解的话,可以根据角度和高电平的时间推断一个公式:

PWM的高电平时间 = 0.5ms +(转动角度/180°)*2ms
注意:这是根据高电平宽度和角度推算的,不一定准确,使用中还是需要根据实际情况进行参数调整

5、180° 和 360° 的舵机

据我所知道的,sg90舵机是分为两种的,一种是转角范围180°的舵机,另外一种是360°转角的舵机。这两种是存在一定的差别的。

(1)180°舵机

180°舵机是给一个PWM信号就转动到一定的角度,然后保持在这个转动之后的位置,直到有下一个不同的PWM信号,才会转到其他的角度。

转动的角度和PWM高电平的时间关系如下:

0.5ms  ---- 0度;1ms    ---- 45度;1.5ms  ---- 90度;2ms    ---- 135度;2.5ms  ---- 180度;

(2)360°舵机

360°舵机是给一个PWM信号,就会按照一定的速度转动,这是和180°舵机不同的地方。但是按照我自己的测试中发现,其实360°舵机按照180°舵机的控制方式,每次只发一个周期的PWM的话,也是可以控制360°舵机按照一定的角度转动的。

转动的速度和PWM高电平的时间关系如下:​​​​​​​

0.5ms --- 正向最大转速;1.5ms --- 速度为0;2.5ms --- 反向最大转速;注意:其他的转速也是可以调的!

6、控制舵机的PWM的产生方式

(1)用中断的方式

中断的方式的话,大致的步骤如下:(以转动45°为例)

1)使用一个定时器,并开启中断;

2)第一次:先设置定时器的中断时间为1ms,这段时间IO输出高电平;

3)第二次:1ms时间到了,在中断里面让IO输出低电平,并同时设置下一次中断时间为19ms。就可以产生一个周期20ms,高电平时间为1ms的PWM方波控制信号。

4)一直循环上面的 2)3)的操作

(2)用MCU的PWM输出功能

这个方法比用中断的方式就容易多了,毕竟中断过于频繁的话,对于控制程序也不好,特别是有操作系统的时候,可能会影响系统的实时性能。

MCU自动生成PWM的方式就很好了,这个过程不需要MCU的参与,极大的释放了MCU的压力。有很多的MCU本身甚至可以产生很多路的PWM输出,可以用于控制很多路的舵机。

 

物联沃分享整理
物联沃-IOTWORD物联网 » SG90舵机的原理和控制方式

发表评论