Controla Dos Motores Paso a Paso con Arduino Nano y Joystick - Tutorial Sencillo
Componentes y materiales
- Arduino Nano R3 (o compatible)
- Joystick analógico
- 2 Motores paso a paso 28BYJ-48 5V
- 2 Módulos driver ULN2003
- Fuente de alimentación 5V (ej. K2 Breadboard power supply con adaptador)
- 17 Cables hembra-hembra (jumper wires)
Aplicaciones y servicios online
- Visuino - Entorno de desarrollo gráfico para Arduino
- Arduino IDE
Sobre el proyecto
Al construir proyectos Arduino con motores paso a paso (máquinas CNC, plotters, arte animado), llega un momento en que los steppers necesitan control manual. Los joysticks analógicos son módulos baratos y fáciles para control manual con velocidad variable. Parecen buena opción para controlar los steppers. Resolverlo con código Arduino tradicional no es trivial.
En este tutorial muestro lo fácil que es programar Arduino Nano con Visuino para controlar 2 motores paso a paso con Joystick.
Paso 1: Componentes


Paso 2: Conectar alimentación y tierra a los motores paso a paso






- Conectar Tierra (cable negro) y Alimentación (cable rojo) a cada módulo driver de stepper (Imagen 1)
- Conectar otra Tierra (negro) al pin GND del Arduino (Imagen 2)
- Conectar el otro extremo de Alimentación (rojos) de los drivers a pines "+" de fuente K2 (Imágenes 3 y 4)
- Conectar el otro extremo de Tierra (negros) de los drivers y del Arduino a pines "-" de fuente K2 (Imágenes 3 y 4)
- Asegurar que selector de voltaje de fuente K2 está en 5V (Imagen 5)
- Imagen 6 muestra dónde está el pin GND del Arduino Nano
Paso 3: Conectar los motores paso a paso al Arduino




- Si no están conectados, enchufar conectores de motores a las placas driver
- Conectar cables hembra-hembra (Azul, Verde, Amarillo, Naranja) a pines IN1 a IN4 del Driver del Primer Motor (Imagen 1)
- Conectar cables hembra-hembra (Azul, Verde, Amarillo, Naranja) a pines IN1 a IN4 del Driver del Segundo Motor (Imagen 1)
- Conectar cable IN1 del Primer Motor (Azul) a Pin Digital 2 del Arduino (Imagen 2)
- Conectar cable IN2 del Primer Motor (Verde) a Pin Digital 3 (Imagen 2)
- Conectar cable IN3 del Primer Motor (Amarillo) a Pin Digital 4 (Imagen 2)
- Conectar cable IN4 del Primer Motor (Naranja) a Pin Digital 5 (Imagen 2)
- Conectar cable IN1 del Segundo Motor (Azul) a Pin Digital 6 (Imagen 3)
- Conectar cable IN2 del Segundo Motor (Verde) a Pin Digital 7 (Imagen 3)
- Conectar cable IN3 del Segundo Motor (Amarillo) a Pin Digital 8 (Imagen 3)
- Conectar cable IN4 del Segundo Motor (Naranja) a Pin Digital 9 (Imagen 3)
- Imagen 4 muestra en Rojo pines Digital 2 a Digital 9 del Arduino Nano. En Azul conexiones del paso anterior.
Paso 4: Conectar el Joystick al Arduino




- Conectar cables hembra-hembra a GND (negro), 5V (rojo), VRx (morado), VRy (gris) del Joystick (Imagen 1)
- Conectar GND (negro) a pin GND del Arduino (Imagen 2)
- Conectar 5V (rojo) a pin 5V del Arduino (Imagen 2)
- Conectar VRx (marrón) a pin Analógico 1 (Imagen 3)
- Conectar VRy (gris) a pin Analógico 0 (Imagen 3)
- Imagen 4 muestra en Rojo pines GND, 5V, A0, A1 del Arduino Nano. En Azul conexiones previas.
Paso 5: Iniciar Visuino y seleccionar tipo de placa Arduino


Necesitas Arduino IDE instalado (versión 1.6.7 o superior, si no este tutorial no funcionará). Descarga desde arduino.cc.
Visuino: visuino.com también debe estar instalado.
- Iniciar Visuino (Imagen 1)
- Click en botón "Tools" del componente Arduino en Visuino (Imagen 1)
- En diálogo, seleccionar Arduino Nano (Imagen 2)
Paso 6: En Visuino - Añadir y conectar componentes de motor paso a paso



