Обратное вращение шагового двигателя
У меня есть шаговый двигатель, подключенный к моему Arduino с помощью массива Дарлингтона ULN2003A:
(игнорируйте потенциометр)
И я запрограммировал его с помощью следующего кода:
#include <Stepper.h>
int in1Pin = 22;
int in2Pin = 23;
int in3Pin = 24;
int in4Pin = 25;
Stepper motor(512, in1Pin, in2Pin, in3Pin, in4Pin);
void setup()
{
pinMode(in1Pin, OUTPUT);
pinMode(in2Pin, OUTPUT);
pinMode(in3Pin, OUTPUT);
pinMode(in4Pin, OUTPUT);
motor.setSpeed(25);
}
void loop()
{
int steps = 360;
motor.step(steps);
delay(500);
}
В данный момент двигатель вращается по часовой стрелке, как я могу заставить его вращаться в противоположном направлении?
Мой код был скопирован и отредактирован здесь.
Проблема заключалась в том, что два средних провода были расположены неправильно, как сказано здесь: http://forum.arduino.cc/index.php?PHPSESSID=kvi8dt2b5en5hhk02dlmjrotl5&topic=143276.msg
@Beta Decay, 👍4
1 ответ
Лучший ответ:
Ответ прост. Просто передайте отрицательное количество шагов в качестве аргумента функции motor.step();
.
Еще одно примечание: вы забыли поставить точку с запятой в предпоследней строке. IIRC это не имеет значения в C, но это просто плохая практика. Если вы добавите строку кода ниже этого, это не будет работать.
Пример кода:
#include <Stepper.h>
int in1Pin = 22;
int in2Pin = 23;
int in3Pin = 24;
int in4Pin = 25;
Stepper motor(512, in1Pin, in2Pin, in3Pin, in4Pin);
void setup()
{
pinMode(in1Pin, OUTPUT);
pinMode(in2Pin, OUTPUT);
pinMode(in3Pin, OUTPUT);
pinMode(in4Pin, OUTPUT);
motor.setSpeed(25);
}
void loop()
{
int steps = 360;
motor.step(steps);
delay(100);
steps = -360;
motor.step(steps);
delay(500); //Добавлена точка с запятой
}
- Arduino uno + cnc Shield v3 + драйвер шагового двигателя A4988 + AccelStepper?
- Двигатель постоянного тока шумит, но не вращается
- Почему сервопривод вращается на 360 градусов?
- Есть ли лучший выбор, кроме использования delay() для 6-часовой задержки?
- Тахометр на базе Леонардо?
- Как повторить код
- Мой моторный щит сломан?
- Мотор с ультразвуковым датчиком
Спасибо за точку с запятой, я торопливо копировал свой код. Кроме того, я попробовал отрицательное количество шагов, но это не сработало., @Beta Decay
@user12321 user12321 Я не совсем уверен. Он компилируется? [На этой странице сказано, что отрицательное число пойдет в другую сторону.](http://arduino.cc/en/Reference/StepperStep) Все, что я могу сказать, это убедиться, что вы правильно скопировали весь код. Я не могу понять, что значит «не работает»., @Anonymous Penguin
Ну, он компилируется и запускается, но продолжает вращаться в том же направлении., @Beta Decay
Я нашел решение здесь: forum.arduino.cc/index.php?PHPSESSID=kvi8dt2b5en5hhk02dlmjrotl5&topic=143276.msg109779#msg109779. У меня провода были перепутаны., @Beta Decay
@user Тогда негатив работает?, @Anonymous Penguin
Да, это работает как мечта!, @Beta Decay