Работа двух шаговых двигателей

Сергей Р
Offline
Зарегистрирован: 19.02.2016

Добрый день, есть два шаговых дв. , светодиод, ардуинка. И какая цена за рабочий скетч?

Задачка такая:

ШД stepper1 поворачивается на определённое кол.шагов, останавливается, мигнёт светодиод на 1с. ,пауза - цикл 10раз.

stepper2 поворачивается на определённое кол.шагов, останавливается.

Реверс - stepper1 поворачивается в другую сторону на определённое кол.шагов, останавливается, мигнёт светодиод на 1с. ,пауза - цикл 10раз.

stepper2 поворачивается на определённое кол.шагов, останавливается.

Опять реверс - stepper1 поворачивается в другую сторону на определённое кол.шагов, останавливается, мигнёт светодиод на 1с. ,пауза - цикл 10раз.

stepper2 поворачивается на определённое кол.шагов, останавливается.

Я так понимаю здесь без "millis" и счётчиков не обойтись.

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()
{
//1//
   digitalWrite(led, LOW);    
    delay(1000); 
    digitalWrite(led, HIGH);  
  stepper1.runToPosition();
  delay(1000); 
//2//
   digitalWrite(led, LOW);    
    delay(1000); 
    digitalWrite(led, HIGH);  
  stepper1.runToPosition();
  delay(1000); 
//и т.д. 10раз
//цикл со stepper1 10 циклов, далее включаем stepper2 1цикл//
 stepper2.runToPosition();
//Далее stepper1 10 циклов уже в другую сторону//
//-1//
   digitalWrite(led, LOW);    
    delay(1000); 
    digitalWrite(led, HIGH);  
  stepper1.runToPosition();
  delay(1000); 
//-2//
   digitalWrite(led, LOW);    
    delay(1000); 
    digitalWrite(led, HIGH);  
  stepper1.runToPosition();
  delay(1000); 
//и т.д. -10раз
//stepper2 1цикл//
stepper2.runToPosition();
//и последний раз реверс на 10циклов //
//1//
   digitalWrite(led, LOW);    
    delay(1000); 
    digitalWrite(led, HIGH);  
  stepper1.runToPosition();
  delay(1000); 
//2//
   digitalWrite(led, LOW);    
    delay(1000); 
    digitalWrite(led, HIGH);  
  stepper1.runToPosition();
  delay(1000); 
//и т.д. 10раз 
}

 

Alexandsvoi
Offline
Зарегистрирован: 11.07.2017

день добрый! Цена или сделать ?

Сергей Р
Offline
Зарегистрирован: 19.02.2016

Всем спасибо за опперативность, исполнитель найден.

Alexandsvoi
Offline
Зарегистрирован: 11.07.2017

Сергей Р пишет:

Всем спасибо за опперативность, исполнитель найден.

оперативно.