Control de motor paso a paso x infrarrojo con control de velocidad


En este proyecto, aprenderemos a controlar un motor paso a paso 28BYJ-48 utilizando un control remoto infrarrojo y un Arduino. El motor podrá girar en ambas direcciones, detenerse, y ajustar su velocidad mediante comandos enviados desde el control remoto. Este proyecto es ideal para aplicaciones donde se necesite control inalámbrico y preciso de un motor paso a paso, como en robots, cámaras, o sistemas de automatización.


Tal vez pueda interesarte proyectos en arduino, pic, robótica, telecomunicaciones, suscribete en http://www.youtube.com/user/carlosvolt?sub_confirmation=1 mucho videos con código fuentes completos y diagramas

SUSCRIBETE A NUESTRO CANAL DE YOUTUBE, TUTORIALES GRATIS


El 28BYJ-48 es un motor paso a paso de bajo costo que funciona con el driver ULN2003. Este driver nos permite controlar el motor fácilmente desde un microcontrolador como el Arduino. Además, empleamos la librería IRremote para recibir las señales infrarrojas del control remoto, lo que nos permite manejar el motor de manera inalámbrica y sin botones físicos.

En este proyecto, implementamos los siguientes controles:

  • Giro a la derecha: Presionando un botón específico, el motor girará continuamente en la dirección de las agujas del reloj hasta que se envíe otro comando.
  • Giro a la izquierda: Con otro botón, el motor girará en sentido contrario.
  • Parada: Un tercer botón detendrá el motor.
  • Ajuste de velocidad: Se puede aumentar o disminuir la velocidad del motor en un rango de 1 a 10 utilizando dos botones adicionales del control remoto.

Durante el proyecto, utilizamos el monitor serial del Arduino para mostrar el código infrarrojo recibido, lo que nos permite identificar fácilmente los botones de control y verificar su funcionamiento. Este proyecto es modular y permite ajustes según las necesidades del usuario, como cambiar la velocidad máxima o ajustar los códigos del control remoto.


Componentes electrónicos

Arduino mini pro

El Arduino Pro Mini es una placa de microcontrolador basada en el  ATmega328 .
Tiene 14 pines de entrada / salida digital (de los cuales 6 se pueden usar como salidas PWM), 6 entradas analógicas, un resonador integrado, un botón de reinicio y orificios para montar encabezados de pines. Se puede conectar un encabezado de seis pines a un cable FTDI o una placa de conexión Sparkfun para proporcionar alimentación USB y comunicación a la placa.
El Arduino Pro Mini está diseñado para su instalación semipermanente en objetos o exposiciones. La placa viene sin encabezados pre montados, lo que permite el uso de varios tipos de conectores o la soldadura directa de cables. El diseño del pin es compatible con el Arduino Mini.
Hay dos versiones del Pro Mini. Uno corre a 3.3V y 8 MHz, el otro a 5V y 16 MHz.

Microcontrolador ATmega328 *
Fuente de alimentación de la placa 3,35-12 V (modelo de 3,3 V) o 5-12 V (modelo de 5 V)
Voltaje de funcionamiento del circuito 3.3V o 5V (dependiendo del modelo)
Pines de E / S digitales 14
Pines PWM 6 6
UART 1
SPI 1
I2C 1
Pines de entrada analógica 6 6
Interrupciones externas 2
Corriente CC por pin de E / S 40 mA
Memoria flash 32 KB de los cuales 2 KB utilizados por el gestor de arranque *
SRAM 2 KB *
EEPROM 1 KB *
Velocidad de reloj 8 MHz (versiones de 3.3V) o 16 MHz (versiones de 5V)

Pines hembra


Zócalo para arduino nano


Módulo receptor infrarrojo ky-022

Tamaño: 6.4 * 7.4 * 5.1MM, ángulo de aceptación 90 °, voltaje de trabajo 2.7-5.5V.
Frecuencia 37.9KHZ, recibiendo la distancia 18 m.

Rechazo de luz diurna hasta 500LUX, capacidad de interferencia electromagnética, IC dedicado de infrarrojos incorporado.
Ampliamente utilizado: estéreo, TV, VCR, CD, decodificadores, marco de fotos digital, audio para el automóvil, juguetes de control remoto, receptores de satélite, disco duro, aire acondicionado, calefacción, ventiladores, iluminación y otros electrodomésticos.

