历史上的今天
返回首页

历史上的今天

今天是:2025年04月14日(星期一)

正在发生

2020年04月14日 | 基于Stm32F407的多路(6路)步进电机速度控制函数

2020-04-14 来源:eefocus

应学弟们的要求特意将步进电机的速度控制函数完善。


重点:这里只是速度控制函数, 没有加减速曲线! 没有记录步数!  只是简单的把步进电机当成直流电机用! 很初级的一个程序!


程序的下载链接在这里 开发平台Keil5 单片机 Stm32F407


接下来 我就程序的实现过程给大家进行分享   


第一部分是实现的机制介绍  详细链接 在这里!主要就是通过修改 PSC和ARR寄存器的值,我们可以修改 定时器的溢出频率!而我们的定时器模式设置成 PWM输出模式, CCR寄存器 我们设置一个较小的值*(我们要控制脉冲的频率 ,所以单个脉冲的宽度是我们不关心的!)   修改了 PSC 和ARR值之后 我们就可以实现对步进电机的速度进行控制了!    详细的请看介绍!

这是测试部分的代码,只是简单的初始化和  对每一个 步进电机的速度进行赋值操作(需要加减速曲线的只需要自己去拟合就好了)

这是宏定义部分,  电机的方向控制引脚没有设置  读者需要自行设定

