NEMA17 и DRV8825 200 шагов дают только половину оборота

У меня есть этот код:

#include <stdint.h>

# define STEP 14

void setup()
{
    pinMode(STEP, OUTPUT);
}

long steps = 0;
void loop()
{
    if (steps < 200)
    {
        digitalWrite(STEP, digitalRead(STEP) ^ 1);
        delay(10);
        steps++;
    }  
}

Простая реализация, и у меня есть двигатель nema17 с 1,8 градусами на шаг, который должен давать 200 шагов на оборот, но у меня есть только пол-оборота на 200 шагов, я попытался подключить все контакты MODEx к VCC, и это должно дать мне 6400 шагов на оборот но 6400 шагов тоже дает ми пол оборота. Может проблема в проводке двигателя? Почему я не получаю полный оборот? Под полным оборотом я подразумеваю, что вал двигателя должен совершить полный оборот, но только половину.

, 👍0


1 ответ


Лучший ответ:

1

См. стр. 33 технического описания DRV8825 https://www.ti.com/lit/ds/ символическая ссылка/drv8825.pdf.

DRV8255 перемещает шаговый двигатель по переднему фронту сигнала.

Для этого требуется, чтобы сигнал стал низким, а затем высоким.

Это два цикла вашей программы.

Добавьте две строки в свой код, чтобы он был низкий уровень вывода, задержка 10, высокий уровень вывода, задержка 10

,