Управление шаговым двигателем на 45 градусов вперед-назад

Я пытаюсь управлять шаговым двигателем 28BYJ-48 с помощью драйвера двигателя ULN2003. Я хочу запустить двигатель на 45 градусов вперед, с некоторой задержкой, а затем на 45 градусов назад. Я пробовал с приведенным ниже кодом, но он выполняет всю революцию в одном направлении. Я также проверил свои соединения. а также я хочу сделать это с помощью одной кнопки. Спасибо!

Код:

#include<Stepper.h>

const int stepsPerRevolution = 2048;

Stepper motor(stepsPerRevolution, 8, 9, 10, 11);

void setup(){
  motor.setSpeed(5);
  
}

void loop(){
  motor.step(stepsPerRevolution / 8);
  delay(50);
  motor.step(-stepsPerRevolution / 8);
}

, 👍0

Обсуждение

Что произойдет, если вы установите stepsPerRevolution на 256? Что касается кнопки, сначала проверьте, как работает кнопка (без двигателя), используя светодиод для проверки, а затем объедините оба скетча. В этом случае нет необходимости устранять дребезг кнопки., @Michel Keijzers

с 256 шагамиPerrevolution работает так же, как и раньше, только в направлении полного шага вперед, но медленно. конечно, я буду использовать кнопку, как вы сидите. Спасибо!, @Kishan Boghara


1 ответ


0

приведенный ниже код работает отлично.

#include<Stepper.h>

const int stepsPerRevolution = 2048;

Stepper motor = Stepper(stepsPerRevolution, 8, 10, 9, 11);

void setup(){
  motor.setSpeed(5);
  Serial.begin(9600);
}

void loop(){
  Serial.println("clockwise");
  motor.step(stepsPerRevolution/8);
  delay(500);
  Serial.println("counterclockwise");
  motor.step(-stepsPerRevolution/8);
  delay(500);
}
,

Тогда я удивляюсь, почему двигатель вообще работал раньше, ведь теперь вы переключили две фазы. Вы уверены, что двигатель работал правильно раньше?, @chrisl

да, раньше работало хорошо. я также добавил последовательную скорость передачи данных., @Kishan Boghara