Библиотека AccelStepper
- Войдите на сайт для отправки комментариев
Пт, 10/11/2017 - 03:39
Необходимо сделать так, чтобы шаговый двигатель вращался на 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();
}
Это мои соображения, но они не работают.
Помогите, пожалуйста.
вы абракадабру написали вот у вас и нифига не получается.
поиграйтесь с примерами , разберитесь как библиотека работает.
stepper1.moveTo(digitalRead(0)==HIGH); - stepper1.moveTo(здесь указывается число шагов, число типа long);
на 13 пин концевик не вешают, там диод сидит.