Библиотека Accelstepper

Дим M
Автор темы, Администратор
Администратор
Аватара
Дим M
Автор темы, Администратор
Администратор
Сообщения: 1608
Зарегистрирован: 5 апреля 2013
С нами: 10 лет 11 месяцев

#1 Дим » 15 мая 2019, 21:50

Код: Выделить всё


http
://www.airspayce.com/mikem/arduino/AccelStepper/
Basic Usage
You can create multiple AccelStepper objects
, giving a unique name to each motor. AccelStepper can manage any number of motors, as long as you repetitively call their "run" functions.

////Defining & Configuring Motors
AccelStepper mystepper(DRIVER, step, direction);              // Шаговый двигатель, управляемый выделенной платой.
AccelStepper mystepper(FULL2WIRE, pinA, pinB);                // Биполярный шаговый двигатель, управляемый Н-мостом.
AccelStepper mystepper(FULL4WIRE, pinA1, pinA2, pinB1, pinB2);// Униполярный двигатель, управляемый четырмя транзисторами.
mystepper.setMaxSpeed(stepsPerSecond);            // Установка максимальной скорости (оборотов в минуту). Скорость по умолчанию очень низкая, так что её требуется переопределить. При движении шаговый двигатель будет ускоряться до этой максимальной скорости и замедляться при подходе к концу движения.
mystepper.setAcceleration(stepsPerSecondSquared); // Установка ускорения, в шагах в секунду за секунду.

////Position Based Control
mystepper.isRunning();                            // Возвращает true, если ШД в режиме вращения.
mystepper.currentPosition();                      // Возвращает текущее абсолютное положение (в шагах).
mystepper.setCurrentPosition (long position);     // Установить счетчик как текущую позицию. Полезно как задание нулевой координаты. Обнуляет текущую скорость до нуля.
mystepper.targetPosition();                       // Конечное положение (в шагах).
mystepper.distanceToGo();                         // Вернуть расстояние до указанного положения. Может использоваться для проверки: достиг ли двигатель указанной конечной точки.
mystepper.moveTo(long absolute);                  // Переместиться в абсолютно указанное положение. Само движение запускается функцией run().
mystepper.move(long relative);                    // Переместиться в относительно указанное положение. Само движение запускается функцией run(). Значение distance может быть больше или меньше нуля.
mystepper.run();                                  // Начать движение с ускорением. Один шаг. Для продолжения движения следует вызывать функцию повторно как можно чаще - в loop() или иной функции.
mystepper.runToPosition();                        // Начать движение и подождать когда двигатель достигнет указанной точки. БЛОКИРУЮЩАЯ ФУНКЦИЯ - функция не прерывается, пока двигатель не остановится!
mystepper.runToNewPosition();                     // Начать движение с ускорением, до заданной позиции. БЛОКИРУЮЩАЯ ФУНКЦИЯ!
mystepper.stop();                                 // Максимально быстрая остановка (без замедления), используя текущие параметры скорости и ускорения. Также задает новое конечное положение.

////Speed Based Control
mystepper.setSpeed(stepsPerSecond);               // Установить скорость (в шагах за секунду). Само движение запускается функцией runSpeed().
mystepper.runSpeed();                             // Начать движение с текущей заданной скоростью (без плавного ускорения). Для продолжения движения двигателя следует вызывать функцию повторно как можно чаще.
mystepper.runSpeedToPosition();                   // Начать движение с текущей заданной скоростью (без плавного ускорения), до заданной позиции. БЛОКИРУЮЩАЯ ФУНКЦИЯ!

////Power Control
mystepper.disableOutputs();                       // Деактивировать занятые пины и установить их в LOW. Снимает напряжение с обмоток двигателя, экономя энергию (вал при это может проворачиваться под внешними нагрузками)
mystepper.enableOutputs();                        // Активировать зарезервированные пины и устанавивает их в режим OUTPUT. Вызывается автоматически при запуске движения.
 
[center]i love you [s]mxIni[/s] Mysql[/center]


Дим M
Автор темы, Администратор
Администратор
Аватара
Дим M
Автор темы, Администратор
Администратор
Сообщения: 1608
Зарегистрирован: 5 апреля 2013
С нами: 10 лет 11 месяцев

#2 Дим » 15 мая 2019, 21:58

Пример использования библиотеки AccelStepper

Код: Выделить всё

#include <AccelStepper.h>
#define HALFSTEP 8
// Инициализируемся с последовательностью выводов IN1-IN3-IN2-IN4 
// для использования AccelStepper с 28BYJ-48
AccelStepper stepper1(HALFSTEP, 8, 10, 9, 11);
void setup() {
  stepper1.setMaxSpeed(900);
  stepper1.setSpeed(900);
}

void loop() {  
   stepper1
.runSpeed();
}
[center]i love you [s]mxIni[/s] Mysql[/center]


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Программирование»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 1 гость