| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> STM32控制舵机精准角度 -> 正文阅读 |
|
[嵌入式]STM32控制舵机精准角度 |
????????网上很多教程,都只是控制舵机0°,45°,90°等特定的角度,比如1°,很多程序都做不到,即使有也少得可怜,更不会详解介绍是怎么实现精准控制每一度的,因此,这篇文章的意义就在这里。 一、舵机原理????????我们以SG90、MG90等舵机为例,舵机有三个PIN,分别是VCC,GND,PWM,PWM引脚需要一个20ms周期信号,通过不同的占空比来控制不同角度,具体参数如下: ???0.5ms--------------0度; ???1.0ms------------45度; ???1.5ms------------90度; ???2.0ms-----------135度; ???2.5ms-----------180度; ????????动态原理如下,源自网上。 二、程序介绍? ? ? ? 产生PMW的方法很多,典型的就是用单片机,这里以STM32F1举例 PWM配置:这个配置没有什么特别,大同小异,直接使用经典的配置就可以,重点在后面的主函数。
主函数:
这里分为两部分:
????????首先两个定时器都能产生20ms周期的脉冲,但是网上很多网友使用的都是第一种方式:TIM3_PWM_Init(199,7199),这个的弊端是,由于计数的数量太少了,才199,导致在控制舵机角度的时候,即使我最小修改一个单位的数值,表现出来的变化脉冲宽度都比较大,导致舵机旋转了大于一个度数,换句话说,这个代码调节的精度太差。 ? ? ? ? 因此,我们需要想办法让计数器计数得尽量多,在我们修改前期的数值时,后面的脉宽变化很小很小,小于舵机旋转1°所需的变化脉宽,我们就成功了。 因此,我们使用:TIM3_PWM_Init(1999,719); 三、精准角度控制原理? ? ? ? 精准角度控制,主要在下面这两行代码
????????假设我们需要舵机旋转45°,则占空比为1ms/20ms=5%,则TIM_SetCompare2TIMx 捕获比较 1 寄存器值就是2000-2000*5%=1900; 那这个数值跟角度有什么关系呢,就来到了这个代码:?? pwmval = (int)(2000*(1-((0.5+angle/90.0)/20.0))) -5; ????????占空比从0.5开始为0°,因此需要以0.5开始相加,我们假设把45°为angle带进去,则最里面的括号为1,正好对标舵机45°时候的1ms。 ? ? ? ? 那为什么我后面要减5呢,这个是我舵机的误差,因为在我设定为0°的时候,我发现舵机的角度并不是完完全全的水平,因此这个相当于一个校准系数,根据实际情况而定,如果舵机质量很好,没有误差,那不需要-5,就是这个意思。 我这里还写了一个for循环,供大家参考,作用是使得舵机以1°的步进正反旋转。
你的点赞或收藏是我创作的动力~~ |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 16:49:42- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |