Marlin固件的步进电机控制代码解析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Marlin固件的步进电机控制代码解析相关的知识,希望对你有一定的参考价值。



对于的我来说,入行一年,依然有很多功能细节我还没能仔细了解,同时固件本身的代码智慧,我远没有完全消化。
Marlin的步进电机驱动,是由中断响应函数实现的。然而远没有这句话来的那么简单:我认为整个控制系统的关键在于路径规划器(planner)。 如果步进电机一直匀速运动,不需要任何规划器。不过对于3D打印机而言,x,y轴的运动往往速度变化非常频繁,如果采用匀速运动,速度的突然变化会给电路带来很大的冲击,影响机器的稳定性。这个物理层的原理,就决定了算法层应该采用加速减速的运动算法。    路径规划器意味着,程序在执行步进电机的动作之前,就已经计算好了整个过程的速度曲线。后面就只是Stepper模块忠实地执行。这样的好处在于减少了中断响应函数中的运算量。 由于3D打印机的机械运动相比控制器的16M主频来说要慢很多,采用缓存技术就能够有效的利用控制器速度。这里面蕴藏着“空间换取时间”的思想。路径规划器会在每次调用时,兢兢业业地把动作规划好,压入block_buffer这个队列。 步进电机的移动速度是严格按照规划器的规划结果,通过设置每次中断的周期寄存器来实现的。 

以上是关于Marlin固件的步进电机控制代码解析的主要内容,如果未能解决你的问题,请参考以下文章

3D打印Marlin2.0固件源代码分析之参数存储方式实现

Marlin固件之—:基础入门与測试

stm8电机库原理

控制步进电机C语言代码解释

步进电机的驱动代码

使用单电机控制 Arduino (Uno) 库控制两个步进电机