【问题标题】:Stepper motor C Implementation步进电机C实现
【发布时间】:2021-03-21 20:01:33
【问题描述】:

在别处找不到此答案。

有没有典型的C语言实现步进电机、加速度、速度和速度控制的方法?

时钟速度似乎不够快,无法在每个循环中切换一个步进引脚。人们通常会使用 CTC 中断并更改定时器比较值吗?我想以可定义的 Vel 和 Accel 移动一定数量的步数。

任何帮助将不胜感激!

欧比

【问题讨论】:

  • 如果 CPU 时钟不够快,那么您将不得不使用不受时钟驱动的外部定时器。但是您可以步进电机的最大速度 - 如果您走得太快,您只会听到嗡嗡声。因此,首先尝试最简单的方法 - 它与任何其他编程相同:让它工作,然后仅在必要时对其进行优化。
  • 感谢您的意见!我刚刚看了很多 3D 打印机中的 Melzi 步进电机控制板。控制器的步进引脚直接连接到 Atmega1284P。我想我需要尝试看看这个软件在做什么......
  • CPU 速度与步进机等机械设备的响应之间的差异是如此片面,以至于很难想象任何微控制器都会变得太慢。
  • 这不是我的意思。我的主循环是 2 毫秒,如果我以该速率切换一个引脚并且步进器每转有 200 步,那么步进器每秒只能做 2.5 转。如果我突然添加微步,它会变得很慢。

标签: c stepper


【解决方案1】:

前段时间,我在 STM8S 微控制器上为 24 VDC Sonceboz 步进电机编写了 C 设备驱动程序。

在 CPU 和电机之间我放了一个 L6219 步进电机驱动器。

CPU 时钟为 8 MHz。

我使用了一个硬件计时器,它每 10 毫秒触发一次中断。

在中断函数中有我驱动 L6219 驱动程序的代码。

中断函数花费的CPU时间小于20微秒。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-04
    • 1970-01-01
    • 2020-05-30
    • 2011-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多