Pinout:

1 …. GND (-)

2 …. + 5V

3 …. Salida (S)


Motor paso a paso 28BYJ-48

Los parámetros de este motor paso a paso son:

  • Modelo: 28BYJ-48 – 5V
  • Tensión nominal: 5V (o 12 V, valor indicado en la parte trasera).
  • Cantidad de fases: 4.
  • Reductor de velocidad: 1/64
  • Ángulo de paso: 5,625° / 64
  • Frecuencia: 100Hz
  • Resistencia en CC: 50Ω ±7 % (25° C)
  • Frecuencia con tracción: > 600Hz
  • Frecuencia sin tracción: > 1000Hz
  • Torque con tracción: >34,3mN.m (120Hz)
  • Torque en autoposicionamiento: >34,3mN.m
  • Torque con fricción: 600-1200 gf.cm
  • Arrastre en torque: 300 gf.cm
  • Resistencia de aislación > 10MΩ (500V)
  • Aislación eléctrica: 600VAC/1mA/1s
  • Grado de aislación: A
  • Aumento de temperatura: < 40K (120Hz)
  • Ruido: < 35dB (120Hz, sin carga, 10cm)

ULN2003APG

Especificaciones principales:

  • 500 mA de corriente de colector nominal (de salida única)
  • 50 V de salida (hay una versión que soporta 100 V de salida)
  • Incluye diodos de retorno de salida
  • Entradas compatibles con TTL y 5-V CMOS lógica

Control remoto x infrarrojo


PCB

Descargar archivo gerber –> pcb alarma ir


Circuito


Esquema de conexión:

  1. Conecta los 4 pines del motor a las salidas del driver ULN2003. Estas suelen ser los pines IN1, IN2, IN3 e IN4.
  2. Conecta los pines IN1 a D6, IN2 a D7, IN3 a D8, e IN4 a D9 en la placa Arduino.
  3. Conecta el pin de señal del receptor IR al pin D2 del Arduino.
  4. Conecta la alimentación y la tierra del motor y el receptor IR a 5V y GND respectivamente.

Instalación de librerías:

  1. IRremote: Esta librería se utiliza para recibir señales infrarrojas del control remoto. Para instalarla, abre el IDE de Arduino y ve a Sketch > Incluir Librería > Administrar Bibliotecas. Busca “IRremote” e instálala.
  2. Stepper: Es una librería estándar que ya viene incluida en el IDE de Arduino, por lo que no necesitas instalar nada adicional para controlar el motor.


Explicación del código:

  1. Control por infrarrojo: El receptor IR recibe las señales del control remoto, y el código IR se imprime en el monitor serial para verificar que es el correcto.
  2. Giro del motor: Dependiendo del botón que se presiona en el control, el motor gira hacia la derecha o la izquierda. También se puede detener con el botón correspondiente.
  3. Control de velocidad: Hay dos botones configurados para aumentar o disminuir la velocidad del motor en un rango de 1 a 10.
  4. Máquina de estados: El motor está en uno de los tres estados: PARADO, GIRANDO_DERECHA, o GIRANDO_IZQUIERDA, y actúa según el estado actual.

Ajustes adicionales:

  1. Códigos IR: Si los códigos proporcionados no coinciden con los de tu control remoto, puedes identificarlos abriendo el monitor serial y presionando los botones del control.
  2. Velocidad del motor: Si necesitas ajustar la velocidad del motor, puedes cambiar la variable velocidad entre 1 (mínima) y 10 (máxima).
  3. Pasos del motor: La configuración de motor.step(1) define el tamaño del paso que el motor hace en cada ciclo del loop. Puedes ajustarlo si necesitas que el motor gire más rápido o más lento.

Pruebas y configuración final:

  1. Verifica los códigos IR: Abre el monitor serial para asegurarte de que los códigos que imprime coinciden con los botones que quieres usar.
  2. Ajusta la velocidad: Usa los botones del control remoto para ajustar la velocidad del motor según tu necesidad.

No te pierdas ningún video más suscríbete a nuestro canal de telegram https://t.me/carlosvolt_electronica_robotica



PROYECTO RECOMENDADO

Deja una respuesta