Запуск и остановка двух шаговых двигателей
- Войдите на сайт для отправки комментариев
Пт, 29/09/2017 - 15:39
#include<AccelStepper.h>
#define motor1Pin1 8 // IN1
#define motor1Pin2 9 // IN2
#define motor1Pin3 10 // IN3
#define motor1Pin4 11 // IN4
AccelStepper stepper1(8, motor1Pin1, motor1Pin3, motor1Pin2, motor1Pin4);
#define motor2Pin1 2 // IN1
#define motor2Pin2 3 // IN2
#define motor2Pin3 4 // IN3
#define motor2Pin4 5 // IN4
AccelStepper stepper2(8, motor2Pin1, motor2Pin3, motor2Pin2, motor2Pin4);
const int led = 13;
void setup() {
pinMode(led, OUTPUT);
stepper1.setMaxSpeed(600);// Задаём максимальную скорость двигателя1
stepper2.setMaxSpeed(500);// Задаём максимальную скорость двигателя2
stepper1.setAcceleration(1000);// Задаём ускорение двигателя1
stepper2.setAcceleration(1000);// Задаём ускорение двигателя2
//stepper1.setSpeed(1000); // Установим скорость в шагах за секунду
// stepper2.setSpeed(500); // Установим скорость в шагах за секунду
stepper1.moveTo(500); // Перемещаем в абсолютно указанное положение
stepper2.moveTo(1500); // Перемещаем в абсолютно указанное положение
}
void loop()
{
stepper1.run();
// delay(500); // Не работает
stepper2.run();
}
Подскажите пожалуйста, как сделать паузу между запуском
stepper1.run(); иstepper21.run();void loop() { stepper1.runToPosition(); stepper2.runToPosition(); }Или так (смотря что имелось в виду под "пауза"):
#define STEPPER2_TIMEOUT 1000 void loop() { static unsigned long t = millis(); stepper1.run(); if(millis() - t > STEPPER2_TIMEOUT) stepper2.run(); }Прошу прощения, не так вопрос задал, с шаговиками я первый раз. Подскажите пожалуйста как повторить циклы.
После работы stepper1 включится led на 1000мс, далее вкл. stepper2. Цикл повторяется 10раз.
void loop() { ///1// stepper1.runToPosition(); digitalWrite(led, LOW); delay(1000); digitalWrite(led, HIGH); stepper2.runToPosition(); delay(1000); digitalWrite(led, LOW); delay(1000); digitalWrite(led, HIGH); ///2// stepper1.runToPosition(); digitalWrite(led, LOW); delay(1000); digitalWrite(led, HIGH); stepper2.runToPosition(); delay(1000); digitalWrite(led, LOW); delay(1000); digitalWrite(led, HIGH); }разбейте свои задачи на части.
сначала научитесь зажигать светодиод после отработки первого шаговика.