【发布时间】:2021-03-21 20:01:33
【问题描述】:
在别处找不到此答案。
有没有典型的C语言实现步进电机、加速度、速度和速度控制的方法?
时钟速度似乎不够快,无法在每个循环中切换一个步进引脚。人们通常会使用 CTC 中断并更改定时器比较值吗?我想以可定义的 Vel 和 Accel 移动一定数量的步数。
任何帮助将不胜感激!
欧比
【问题讨论】:
-
如果 CPU 时钟不够快,那么您将不得不使用不受时钟驱动的外部定时器。但是您可以步进电机的最大速度 - 如果您走得太快,您只会听到嗡嗡声。因此,首先尝试最简单的方法 - 它与任何其他编程相同:让它工作,然后仅在必要时对其进行优化。
-
感谢您的意见!我刚刚看了很多 3D 打印机中的 Melzi 步进电机控制板。控制器的步进引脚直接连接到 Atmega1284P。我想我需要尝试看看这个软件在做什么......
-
CPU 速度与步进机等机械设备的响应之间的差异是如此片面,以至于很难想象任何微控制器都会变得太慢。
-
这不是我的意思。我的主循环是 2 毫秒,如果我以该速率切换一个引脚并且步进器每转有 200 步,那么步进器每秒只能做 2.5 转。如果我突然添加微步,它会变得很慢。