Здравствуйте, никак не могу разобраться как с помощью библиотеки AccellStepper плавно запустить двигатель, а потом вращать его с постоянной скоростью. Пробовал так: Код (C++): current_position = stepper.currentPosition(); if(current_position <= 0){ stepper.moveTo(6000); } stepper.run(); if (stepper.isRunning() && current_position >= 6000 ) stepper.runSpeed(); Двигатель начинает плавный разгон, достигает указанной позиции и останавливается - нет дальнейшего движения с постоянной скоростью. А мне необходимо движение двигателя до достижения концевика. Помогите пожалуйста советом.
так 6000 вероятно количество шагов, поэтому при достижении этого значения мотор останавливается, пробуй значение увеличить
Вам нужны setSpeed и runSpeed. http://www.airspayce.com/mikem/arduino/AccelStepper/classAccelStepper.html
в примерах есть пример установки скоростей и ускорений для моторов Код (C++): // MultiStepper.pde // -*- mode: C++ -*- // // Shows how to multiple simultaneous steppers // Runs one stepper forwards and backwards, accelerating and decelerating // at the limits. Runs other steppers at the same time // // Copyright (C) 2009 Mike McCauley // $Id: MultiStepper.pde,v 1.1 2011/01/05 01:51:01 mikem Exp mikem $ #include <AccelStepper.h> // Define some steppers and the pins the will use AccelStepper stepper1; // Defaults to AccelStepper::FULL4WIRE (4 pins) on 2, 3, 4, 5 AccelStepper stepper2(AccelStepper::FULL4WIRE, 6, 7, 8, 9); AccelStepper stepper3(AccelStepper::FULL2WIRE, 10, 11); void setup() { stepper1.setMaxSpeed(200.0); stepper1.setAcceleration(100.0); stepper1.moveTo(24); stepper2.setMaxSpeed(300.0); stepper2.setAcceleration(100.0); stepper2.moveTo(1000000); stepper3.setMaxSpeed(300.0); stepper3.setAcceleration(100.0); stepper3.moveTo(1000000); } void loop() { // Change direction at the limits if (stepper1.distanceToGo() == 0) stepper1.moveTo(-stepper1.currentPosition()); stepper1.run(); stepper2.run(); stepper3.run(); }