
Hola a todos
Creo que si trabajaste con arduino + nema 17, sabes que es muy difícil arrancar varios motores al mismo tiempo.
Hay diferentes maneras de resolver este problema, la más fácil, quizás, es usar la biblioteca NemaStepper. La biblioteca simplifica esta tarea muchas veces, la principal ventaja es que no detiene el programa. Está instalado, así como todas las demás bibliotecas. Distribuido bajo licencia MIT.
Bueno, empecemos. Y comenzaremos por conectarnos.
Usaremos Simple Nema 17 con aliexpress por 500 rublos, el controlador L298N y arduino uno. Aquí están:



- En el ejemplo, mostraré cuatro controladores conectados al arduino, aunque usaré solo uno.
- Hay muchos tutoriales sobre cómo conectar Nema 17 en Internet, por lo que no lo describiré en detalle aquí.
Entonces, conectamos el motor al controlador:


La biblioteca está orientada a objetos. Veamos un ejemplo de encender un motor:
NemaStepper Stepper1(2, 3, 4, 5, 200, 10, false); void Setup(){ Stepper1.SetStepCount(100);
Todos los métodos de la biblioteca se pueden encontrar en los archivos de código fuente de la biblioteca (hay una descripción en el encabezado de la biblioteca).
* Más sobre el código en el ejemplo.
Y ahora por el ejemplo.
La biblioteca tiene un ejemplo incorporado (actualmente hay uno), que le permite controlar tres motores con Serial a la vez.
Este ejemplo acepta los siguientes comandos para el puerto.
Vamos a desarmarlo.
Comencemos con el encabezado - conectando bibliotecas:
A continuación, se declaran tres motores, con los siguientes parámetros:
1. Primer pin
2. Segundo pin
3. Tercer pin
4. Cuarto pin
5. El número de pasos por revolución: la mayoría de los motores Nema 17 tienen 200.
6. Velocidad de arranque
7. Un valor que indica si mantener el eje después de detenerse (si es cierto, los conductores se convierten en una barbacoa)
NemaStepper Stepper1(2, 3, 4, 5, 200, 10, false); NemaStepper Stepper2(6, 7, 8, 9, 200, 10, false); NemaStepper Stepper3(10, 11, 12, 13, 200, 10, false);
Siguiente inicialización de puerto:
void setup() { Serial.begin(9600); }
Entonces, ¡IMPORTANTE! En el bucle principal, debe actualizar la posición de los motores con el comando Step ()
void loop() { if (IsStepperEnabled == true){ Stepper1.Step(); Stepper2.Step(); Stepper3.Step(); } GetCommandFromSerial(); }
La siguiente es una subrutina que recibe datos del puerto, enciende / apaga los motores, ajusta la velocidad, los frenos y la rotación.
void GetCommandFromSerial() { if (Serial.available() > 0) {
Y así, intentemos descargarlo en el tablero.
Subido?
Luego vamos al monitor del puerto e ingresamos los comandos del código.
Cada comando termina con un /.
Los primeros tres personajes son el nombre del equipo.
Eso entre el nombre y / - parámetros.
Encienda los motores con el comando "EMS /" (Habilitar motores).
Luego indicaremos la velocidad del motor 1 60 con el comando "SS160 /" (Establecer velocidad), donde 60 es la velocidad.
Y finalmente, encienda el primer motor con el comando "MV1100 /", (MoVe) donde 100 es el número de revoluciones.
Todo funciona ¡Hurra!
Lo mismo con el resto de los motores.
Bueno, donde conseguir la biblioteca.
La biblioteca se puede descargar agradeciendo al creador, siguiendo el enlace, que le indica el precio real:
Consigue NemaStepperGracias por leer, espero que mi artículo te haya ayudado.
Cuando estaba buscando una solución a mi problema, resultó ser la única biblioteca adecuada.