En esta lección, vas a aprender una forma divertida y fácil de controlar un motor paso a paso a distancia usando un control remoto infrarrojo (IR). El motor que estamos usando viene con su propia placa controladora, lo que hace que conectarlo a nuestra MEGA 2560 sea pan comido.
Como no queremos alimentar el motor directamente desde la MEGA 2560, vamos a usar una fuente de alimentación económica para protoboard que se conecta directo a nuestra protoboard y la alimentamos con un adaptador de 9V 1A. El sensor IR se conecta directo a la MEGA 2560 porque casi no consume energía.
Componentes necesarios:
(1) x Elegoo Mega 2560 R3
(1) x Protoboard de 830 puntos
(1) x Módulo receptor IR
(1) x Control remoto IR
(1) x Módulo driver para motor paso a paso ULN2003
(1) x Motor paso a paso
(1) x Módulo de fuente de alimentación
(1) x Adaptador de 9V 1A
(9) x Cables F-M (cables DuPont hembra a macho)
(1) x Cable M-M (cable jumper macho a macho)
Esquema de conexión y Diagrama de cableado
Podés hacer clic en el enlace azul para descargar el archivo del programa a tu dispositivo, y hacer doble clic en el archivo para abrirlo cuando termine la descarga. Tené en cuenta que: antes de abrir el archivo, asegurate de tener instalado el entorno de desarrollo Arduino IDE y de haber completado la instalación de los componentes relevantes, como el paquete de soporte de la placa y el driver correspondiente a la 2560 R3. Si tenés alguna duda sobre este proceso, podés consultar el capítulo "part 1" del documento para una guía detallada.
📥 DESCARGAR stepper_motor_control.ino
Este código demuestra cómo usar un control remoto IR para manejar un motor paso a paso. El motor girará en sentido horario o antihorario según los botones que presiones en el control remoto.
#include "Stepper.h" #include "IRremote.h" /----- Variables, Pines -----/ #define STEPS 32 // Número de pasos por revolución del eje interno int Steps2Take; // 2048 = 1 revolución int receiver = 12; // Pin de señal del receptor IR al Pin Digital 6 de Arduino /-----( Declarar objetos )-----/ // Configuración de la secuencia adecuada para los pines del driver del motor // In1, In2, In3, In4 en la secuencia 1-3-2-4 Stepper small_stepper(STEPS, 8, 10, 9, 11); IRrecv irrecv(receiver); // crear instancia de 'irrecv' decode_results results; // crear instancia de 'decode_results'
Cómo funciona
Inclusiones y definiciones:
#include "Stepper.h": Incluye la librería Stepper para el control del motor paso a paso.
#include "IRremote.h": Incluye la librería IRremote para el control remoto infrarrojo.
#define STEPS 32: Define la cantidad de pasos por revolución del eje interno.
int Steps2Take: Variable para guardar la cantidad de pasos a dar (2048 = 1 revolución).
int receiver = 12: Pin 12 conectado al pin de señal del receptor IR.
Stepper small_stepper(STEPS, 8, 10, 9, 11): Crea el objeto del motor paso a paso con los pines especificados (In1, In3, In2, In4).
IRrecv irrecv(receiver): Crea la instancia del receptor IR.
decode_results results: Crea la instancia para guardar los resultados decodificados del IR.
Función de configuración (setup):
irrecv.enableIRIn(): Inicia el receptor IR para empezar a escuchar señales IR.
Función de bucle (loop):
if (irrecv.decode(&results)): Verifica si se recibió una señal IR.
Sentencia switch basada en el valor de la señal IR:
case 0xFFA857: Se presionó el botón VOL+.
small_stepper.setSpeed(500): Establece la velocidad del motor paso a paso en 500.
Steps2Take = 2048;: Establece los pasos a dar (1 revolución completa en sentido horario).
small_stepper.step(Steps2Take): Mueve el motor paso a paso.
delay(2000): Espera 2 segundos.
case 0xFF629D: Se presionó el botón VOL-.
small_stepper.setSpeed(500): Establece la velocidad del motor paso a paso en 500.
Steps2Take = -2048;: Establece los pasos a dar (1 revolución completa en sentido antihorario).
small_stepper.step(Steps2Take): Mueve el motor paso a paso.
delay(2000): Espera 2 segundos.
irrecv.resume(): Reanuda la recepción de la siguiente señal IR.
Fuente: Adaptado al español desde el wiki oficial Elegoo (licencia CC BY-SA). Revisión técnica por equipo Breva.