伺服舵机驱动基础知识

电子说

1.2w人已加入

描述

1)舵机的用途

伺服舵机一般也简称为舵机,是一种可以精确控制位置的电机系统,它可以通过控制指令输出指定的旋转角度。

与普通直流电机的区别主要在:直流电机是一圈圈转动的,舵机只能在一定角度内转动,到达指定的位置后就停止;舵机一般有最大旋转角度,不能360°旋转。普通直流电机一般是整圈转动适合做动力用,舵机是控制某物体转动一定角度用,适合用于控制转向、姿态、或者用作运动关节。

2)舵机的参数

扭力,由于舵机的动力来自于电机和减速齿轮组,它的输出扭力比较大,常见的玩具级别的9g舵机也能提供1.5kg/cm~1.8kg/cm的扭力,见下图:

电机系统

舵机的另一个重要的参数是速度,就是上图中的Operating Speed参数,主要表征了舵机最快能转动的角速率,如上图中,在6V电压无负载的情况下,这款舵机0.1s时间能转过60°角。

3)舵机的工作原理

舵机的内部是由直流电机、减速齿轮组、传感器和控制电路组成,是一个闭环的控制系统,它的原理框图如下:

电机系统

舵机的轴上连接有一个电位器作为位置检测传感器,舵轴转动时,电位器输出的电压会变化(也就是可以通过电压得知舵轴的角度)。外部输入控制信号时,控制电路会比较控制信号与舵轴位置是否有偏差,如果不同,则会控制马达驱动舵轴转到预定的位置,直到控制信号与舵轴位置相同。这个控制系统一般也是由PID实现的。

我们在使用舵机时,可以不用考虑它内部是如何工作的,只需要按规则给出合适的控制信号即可。

舵机对外的接口一般是三根线:

电机系统

正极、负极用于供电;信号线用于接收控制信号,这个控制信号一般是PWM波,利用PWM波的占空比来控制舵机的输出角度。

具体控制规则是:PWM波的周期为20ms,脉冲高电平一般为0.5ms~2.5ms。0.5ms时舵机输出最大负角度,2.5ms时舵机输出最大正角度,中间的脉宽和角度线性对应,如下图所示:

电机系统

了解了上述的驱动规则,就不难理解为什么很多成品的航模遥控装置,其接收机的各通道输出,既可以接到电调上,也可以接到舵机上,因为电调和舵机都可以通过PWM波控制的。

4)舵机驱动编程实践

现在我们就编写一个程序来实现舵机的驱动,还是使用stm32f103C8t6最小系统板作为硬件。

舵机的负极连GND,正极连5V,信号线连到单片机的PB1引脚上。

在cubemx中建立工程,如下设置,使用定时器3的ch4输出pwm:

电机系统

PWM波的参数,配置为20ms周期,初值脉冲宽度为0.5ms,生成keil工程。

然后再keil工程中添加代码:

Tim.c文件中添加修改PWM脉宽的函数,调用这个函数可以方便地修改定时器3的ch4输出的pwm的脉宽:

电机系统

Main.c文件中,主函数初始化时添加启动PWM输出的函数,并且在主循环中每隔1s钟修改一次PWM的宽度,以观察是否能驱动舵机运动:

电机系统

编译上述代码下载到开发板运行,可以看到舵机每隔1s会运动到一个新位置,运动到最大角度后,下一次会回到初始位置。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分