Библиотека AccelStepper

aleksanya
Offline
Зарегистрирован: 10.11.2017

Необходимо сделать так, чтобы шаговый двигатель вращался на 30 полушагов до тех пор, пока метка не достигнет концевика, затем, чтобы двигатель возвращался  в положение обратное и определял его по другому концевику в начале пути.

#include<AccelStepper.h>
 
#define HALFSTEP 8   
 
// Определение пинов для управления двигателем
#define motorPin1  2 // IN1 на 1-м драйвере ULN2003
#define motorPin2  3 // IN2 на 1-м драйвере ULN2003
#define motorPin3  4 // IN3 на 1-м драйвере ULN2003
#define motorPin4  5 // IN4 на 1-м драйвере ULN2003
 
// Инициализируемся с последовательностью выводов IN1-IN3-IN2-IN4 
// для использования AccelStepper с 28BYJ-48
AccelStepper stepper1(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4);
 
void setup(){
  pinMode(13, OUTPUT);
  stepper1.setMaxSpeed(800.0);
  stepper1.setAcceleration(100.0);
  stepper1.setSpeed(100);
  stepper1.moveTo(30);
}
 
void loop(){
  // Изменяем направление, если шаговик концевика
  if(digitalRead(13)==HIGH)
  {
    stepper1.moveTo(digitalRead(0)==HIGH);
  stepper1.run();
  }
  stepper1.run();
}
Это мои соображения, но они не работают.
Помогите, пожалуйста.
vvadim
Offline
Зарегистрирован: 23.05.2012

вы абракадабру написали вот у вас и нифига не получается.

поиграйтесь  с примерами , разберитесь как библиотека работает.

stepper1.moveTo(digitalRead(0)==HIGH);     - stepper1.moveTo(здесь указывается число шагов, число типа long);

на 13 пин концевик не вешают, там диод сидит.