- Escribir "step" en filtro de Component Toolbox, seleccionar "4 Wire Stepper Motor" (Imagen 1), soltar dos en área de diseño
- Click en cuadro "Out" del componente Stepper1 para conectar todos los pines Out a la vez (Imagen 2)
- Mover ratón sobre pin de entrada "Digital" del canal "Digital[ 2 ]" del componente Arduino. Visuino extiende cables automáticamente a pines correctos (Imagen 2)
- Click en cuadro "Out" del componente Stepper2 (Imagen 3)
- Mover ratón sobre pin "Digital" del canal "Digital[ 6 ]" del componente Arduino (Imagen 3)
Paso 7: En Visuino - Propiedades de stepper y pines para control de velocidad




Para controlar velocidad, añadimos pines a propiedad "Steps Per Second":
- Seleccionar componente Stepper1 (Imagen 1)
- En Object Inspector, poner valor "Steps Per Second" a "0" (Imagen 1)
- Click en botón Pin frente a "Steps Per Second", seleccionar "Float SinkPin" (Imagen 2)
- Seleccionar componente Stepper2 (Imagen 3)
- Poner "Steps Per Second" a "0" (Imagen 3)
- Click en botón Pin, seleccionar "Float SinkPin" (Imagen 4)
Paso 8: En Visuino - Añadir y conectar componentes "Dead Zone Scaled Analog"





Pines analógicos del joystick dan valores normalizados 0.0-1.0. Necesitamos convertirlos a +/-300 pasos/seg. Como el joystick no es preciso en posición central, queremos una "zona muerta" alrededor del centro que se considere 0.5:
- Escribir "zone" en filtro, seleccionar "Dead Zone Scaled Analog" (Imagen 1), soltar dos en área de diseño
- Conectar pin "Out" de DeadZoneScaled1 a pin "StepsPerSecond" de Stepper1 (Imagen 2)
- Conectar pin "Out" del canal "Digital[ 14 ]/Analog[ 0 ]" del Arduino a pin "In" de DeadZoneScaled1 (Imagen 3)
- Conectar pin "Out" de DeadZoneScaled2 a pin "StepsPerSecond" de Stepper2 (Imagen 4)
- Conectar pin "Out" del canal "Digital[ 15 ]/Analog[ 1 ]" del Arduino a pin "In" de DeadZoneScaled2 (Imagen 5)
Paso 9: En Visuino - Configurar propiedades de Dead Zone Scaled Analog




- Seleccionar DeadZoneScaled1 en área de diseño (Imagen 1)
- En Object Inspector, expandir propiedad "Output Range" (Imagen 1)
- Poner sub-propiedad "Max" de "Output Range" a "300" (Imagen 1)
- Poner sub-propiedad "Min" de "Output Range" a "-300" (Imagen 2)
- Seleccionar DeadZoneScaled2 (Imagen 3)
- Expandir "Output Range" (Imagen 3)
- Poner "Max" a "300" (Imagen 3)
- Poner "Min" a "-300" (Imagen 4)
Paso 10: Generar, compilar y subir código Arduino


- En Visuino, pulsar F9 o botón de Imagen 1 para generar código Arduino y abrir Arduino IDE
- En Arduino IDE, click en Upload para compilar y subir (Imagen 2)
Paso 11: ¡A jugar!


¡Enhorabuena! Has completado el proyecto.
Imagen 1 y el Video muestran el proyecto conectado y alimentado.
Puedes controlar los Steppers con el Joystick como se ve en el Video. Mover Joystick Arriba/Abajo controla rotación Adelante/Atrás de uno de los Steppers. Mover Joystick Izquierda/Derecha controla el otro Stepper.
En Imagen 2 ves el diagrama Visuino completo.
Adjunto el proyecto Visuino creado para este tutorial. Descarga y abre en Visuino: visuino.com
FQM7EG7IPOA2W5T.zip
Proceso de manufactura
- Alcancía Inteligente: Controla un Aceptador de Monedas con Arduino Nano
- Controla un LED por Bluetooth con Arduino – Guía DIY paso a paso
- Evaluación de la salud de plantas con TinyML: Guía práctica
- Contador Geiger Portátil con Arduino Nano: Construye tu Detector de Radiación
- ThimbleKrox: Control de ratón montado en el dedo con Arduino Micro y MPU-6050
- Construye un volante joystick personalizado con Arduino para gaming
- Sistema DIY de Control de Cucarachas con Arduino – Construcción por Menos de $30
- Control remoto de coche con Arduino Uno y Bluetooth: Guía paso a paso
- Controla tu brazo robótico Arduino con app Android dedicada
- Robot comedero con Arduino Nano: Guía paso a paso
- Control de Ventilador PWM de 4 Pines a 25 kHz con Arduino Uno – Montaje, Código y Pruebas