一文读懂舵机工作原理并运用(附代码) |
您所在的位置:网站首页 › 舵机带不动怎么办 › 一文读懂舵机工作原理并运用(附代码) |
杂谈
自己拿到这一模块是也挺迷茫的,后来看了一些资料,也渐渐积累了些自己的理解,很多博文并没有将舵机讲明白,至少你待把PWM与角度如何换算讲清楚吧,所以笔者写这篇博文供大家学习掌握。 如果你拿到一个舵机,该咋办?莫慌,往下看第一步先要区分这个舵机是数字舵机还是模拟舵机。 以为两者的控制方式有些许不同,模拟舵机需要给它不停的发送PWM信号,才能让它保持在规定的位置或者让它按照某个速度转动,数字舵机则只需要发送一次PWM信号就能保持在规定的某个位置。 换句话说,模拟舵机想要它转到某一位置,程序上就要放在while等循环中,数字舵机只要给一次PWM值就能以一定速度转到某一位置。 第二步是看清自己的需要 大多数舵机都是180度的舵机,顾名思义就是旋转的范围就是0-180度,这类舵机是控制舵机转到某一角度的。 而有的舵机是360度的舵机,这类舵机则是而一个PWM信号,舵机会以一个特定的速度转动,类似与电机。但与电机不同的是,360舵机是闭环控制,速度控制稳定。 第三步是了解舵机的内部结构 舵机内部长啥样?不如自己拆一个来的直接。
这一步很是关键!!! 首先舵机是用PWM波来驱动的,有PWM信号大哥的地方,就有周期和占空比两个小弟跟着。 接下来以数字舵机为例,毕竟用的最多。 舵机的控制原理就是向控制端(就是信号线,一般是黄色或者白色)输入一个PWM值,舵机就会转到某一个角度,所以,给定的PWM值与角度是对应关系。 那么,如何确定这个关系就是关键所在! 既然是输出一路PWM波,那么就需要先确定PWM的频率(一般为50HZ),进而就确定了PWM的输出周期(一般为20ms)。对于这点不清楚的可以见我以前的博文。PWM相关要点 一般舵机都会给出下面几个参数: 高电平0.5-2.5ms对应0-180度。(2.5% delay_init(); TIM2_PWM_Init(9999, 143); //TIM2_Int_Init(u16 arr, u16 psc),初始化定时器TIM2 u16 PWM=750; u8 Direction=1; while(1) { delay_ms(100); if(Direction)PWM=PWM+50; else PWM=PWM-50; if (PWM>1250) Direction=0; //PWM值1250代表舵机位置接近180度 if (PWM |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |