舵机角度精确控制

导读:1.只想控制舵机不想了解其他的直接看 (三 四)

2.会控制舵机但是角度控制的不精确的话可以直接看(四)

想直接找参数不想调节舵机的朋友我劝你还是看一下这篇文章,舵机的参数可能每个舵机都不相同,不信可以试一下

//1.2控制舵机的频率频率	
PWM14_OUT_Init(20000-1,84-1);//20ms

//控制角度的频率
ccr: 632.5  950   1585   2220   2537.5
角度: -45     0	   90	  180	 180+45

前言

提示:1.PWM肯定是要会的,不说有多精通起码调节什么频率的,多少毫秒需要熟练掌握。
2.建议使用串口和按键控制舵机的角度(后边调试舵机角度很有用处)

PWM如果不会可以参考我另一篇文章:
https://blog.csdn.net/weixin_45061010/article/details/116234867?spm=1001.2014.3001.5501

*首先需要明白且很重要的一点是舵机的角度跟脉宽是直接关系,占空比只是侧面反映出了舵机的角度问题。调节角度调节的脉宽,脉宽,脉宽。


提示:以下是本篇文章正文内容,下面案例可供参考

一、自己学习过程

下面的的文章就是对这些东西的掌握理解与延伸。

文章参考:[https://blog.csdn.net/zitech/article/details/9277767]
https://blog.csdn.net/kucoffee12/article/details/78982098

视频参考:(先1后2。1可以更直观的了解PWM,解决你内心对PWM的小疑惑)
1.https://www.bilibili.com/video/BV1YJ411r7tk
2.https://www.bilibili.com/video/BV1bJ411675x



二:舵机组成与分类

舵机组成与原理: 舵机主要是由外壳、电路板、无核心马达、齿轮与位置检测器所构成。工作原理是控制电路接收信号源的控制脉冲,并驱动电机转动;齿轮组将电机的速度成大倍数缩小,并将电机的输出扭矩放大响应倍数,然后输出;电位器和齿轮组的末级一起转动,测量舵机轴转动角度;电路板检测并根据电位器判断舵机转动角度,然后控制舵机转动到目标角度或保持在目标角度。

舵机的规格主要有几个方面:转速、转矩、电压、尺寸、重量、材料等。

舵机一般分为数字舵机和模拟舵机
相对于传统模拟舵机,数字舵机的两个优势是:
1.因为微处理器的关系,数字舵机可以在将动力脉冲发送到舵机马达之前,对输入的信号根据设定的参数进行处理。这意味着动力脉冲的宽度,就是说激励马达的动力,可以根据微处理器的程序运算而调整,以适应不同的功能要求,并优化舵机的性能。
2.数字舵机以高得多的频率向马达发送动力脉冲。就是说,相对与传统的50脉冲/秒,现在是300脉冲/秒。虽然,以为频率高的关系,每个动力脉冲的宽度被减小了,但马达在同一时间里收到更多的激励信号,并转动得更快。这也意味着不仅仅舵机马达以更高的频率响应发射机的信号,而且“无反应区”变小;反应变得更快;加速和减速时也更迅速、更柔和;数字舵机提供更高的精度和更好的固定力量。



三、PWM驱动

想要舵机的角度首先需要驱动舵机,那么怎么驱动舵机呢?(这里有一个小坑,下面角度调节会说,按这个配置,你的舵机角度或许并不是你想要的,但是配置好之后绝对可以让你的舵机转动起来)

舵机的控制一般需要一个20ms的时基脉冲,该脉冲的高电平部分一般为0.5ms~2.5ms范围内的角度控制脉冲部分。以180度角度舵机为例,那么对应的控制关系是这样的:
0.5ms--------------0度;
1.0ms------------45度;
1.5ms------------90度;
2.0ms-----------135度;
2.5ms-----------180度;


需要提一下:你的舵机配置好之后如果板子的供电做的不好的话,舵机调好也不会自接转动,你可以用手给Ta一个开始的力,或者给他接外接电源(5v稍多一点也没关系)


四、角度调节

需要根据舵机的实际情况 ,并不是所有的舵机对应的都是那样,先试下0度和180度时,对应的脉宽是不是500微秒和2500微秒。需要自己手动调试首先检测出舵机的最大转角、转角的起始点和终止点。(填补上面的坑,有时候坑也是需要踩一下的

C=(ccr2-ccr1) //0度和180度之间ccr的差值
O=(ccr2-ccr1)/180 //得出1度对应的频率

1.并不是所有的舵机超过他的极限区域了他就不转动了,而是你超过之后ta可能会不按照你的角度转,这点要注意。重要的是调节舵机的极限值,
2.在舵机极限值当中选择一些特殊的角度(eg:45 90 135 180),自己在极限值区间寻找一个合适的0度和180度的值来自己定义,记下0度和180对应的ccr1,ccr2的值C,然后计算出O。知道一度对应多少频率之后岂不是想调节多少就多少度
3.怎么得知0度对应的ccr这里就是我开头说的串口和按键了,用按键控制ccr的值在串口输出,按键每次➕10看分别对应那些特殊值的时候输出的ccr的值,最后求出C。因为我们特殊值可以观察大概,略有偏差所以我扪计算出O的值可以小范围修改,尽量O➗180可以得出一个不循环的数值,然后再观察修改之后分别对应的角度有没有失真,实在不行就区循环小数里面取四位小数按照四舍五入


下面是我调节的数字舵机的参数仅供参考:

//1.3舵机占空比					 //区间600-2500频率/度数=10.555~		区间950-2230频率/度数=7.0556~
		TIM_SetCompare1(TIM14,ccr); //修改比较值,修改占空比  632.5  950     1585   2220     2537.5
				                    //度数				   -45    0	      90	 180	  180+45

总结

重点都在文章里了,没有说什么废话,不在总结。这个过程重在自学习和分享,更加深刻的学习舵机,并能让看到的朋友可以省时省力的学会控制这个小东西。

版权声明:本文为CSDN博主「maosql」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45061010/article/details/118674952

生成海报
点赞 0

maosql

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

舵机角度精确控制

导读:1.只想控制舵机不想了解其他的直接看 (三 四)2.会控制舵机但是角度控制的不精确的话可以直接看(四)想直接找参数不想调节舵机的朋友我劝你还是看一下这篇文章&#xff0

CH579(M0内核)中断向量表偏移处理

通常情况下,为了产品后续的升级,程序都会分为两部分BootloaderApp,因为有两个程序,所以需要对中断向量表进行处理,否则,当程序已经跳转到app中运行,当中断产生的时候,响应函数仍然是Bootloader的中断函数,而不是app的 在S

【STM32】贪吃蛇小游戏

这是一个几个星期之前的小项目,参考修改了一下网上和正点原子的例程。 点击下载源码 功能:贪吃蛇小游戏 单片机:stm32f103c8t6 用到的硬件资源: 1.LED指示灯 2.矩阵键盘

【毕设】六足机器人的设计

苍天下的蓝耀__【毕设】六足机器人的设计 序 这个项目是我本科毕业设计作品,可实现功能有常规控制(前后左右移动、左右自旋)、保持自平衡、三档变速及自主避障功能,历时三个月在家独立完成。