步进电机 的初始化部分 包含三个大类的东西 :1 方向引脚 初始化 2.速度信息对应于PSC 和ARR的关系 生成(


Steps_Creat(Step_Speed,Step_Speed_Max);  这个函数


3.定时器的初始化, 定时器初始化部分我们不需要考虑太多 ,PSC和ARR 都是需要后期修改的

以上是步数信息的初始化部分,注意:步进电机不能完全停止,(此时 PSC ARR 应该是无穷大,但是实际达不到,这里只是近似停止)  速度 和 ARR之间的关系是一个反比例函数,通过计算 我们可以将速度 展开,对于低速段,我们需要像如上程序一样 手动配置,(如果不手动配置 ARR值会非常大,(反比例函数)) 这是第二部分的代码  速度生成  

通过修改这个 最大速速可以控制生成的速度数量,但是在高速段 速度有失真的风险!!!!(此时 ARR值非常小,可能速度值差的比较大 而 ARR值 不变 我测试过 Step_Spees_Max取 400  还是可以用的)

这是速度赋值函数 大致分为以下几个部分1 验证速度是否安全(超出内存边界会 产生 hard fault)2. 判断速度方向信息  控制对应的 方向 I O   3 通过查表,将 速度信息 对应的 ARR 和 PSC 写入到对应的 定时器 寄存器中


以下是一个定时器的配置过程 

配置过程没有任何的新意 ,只是简单的配置成 PWM输出模式, 选好对应的 IO  设置 对应的寄存器  六路的配置基本相似。


自己测试的是步进电机可以转动, 剩下的 要提升的部分暂时还是懒得写,就是  一个速度曲线的拟合过程。


这里提一下 我的步进电机程序其实也可以半闭环的,只需要讲  脉冲引脚接到定时器的 计数引脚 通过对输出脉冲进行计数还是可以实现半闭环的, 但是这样一来 又会涉及到 步数的规划以及加减速的设计   比较复杂,我用不到,暂且就不去做这一部分了,这一份代码在我看来还是初级部分的代码,远远没有达到我所期望的 高效率。  在我的设想中 DMA + 定时器 一定是有解决方案的!   剩下更高级的代码   看情况 在研究吧!


生命不息,折腾不止!

推荐阅读

史海拾趣

Electromagnetic Industries Llp公司的发展小趣事

作为一家有社会责任感的企业,EMI公司不仅关注经济效益的增长,还积极履行社会责任。公司积极参与各种公益活动和社会救助行动,为灾区捐款捐物、支持教育事业等。同时,公司还注重环保和可持续发展,通过引进环保技术和设备、加强废弃物处理等措施降低生产过程中的环境污染。这些行动展现了EMI公司的良好企业形象和社会责任感。

Conflux公司的发展小趣事

Conflux深知人才是企业发展的核心动力。因此,公司一直注重人才培养和引进。通过与高校和研究机构的合作,Conflux吸引了大量优秀的科研人才加入公司。同时,公司还建立了完善的培训体系,不断提升员工的技能和素质。这些措施为公司的持续创新和发展提供了坚实的人才保障,也构筑了公司的核心竞争力。

Aten International公司的发展小趣事

在全球能源危机和环保意识日益增强的背景下,绿色能源成为了电子行业的一大发展趋势。Aten International积极响应环保号召,研发出了一系列绿色能源解决方案,包括智能型电源分配器和节能感测软件等。这些产品不仅能够有效降低能源消耗,还能提供实时的能源管理与效能指标,为企业实现绿色生产提供了有力支持。

GHz Technology ( Microsemi )公司的发展小趣事

随着业务的不断发展,Aten International开始积极拓展全球市场。通过与国际知名企业的合作,Aten International成功将其产品和服务推广至全球各地。同时,公司还设立了多个海外分支机构和办事处,以便更好地服务全球客户。这一举措不仅提升了Aten International的品牌影响力,也为公司的持续发展奠定了坚实基础。

BAHCO公司的发展小趣事

随着全球化趋势的加速推进,BAHCO也在积极拓展全球市场。目前,公司已在多个国家和地区设立了分支机构或销售网络,实现了全球范围内的业务覆盖。未来,BAHCO将继续加大在研发、生产、销售等方面的投入力度,不断提升产品质量和服务水平。同时,公司还将积极探索新的商业模式和合作方式,以适应不断变化的市场环境并实现可持续发展。

这些故事虽然不直接涉及BAHCO在电子行业的发展,但它们展示了BAHCO在工具制造领域的辉煌历程和不断进取的精神。作为一家拥有百年历史的知名企业,BAHCO凭借其卓越的品质、创新精神和全球市场布局,成功地在工具制造业中占据了重要地位。未来,随着技术的不断进步和市场需求的不断变化,相信BAHCO将继续保持其领先地位并迎来更加美好的发展前景。

AMD(超微)公司的发展小趣事

随着全球化趋势的加速推进,BAHCO也在积极拓展全球市场。目前,公司已在多个国家和地区设立了分支机构或销售网络,实现了全球范围内的业务覆盖。未来,BAHCO将继续加大在研发、生产、销售等方面的投入力度,不断提升产品质量和服务水平。同时,公司还将积极探索新的商业模式和合作方式,以适应不断变化的市场环境并实现可持续发展。

这些故事虽然不直接涉及BAHCO在电子行业的发展,但它们展示了BAHCO在工具制造领域的辉煌历程和不断进取的精神。作为一家拥有百年历史的知名企业,BAHCO凭借其卓越的品质、创新精神和全球市场布局,成功地在工具制造业中占据了重要地位。未来,随着技术的不断进步和市场需求的不断变化,相信BAHCO将继续保持其领先地位并迎来更加美好的发展前景。

问答坊 | AI 解惑

2407下面的汇编怎么理解

LAR AR0,#8 LAR AR0,*0+,AR2 主要是这个*0+如何理解…

查看全部问答>

大家用quartus有没有遇到这种问题

current license file does not support the …… device 我用的是Quartus9.1,不过选哪个器件编辑都会有这个问题…

查看全部问答>

bootLoader中“unresolved external symbol”问题

在BootLoader的main.c的OEMPreDownload()函数调用nand.cpp文件中的ReadOSImageFromBootMedia()函数,编译的时候一直出现: BUILD: [01:0000000651:ERRORE] main.obj : error LNK2019: unresolved external symbol ReadOSImageFromBootMedia refere ...…

查看全部问答>

cadence

cadence 16.3 怎么破解?…

查看全部问答>

安装WINDOWS cetk的问题

我在没有安装PLATFORM BUILDER的情况下,安装cetk,但是提示如下错误:   无法打开此安装程序包,请确认该程序包存在,并且您有权访问他或者与相关的 程序供应商联系以确认这是一个有效的Wondows Installer 程序包。 请问问什么? &nb ...…

查看全部问答>

tcs230颜色传感

最近接到了一个新的传感器--TCS230. 在网上查了些资料,感觉到这个片子可能很没有像51那样成熟,或者成熟了都商业话了,网上的介绍很少,只能硬着头皮研究官方的英文,初步了解TCS230的工作原理。 首先,了解一下工作流程: 1。校准为白色(白 ...…

查看全部问答>

【玩转C2000 Launchpad】SCI+ADC+NIKIA5110

做了一个下午的PLC实验,晚上才有时间发一个贴! 照例上完整工程: 演示视频: 28027的SCI模块具有以下几个特点: 1、和普通I/O 口共用发送SCITXD 和接收SCIRXD引脚; 2、四种错误判别机制:极性(parity)、溢出(overrun)、帧(framing)、 ...…

查看全部问答>

在线语音研讨会——人体传感器网络与穿戴式设备

在线研讨会介绍 研讨会主题: 人体传感器网络与穿戴式设备 举办时间:2014年7月29日 上午 10:00-11:00   举办地点:在线 研讨会简介:         2014年的穿戴式智能设备市场持续火热,国内外厂商扎 ...…

查看全部问答>

有关msp430afe253外接一个高精度ad来测电压

我想问一下,目前我已经可以用msp430afe253能实现测量出当机器工作时候的电压,换算成电流之后误差能在1-2mA,可是当机器待机的时候,对于这个精度不行,因为想外接一个ad,能在待机的时候,用这个ad转换器能测出误差在1-2uA,请问各位有没有什么可 ...…

查看全部问答>