SincSteps (Clase) - HormigaRobotica/Hormiga_Arduino GitHub Wiki

sincSteppers.h

Librería para rotar 2 motores paso a paso el mismo angulo (inclusive si el angulo de paso de cada motor es distinto)

SincSteps(const int pasosRev1, byte pin1Motor1, byte pin2Motor1[, byte pin3Motor1, byte pin4Motor1], const int pasosRev2, byte pin1Motor2, byte pin2Motor2[, byte pin3Motor2, byte pin4Motor2]);

Constructor de la clase

  • pasosRev1: Número de pasos por revolución (ppr) del motor 1
  • pin1Motor1: pin 1 para el motor 1
  • pin2Motor1: pin 2 para el motor 1
  • pin3Motor1 (opcional): pin 3 para el motor 1
  • pin4Motor1 (opcional): pin 4 para el motor 1
  • pasosRev2: Número de pasos por revolución (ppr) del motor 2
  • pin1Motor2: pin 1 para el motor 2
  • pin2Motor2: pin 2 para el motor 2
  • pin3Motor2 (opcional): pin 3 para el motor 2
  • pin4Motor2 (opcional): pin 4 para el motor 2

Retorna: Una nueva instancia de la clase SincSteps


Métodos contenidos en la clase:

void desp(long nDesp);

Rota cada uno de los motores hasta llegar al desplazamiento requerido

  • nDesp: Número de desplazamientos(rotación mínima equivalente) en la misma dirección a dar en los motores.

Retorna: None

void rev(long nRev);

Rota los motores vueltas completas

  • nRev: Número de revoluciones en la misma dirección a dar en los motores.

Retorna: None

void despInv(long nDesp);

Rota cada uno de los motores en direcciones opuestas hasta llegar al desplazamiento requerido

  • nDesp: Número de desplazamientos(rotación mínima equivalente) en direcciones opuestas a dar en los motores.

Retorna: None

void revInv(long nRev);

Este método rota los motores en direcciones opuestas vueltas completas

  • nRev: Número de revoluciones en direcciones opuestas a dar en los motores.

Retorna: None

int getPasosDesp(byte nMotor);

Retorna el número de pasos para que el motor solicitado de 1 desplazamiento

  • nMotor: indice del motor a revisar [0,1]

Retorna: [int] Número de pasos para que el motor solicitado de 1 desplazamiento

void calcPasosDesp(const int pasosRev1, const int pasosRev2);

Calcula el numero de pasos requerido para un desplazamiento uniforme y lo almacena en uno de los atributos del objeto

  • pasosRev1: Número de pasos por revolución (ppr) del motor 1
  • pasosRev2: Número de pasos por revolución (ppr) del motor 2

Retorna: None

void setSpeed(unsigned long rpms);

Establece la velocidad de rotación de los motores en revoluciones por minuto [RPM]

  • rpms: revoluciones por minuto [RPM] para la rotación del motor

Retorna: None


El desplazamiento de los motores se obtiene al calcular el máximo común divisor entre el número de pasos por revolución de los motores


Ejemplo de un programa que desplaza hacia adelante dos motores iguales cada segundo

#define PPR 48

SincSteps motores(PPR, 11, 9, 10, 8, PPR, 4, 6, 5, 7);

void setup() {
  Serial.begin(9600);
}

void loop() {

  motores.desp(1); //mueve los motores 1 desplazamiento

  delay(1000);
}