Autor Tema: Super Biblioteca control motor paso a paso  (Leído 6467 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado CompSystems

  • PIC18
  • ****
  • Mensajes: 488
    • Home Page
Super Biblioteca control motor paso a paso
« en: 01 de Abril de 2016, 01:00:31 »
Hola, encontré una biblioteca para arduino (version mas reciente AccelStepper-1.51.zip) con muchísimas  funciones para controlar un motor paso a paso
Pagina del proyecto
http://www.open.com.au/mikem/arduino/AccelStepper

un ejemplo simple que encontré
Código: C++
  1. #include <AccelStepper.h>
  2.  
  3. AccelStepper stepper(1, 9, 8);//(define el tipo de control del motor,pin de paso,pin dirección)
  4. int pos = 100;
  5. void setup()
  6. {
  7.   stepper.setMaxSpeed(800); //velocidad máxima permitida
  8.   stepper.setAcceleration(500);// relación entre aceleración/desaceleracion
  9. }
  10.  
  11. void loop()
  12. {
  13.   if (stepper.distanceToGo() == 0)//distancia de la posición actual y la destino
  14.  
  15.   {
  16.     delay(500);
  17.     pos = -pos;
  18.     stepper.moveTo(pos);//establece la posición de destino
  19.   }
  20.   stepper.run();
  21. }

Conexión solo 2 pines de control STEP y DIR




la idea es montar el circuito anterior usando el Driver (DRV8825 Stepper Motor Driver) o similar y explorar las muchísimas funciones que trae la biblioteca, como acelaracion, y hacer cambios de los micropasos, se requiere 3 pines de conexión adicionales.

MODE0   M1   M2   Microstep Resolution
Low   Low   Low   Full step
High   Low   Low   Half step
Low   High   Low   1/4 step
High   High   Low   1/8 step
Low   Low   High   1/16 step
High   Low   High   1/32 step
Low   High   High   1/32 step
High   High   High   1/32 step

Por mi parte ya monte el circuito, y aunque estaba escribiendo mi propia biblioteca, que la publique en este  mismo foro, la biblioteca AccelStepper esta super completa e interesante, quien se une a montar el circuito y compartir sus experiencias

lista de funciones
Código: [Seleccionar]
AccelStepper (uint8_t interface=AccelStepper::FULL4WIRE, uint8_t pin1=2, uint8_t pin2=3, uint8_t pin3=4, uint8_t pin4=5, bool enable=true)
 
  AccelStepper (void(*forward)(), void(*backward)())
 
void moveTo (long absolute)
 
void move (long relative)
 
boolean run ()
 
boolean runSpeed ()
 
void setMaxSpeed (float speed)
 
float maxSpeed ()
 
void setAcceleration (float acceleration)
 
void setSpeed (float speed)
 
float speed ()
 
long distanceToGo ()
 
long targetPosition ()
 
long currentPosition ()
 
void setCurrentPosition (long position)
 
void runToPosition ()
 
boolean runSpeedToPosition ()
 
void runToNewPosition (long position)
 
void stop ()
 
virtual void disableOutputs ()
 
virtual void enableOutputs ()
 
void setMinPulseWidth (unsigned int minWidth)
 
void setEnablePin (uint8_t enablePin=0xff)
 
void setPinsInverted (bool directionInvert=false, bool stepInvert=false, bool enableInvert=false)
 
void setPinsInverted (bool pin1Invert, bool pin2Invert, bool pin3Invert, bool pin4Invert, bool enableInvert)
 
bool isRunning ()
« Última modificación: 02 de Abril de 2016, 23:34:02 por CompSystems »
Desde Colombia

Desconectado CompSystems

  • PIC18
  • ****
  • Mensajes: 488
    • Home Page
« Última modificación: 02 de Abril de 2016, 23:31:49 por CompSystems »
Desde Colombia