6#define PASOS_POR_VUELTA 4096
float gradosCorriendo
Ángulo recorrido durante el movimiento (progreso).
void movimientoPosicionRelativo(float grados, bool debugMSG=false)
Mueve el motor hacia un ángulo relativo usando el camino más corto.
int pasos
Pasos totales a ejecutar en el movimiento actual.
int pasoActual
Índice de la secuencia (0–7).
float diferenciaCircular(float gradosActuales, float gradosObjetivo)
Calcula la diferencia circular entre dos ángulos.
float gradoActual
Ángulo actual del motor (0–360 normalizado).
void pasoAtras()
Retrocede un paso en la secuencia del motor.
bool direccionAdelante
Dirección: true = adelante.
void movimientoContinuo()
Ejecuta movimiento continuo según la velocidad configurada.
int convertirGradosAPasos(float grados)
Convierte grados a pasos del motor.
float movimientoDePosicionGradosCorriendo(int movimientoPasos)
Actualiza y devuelve los grados recorridos durante el movimiento.
unsigned long retardoPaso
Microsegundos entre pasos (determina la velocidad).
MotorPaso(uint8_t pinA, uint8_t pinB, uint8_t pinC, uint8_t pinD)
Constructor del motor paso a paso.
float convertirPasosAGrados(int pasos)
Convierte pasos del motor a grados.
void aplicarPaso(int indicePaso)
Aplica un paso específico de la secuencia (0–7).
bool direccionAtras
Dirección: true = atrás.
int pasosPorVuelta
Pasos necesarios para 360°
unsigned long tiempoUltimoPaso
Marca temporal del último paso ejecutado.
void fijarVelocidad(float rpm)
Establece la velocidad del motor en RPM.
void pasoAdelante()
Avanza un paso en la secuencia del motor.
float diferencia
Diferencia circular entre gradoActual y gradosObjetivo (–180 a +180).
void debugMovimientoRelativo(int pasoActualDelBucle)
Imprime información detallada del movimiento relativo.
short rpm
Velocidad configurada en RPM.
float normalizarGrados(float grados)
Normaliza un ángulo al rango 0–360 grados.
float gradosObjetivo
Ángulo objetivo solicitado.