566666 2023-03-20 13:51 采纳率: 0%
浏览 62
已结题

arduino驱动步进电机步数不对

通过arduino用tmc2208驱动18°步进电机为什么一圈是159步,有没有人遇到过这个问题
目前2208的细分引脚悬空
下面是代码,有没有哪位帮忙看看是啥原因

volatile int delaym;
volatile int step;
volatile int dir;

void setup(){
  delaym = 0;
  step = digitalRead(2);
  pinMode(3, INPUT);
  dir = digitalRead(3);
  pinMode(2, OUTPUT);
}

void loop(){
  dir = HIGH;
  step = HIGH;
  for (int i = 0; i <= 159; i = i + (1)) {
    delaym = 1000;
    digitalWrite(2,HIGH);
    delayMicroseconds(delaym);
    digitalWrite(2,LOW);
    delayMicroseconds(delaym);
  }
  delay(1000);

}

  • 写回答

9条回答 默认 最新

  • 追cium 2023-03-20 13:57
    关注

    参考GPT和自己的思路:

    根据你提供的代码和问题描述,我可以推测驱动步进电机步数不对的原因可能如下:

    1. 引脚设置不正确:你在代码中指定了2和3号引脚作为步进电机的控制引脚和方向引脚。请确保你实际使用的引脚和代码中指定的引脚一致。

    2. 步进电机细分设置不正确:你使用的是tmc2208驱动器,可以使用其细分功能来控制步进电机的旋转角度。请检查你的tmc2208驱动器是否正确设置了细分参数。如果没有设置,步进电机的步数可能会受到影响。

    3. 步进电机的型号不正确:如果你在代码中使用的是默认的步进电机类型,而实际使用的步进电机型号不同,步进电机的步数也可能会不同。

    综上所述,你可以尝试重新检查你的引脚设置、tmc2208驱动器的细分设置和步进电机的型号,以确定导致步数错误的原因。

    评论

报告相同问题?

问题事件

  • 系统已结题 3月28日
  • 创建了问题 3月20日