Как позволить шаговому двигателю вращаться постоянно?
Когда я запускаю код на Arduino, шаговый двигатель делает только небольшой оборот за каждый цикл. Как я могу сделать это постоянно поворачиваясь?
#include <Servo.h>
Servo myservo; // создание сервообъекта для управления сервомотором
// на большинстве плат можно создать двенадцать сервообъектов
int pos = 0; // переменная для хранения положения сервопривода
//Servo Teil
#include <Stepper.h>
const int stepsPerRevolution = 200; измените это значение, чтобы оно соответствовало количеству шагов за оборот
// для вашего двигателя
// инициализация шаговой библиотеки на контактах с 8 по 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);
void setup() {
// установите скорость на 60 об / мин:
myStepper.setSpeed(105);
// инициализация последовательного порта:
Serial.begin(9600);
//Сервопривод
myservo.attach(3); // присоединяет сервопривод на выводе 9 к сервообъекту
//Сервопривод
}
void loop() {
// шаг один оборот в одном направлении:
Serial.println("по часовой стрелке");
myStepper.step(stepsPerRevolution);
//Сервопривод
for (pos = 0; pos <= 180; pos += 1) { // от 0 градусов до 180 градусов с шагом 1 градус
myservo.write(pos); // говорит двигателю идти в позицию из переменной 'pos'
delay(15); // ждет 15 мс, пока сервопривод достигнет положения
}
for (pos = 180; pos >= 0; pos -= 1) { // идет от 180 градусов до 0 градусов
myservo.write(pos); // говорит двигателю идти в позицию из переменной 'pos'
delay(15); // ждет 15 мс, пока сервопривод достигнет положения
}
//Servo
}
@Jonasoos, 👍2
Обсуждение0
Смотрите также:
- Шаговый двигатель не работает с платой A4988
- Справка по библиотеке AccelStepper - Одновременное управление двигателем
- Как правильно использовать микрошаговый драйвер с шаговым двигателем более низкого напряжения
- arduino 28BYJ-48 stepper только жужжит, не вращается
- 2 шаговых драйвера с регулировкой скорости
- Драйвер шагового двигателя не работает должным образом
- Шаговый двигатель TMC2208 не меняет скорость вращения линейно
- Как изменить направление шагового двигателя с помощью библиотеки AccelStepper?
Правильно ли работает шаговый двигатель, когда вы пробуете его с помощью одного из примеров библиотек? С вашим текущим кодом шаговый двигатель должен совершать один оборот (200 шагов) за итерацию цикла () (остановка после 200 шагов, затем сервоприводы перемещаются, а затем шаговый двигатель запускается снова на следующей итерации)., @chrisl
перепишите код loop ()... избавьтесь от утверждений " для
... см. пример скетча
blinkWithoutDelay` для способа запуска кода с интервалом .... каждые 15 мс переместите шагомер, затем переместите сервопривод ... соответственно, увеличение/уменьшение "pos", @jsotolaДа, все так, как ты говоришь, Крисл. Thx jsotola попробует это сделать., @Jonasoos
Вы не "позволяете" шаговому движению вращаться, чтобы заставить его двигаться, вы должны *активно* шагать за ним. Когда ты не наступаешь на нее, она останавливается., @Majenko
создайте N прямоугольных волн, где N-количество фаз в вашем шаговом двигателе. Убедитесь, что N прямоугольных волн соответственно находятся вне фазы друг с другом. Подключите усиленные версии прямоугольных волн к шаговому двигателю. Двигатель будет вращаться непрерывно со скоростью, определяемой частотой прямоугольных волн., @Math Keeps Me Busy