        <style>
            #donation_buttons td{
                border:medium none;
                background: inherit !important;
            }
            #donation_buttons table{               
                border:medium none;
                margin: auto;
                width: auto;
            }
        </style>
        {"id":7783,"date":"2024-09-30T01:39:15","date_gmt":"2024-09-30T01:39:15","guid":{"rendered":"https:\/\/rogerbit.com\/wprb\/?p=7783"},"modified":"2024-09-30T01:39:15","modified_gmt":"2024-09-30T01:39:15","slug":"motor-paso-a-paso-x-infrarrojo","status":"publish","type":"post","link":"https:\/\/rogerbit.com\/wprb\/2024\/09\/motor-paso-a-paso-x-infrarrojo\/","title":{"rendered":"Control de motor paso a paso x infrarrojo con control de velocidad"},"content":{"rendered":"<p><iframe loading=\"lazy\" title=\"Control de motor paso a paso x infrarrojo con control de velocidad - PCBWay.es\" width=\"1160\" height=\"653\" src=\"https:\/\/www.youtube.com\/embed\/7gaL8bGz6yY?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<hr \/>\n<p>En este proyecto, aprenderemos a controlar un motor paso a paso 28BYJ-48 utilizando un control remoto infrarrojo y un Arduino. El motor podr\u00e1 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\u00e1mbrico y preciso de un motor paso a paso, como en robots, c\u00e1maras, o sistemas de automatizaci\u00f3n.<\/p>\n<hr \/>\n<p style=\"text-align: left;\">Tal vez pueda interesarte proyectos en arduino, pic, rob\u00f3tica, telecomunicaciones, suscribete en\u00a0<a href=\"http:\/\/www.youtube.com\/user\/carlosvolt?sub_confirmation=1\">http:\/\/www.youtube.com\/user\/carlosvolt?sub_confirmation=1<\/a>\u00a0mucho videos con c\u00f3digo fuentes completos y diagramas<\/p>\n<p style=\"text-align: left;\"><div id=\"ubm-banners-rotation-n1\" data-interval=\"4000\" class=\"ubm_banners_rotation\" style=\"overflow: hidden; width: 200px; height: 150px;\"><div id=\"3_ubm_banner\" class=\"ubm_rotating_banner\"><a href=\"https:\/\/bit.ly\/3aXRDAu\" target=\"_blank\" rel=\"dofollow\"><img src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/useful_banner_manager_banners\/3-2-logo youtube.png\" width=\"100%\" height=\"100%\" alt=\"SUSCRIBETE A NUESTRO CANAL DE YOUTUBE, TUTORIALES GRATIS\" \/><\/a><\/div><\/div><\/p>\n<hr \/>\n<p>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\u00e1cilmente desde un microcontrolador como el Arduino. Adem\u00e1s, empleamos la librer\u00eda <strong>IRremote<\/strong> para recibir las se\u00f1ales infrarrojas del control remoto, lo que nos permite manejar el motor de manera inal\u00e1mbrica y sin botones f\u00edsicos.<\/p>\n<p>En este proyecto, implementamos los siguientes controles:<\/p>\n<ul>\n<li><strong>Giro a la derecha<\/strong>: Presionando un bot\u00f3n espec\u00edfico, el motor girar\u00e1 continuamente en la direcci\u00f3n de las agujas del reloj hasta que se env\u00ede otro comando.<\/li>\n<li><strong>Giro a la izquierda<\/strong>: Con otro bot\u00f3n, el motor girar\u00e1 en sentido contrario.<\/li>\n<li><strong>Parada<\/strong>: Un tercer bot\u00f3n detendr\u00e1 el motor.<\/li>\n<li><strong>Ajuste de velocidad<\/strong>: Se puede aumentar o disminuir la velocidad del motor en un rango de 1 a 10 utilizando dos botones adicionales del control remoto.<\/li>\n<\/ul>\n<p>Durante el proyecto, utilizamos el monitor serial del Arduino para mostrar el c\u00f3digo infrarrojo recibido, lo que nos permite identificar f\u00e1cilmente los botones de control y verificar su funcionamiento. Este proyecto es modular y permite ajustes seg\u00fan las necesidades del usuario, como cambiar la velocidad m\u00e1xima o ajustar los c\u00f3digos del control remoto.<\/p>\n<hr \/>\n<h3><strong>Componentes electr\u00f3nicos<\/strong><\/h3>\n<h3>Arduino mini pro<\/h3>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/09\/arduino_mini_pro.jpg\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-4993\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/09\/arduino_mini_pro.jpg\" sizes=\"(max-width: 600px) 100vw, 600px\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/09\/arduino_mini_pro.jpg 600w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/09\/arduino_mini_pro-150x150.jpg 150w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/09\/arduino_mini_pro-300x300.jpg 300w\" alt=\"\" width=\"600\" height=\"600\" \/><\/a><\/p>\n<p>El\u00a0<strong>Arduino Pro Mini<\/strong>\u00a0es una placa de microcontrolador basada en el\u00a0\u00a0<a href=\"http:\/\/www.atmel.com\/Images\/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet.pdf\" target=\"_blank\" rel=\"noopener\">ATmega328<\/a>\u00a0.<br \/>\nTiene 14 pines de entrada \/ salida digital (de los cuales 6 se pueden usar como salidas PWM), 6 entradas anal\u00f3gicas, un resonador integrado, un bot\u00f3n de reinicio y orificios para montar encabezados de pines.\u00a0Se puede conectar un encabezado de seis pines a un cable FTDI o una placa de conexi\u00f3n Sparkfun para proporcionar alimentaci\u00f3n USB y comunicaci\u00f3n a la placa.<br \/>\nEl Arduino Pro Mini est\u00e1 dise\u00f1ado para su instalaci\u00f3n 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\u00f1o del pin es compatible con el Arduino Mini.<br \/>\nHay dos versiones del Pro Mini.\u00a0Uno corre a 3.3V y 8 MHz, el otro a 5V y 16 MHz.<\/p>\n<table>\n<tbody>\n<tr>\n<td>Microcontrolador<\/td>\n<td>ATmega328 *<\/td>\n<\/tr>\n<tr>\n<td>Fuente de alimentaci\u00f3n de la placa<\/td>\n<td>3,35-12 V (modelo de 3,3 V) o 5-12 V (modelo de 5 V)<\/td>\n<\/tr>\n<tr>\n<td>Voltaje de funcionamiento del circuito<\/td>\n<td>3.3V o 5V (dependiendo del modelo)<\/td>\n<\/tr>\n<tr>\n<td>Pines de E \/ S digitales<\/td>\n<td>14<\/td>\n<\/tr>\n<tr>\n<td>Pines PWM<\/td>\n<td>6 6<\/td>\n<\/tr>\n<tr>\n<td>UART<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>SPI<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>I2C<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>Pines de entrada anal\u00f3gica<\/td>\n<td>6 6<\/td>\n<\/tr>\n<tr>\n<td>Interrupciones externas<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>Corriente CC por pin de E \/ S<\/td>\n<td>40 mA<\/td>\n<\/tr>\n<tr>\n<td>Memoria flash<\/td>\n<td>32 KB de los cuales 2 KB utilizados por el gestor de arranque *<\/td>\n<\/tr>\n<tr>\n<td>SRAM<\/td>\n<td>2 KB *<\/td>\n<\/tr>\n<tr>\n<td>EEPROM<\/td>\n<td>1 KB *<\/td>\n<\/tr>\n<tr>\n<td>Velocidad de reloj<\/td>\n<td>8 MHz (versiones de 3.3V) o 16 MHz (versiones de 5V)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>Pines hembra<\/h4>\n<p><img loading=\"lazy\" class=\"alignnone size-large wp-image-6689\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/12\/hembrapin.jpg\" sizes=\"(max-width: 225px) 100vw, 225px\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/12\/hembrapin.jpg 225w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/12\/hembrapin-150x150.jpg 150w\" alt=\"\" width=\"225\" height=\"225\" \/><\/p>\n<hr \/>\n<p><strong>Z\u00f3calo para arduino nano<\/strong><\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-6895\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2022\/06\/zocalo.jpg\" sizes=\"(max-width: 320px) 100vw, 320px\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2022\/06\/zocalo.jpg 320w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2022\/06\/zocalo-300x225.jpg 300w\" alt=\"\" width=\"320\" height=\"240\" \/><\/p>\n<hr \/>\n<p><strong>M\u00f3dulo receptor infrarrojo ky-022<\/strong><\/p>\n<div class=\"google-auto-placed ap_container\">\n<p><img loading=\"lazy\" class=\"alignnone wp-image-6406\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/ky-022.jpg\" sizes=\"(max-width: 293px) 100vw, 293px\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/ky-022.jpg 800w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/ky-022-300x300.jpg 300w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/ky-022-150x150.jpg 150w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/05\/ky-022-768x768.jpg 768w\" alt=\"\" width=\"293\" height=\"293\" \/><\/p>\n<p>Tama\u00f1o: 6.4 * 7.4 * 5.1MM, \u00e1ngulo de aceptaci\u00f3n 90 \u00b0, voltaje de trabajo 2.7-5.5V.<br \/>\nFrecuencia 37.9KHZ, recibiendo la distancia 18 m.<\/p>\n<p>Rechazo de luz diurna hasta 500LUX, capacidad de interferencia electromagn\u00e9tica, IC dedicado de infrarrojos incorporado.<br \/>\nAmpliamente utilizado: est\u00e9reo, TV, VCR, CD, decodificadores, marco de fotos digital, audio para el autom\u00f3vil, juguetes de control remoto, receptores de sat\u00e9lite, disco duro, aire acondicionado, calefacci\u00f3n, ventiladores, iluminaci\u00f3n y otros electrodom\u00e9sticos.<\/p>\n<p>Pinout:<\/p>\n<p>1 \u2026. GND (-)<\/p>\n<p>2 \u2026. + 5V<\/p>\n<p>3 \u2026. Salida (S)<\/p>\n<\/div>\n<hr \/>\n<p><strong>Motor paso a paso 28BYJ-48<\/strong><\/p>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/07\/mpap.jpg\"><img loading=\"lazy\" class=\"alignnone wp-image-5724\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/07\/mpap.jpg\" sizes=\"(max-width: 305px) 100vw, 305px\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/07\/mpap.jpg 867w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/07\/mpap-300x241.jpg 300w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/07\/mpap-768x617.jpg 768w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/07\/mpap-600x482.jpg 600w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/07\/mpap-820x659.jpg 820w\" alt=\"\" width=\"305\" height=\"245\" \/><\/a><\/p>\n<p><strong>Los par\u00e1metros de este motor paso a paso son:<\/strong><\/p>\n<ul>\n<li>Modelo: 28BYJ-48 \u2013 5V<\/li>\n<li>Tensi\u00f3n nominal: 5V (o 12 V, valor indicado en la parte trasera).<\/li>\n<li>Cantidad de fases: 4.<\/li>\n<li>Reductor de velocidad: 1\/64<\/li>\n<li>\u00c1ngulo de paso: 5,625\u00b0 \/ 64<\/li>\n<li>Frecuencia: 100Hz<\/li>\n<li>Resistencia en CC: 50\u03a9 \u00b17 % (25\u00b0 C)<\/li>\n<li>Frecuencia con tracci\u00f3n: &gt; 600Hz<\/li>\n<li>Frecuencia sin tracci\u00f3n: &gt; 1000Hz<\/li>\n<li>Torque con tracci\u00f3n: &gt;34,3mN.m (120Hz)<\/li>\n<li>Torque en autoposicionamiento: &gt;34,3mN.m<\/li>\n<li>Torque con fricci\u00f3n: 600-1200 gf.cm<\/li>\n<li>Arrastre en torque: 300 gf.cm<\/li>\n<li>Resistencia de aislaci\u00f3n &gt; 10M\u03a9 (500V)<\/li>\n<li>Aislaci\u00f3n el\u00e9ctrica: 600VAC\/1mA\/1s<\/li>\n<li>Grado de aislaci\u00f3n: A<\/li>\n<li>Aumento de temperatura: &lt; 40K (120Hz)<\/li>\n<li>Ruido: &lt; 35dB (120Hz, sin carga, 10cm)<\/li>\n<\/ul>\n<p><strong>ULN2003APG<\/strong><\/p>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/07\/uln2003a_pinout.jpg\"><img loading=\"lazy\" class=\"alignnone wp-image-5725\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/07\/uln2003a_pinout.jpg\" sizes=\"(max-width: 225px) 100vw, 225px\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/07\/uln2003a_pinout.jpg 500w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/07\/uln2003a_pinout-150x150.jpg 150w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/07\/uln2003a_pinout-300x300.jpg 300w\" alt=\"\" width=\"225\" height=\"225\" \/><\/a><\/p>\n<p><strong>Especificaciones principales:<\/strong><\/p>\n<ul>\n<li>500 mA de corriente de colector nominal (de salida \u00fanica)<\/li>\n<li>50 V de salida (hay una versi\u00f3n que soporta 100 V de salida)<\/li>\n<li>Incluye diodos de retorno de salida<\/li>\n<li>Entradas compatibles con\u00a0TTL\u00a0y 5-V\u00a0CMOS\u00a0l\u00f3gica<\/li>\n<\/ul>\n<hr \/>\n<p><strong>Control remoto x infrarrojo<\/strong><\/p>\n<p><img loading=\"lazy\" class=\"alignnone wp-image-7787 size-medium\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/09\/cremot-300x300.jpg\" alt=\"\" width=\"300\" height=\"300\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/09\/cremot-300x300.jpg 300w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/09\/cremot-1024x1024.jpg 1024w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/09\/cremot-150x150.jpg 150w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/09\/cremot-768x768.jpg 768w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/09\/cremot-820x820.jpg 820w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/09\/cremot.jpg 1200w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<div class=\"google-auto-placed ap_container\">\n<hr \/>\n<p><strong>PCB<\/strong><\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-7078\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2022\/10\/pcb.png\" sizes=\"(max-width: 387px) 100vw, 387px\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2022\/10\/pcb.png 387w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2022\/10\/pcb-244x300.png 244w\" alt=\"\" width=\"387\" height=\"475\" \/><\/p>\n<p>Descargar archivo gerber \u2013&gt;\u00a0<a href=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2023\/04\/pcb-alarma-ir.zip\">pcb alarma ir<\/a><\/p>\n<\/div>\n<hr \/>\n<p><strong>Circuito<\/strong><\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-large wp-image-7785\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/09\/circuito-1-1024x491.jpg\" alt=\"\" width=\"1024\" height=\"491\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/09\/circuito-1-1024x491.jpg 1024w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/09\/circuito-1-300x144.jpg 300w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/09\/circuito-1-768x368.jpg 768w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/09\/circuito-1-1536x736.jpg 1536w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/09\/circuito-1-2048x981.jpg 2048w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2024\/09\/circuito-1-820x393.jpg 820w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<hr \/>\n<h3><strong>Esquema de conexi\u00f3n:<\/strong><\/h3>\n<ol>\n<li>Conecta los 4 pines del motor a las salidas del driver ULN2003. Estas suelen ser los pines <strong>IN1, IN2, IN3 e IN4<\/strong>.<\/li>\n<li>Conecta los pines <strong>IN1<\/strong> a <strong>D6<\/strong>, <strong>IN2<\/strong> a <strong>D7<\/strong>, <strong>IN3<\/strong> a <strong>D8<\/strong>, e <strong>IN4<\/strong> a <strong>D9<\/strong>\u00a0en la placa Arduino.<\/li>\n<li>Conecta el pin de <strong>se\u00f1al<\/strong> del receptor IR al pin <strong>D2<\/strong> del Arduino.<\/li>\n<li>Conecta la alimentaci\u00f3n y la tierra del motor y el receptor IR a <strong>5V<\/strong> y <strong>GND<\/strong> respectivamente.<\/li>\n<\/ol>\n<h3><strong>Instalaci\u00f3n de librer\u00edas:<\/strong><\/h3>\n<ol>\n<li><strong>IRremote<\/strong>: Esta librer\u00eda se utiliza para recibir se\u00f1ales infrarrojas del control remoto. Para instalarla, abre el IDE de Arduino y ve a <strong>Sketch &gt; Incluir Librer\u00eda &gt; Administrar Bibliotecas<\/strong>. Busca &#8220;IRremote&#8221; e inst\u00e1lala.<\/li>\n<li><strong>Stepper<\/strong>: Es una librer\u00eda est\u00e1ndar que ya viene incluida en el IDE de Arduino, por lo que no necesitas instalar nada adicional para controlar el motor.<\/li>\n<\/ol>\n<hr \/>\n<pre class=\"lang:default decode:true \" title=\"C\u00f3digo Fuente\">#include &lt;IRremote.h&gt;\r\n#include &lt;Stepper.h&gt;\r\n\/\/ Pines del motor paso a paso\r\n#define IN1 6\r\n#define IN2 7\r\n#define IN3 8\r\n#define IN4 9\r\n\/\/ Configuraci\u00f3n del motor\r\nconst int pasosPorRevolucion = 2048; \/\/ Pasos para una revoluci\u00f3n completa\r\nStepper motor(pasosPorRevolucion, IN1, IN3, IN2, IN4);\r\n\/\/ Pines del receptor IR\r\nconst int receptorIR = 2;\r\n\/\/ Variables para el control remoto\r\nIRrecv irrecv(receptorIR);\r\ndecode_results resultados;\r\n\/\/ C\u00f3digos IR para las funciones (ajusta estos c\u00f3digos seg\u00fan tu control remoto)\r\nunsigned long codigoDerecha = 0x7EC31EF7; \/\/ Cambia estos c\u00f3digos por los de tu control\r\nunsigned long codigoIzquierda = 0xC101E57B;\r\nunsigned long codigoStop = 0x5B83B61B;\r\nunsigned long codigoAumentarVelocidad = 0xF63C8657; \/\/ C\u00f3digo para aumentar la velocidad\r\nunsigned long codigoDisminuirVelocidad = 0x2A89195F; \/\/ C\u00f3digo para disminuir la velocidad\r\n\/\/ Variables de control\r\nenum EstadoMotor { PARADO, GIRANDO_DERECHA, GIRANDO_IZQUIERDA };\r\nEstadoMotor estadoActual = PARADO;\r\nint velocidad = 6; \/\/ Velocidad inicial, valor entre 1 y 12\r\nvoid setup() {\r\n  Serial.begin(9600);\r\n  irrecv.enableIRIn(); \/\/ Iniciar receptor IR\r\n  motor.setSpeed(velocidad); \/\/ Ajusta la velocidad inicial del motor\r\n}\r\nvoid loop() {\r\n  \/\/ Leer se\u00f1al del control remoto\r\n  if (irrecv.decode(&amp;resultados)) {\r\n    unsigned long codigo = resultados.value;\r\n    Serial.print(\"C\u00f3digo IR recibido: \");\r\n    Serial.println(codigo, HEX); \/\/ Mostrar el c\u00f3digo en hexadecimal    \r\n    if (codigo == codigoDerecha) {\r\n      estadoActual = GIRANDO_DERECHA;\r\n      Serial.println(\"Cambiar a giro hacia la derecha\");\r\n    } else if (codigo == codigoIzquierda) {\r\n      estadoActual = GIRANDO_IZQUIERDA;\r\n      Serial.println(\"Cambiar a giro hacia la izquierda\");\r\n    } else if (codigo == codigoStop) {\r\n      estadoActual = PARADO;\r\n      Serial.println(\"Detener motor\");\r\n    } else if (codigo == codigoAumentarVelocidad) {\r\n      cambiarVelocidad(true); \/\/ Aumentar velocidad\r\n    } else if (codigo == codigoDisminuirVelocidad) {\r\n      cambiarVelocidad(false); \/\/ Disminuir velocidad\r\n    }\r\n    irrecv.resume(); \/\/ Preparar el receptor para la pr\u00f3xima se\u00f1al\r\n  }\r\n  \/\/ Ejecutar acci\u00f3n seg\u00fan el estado actual\r\n  switch (estadoActual) {\r\n    case GIRANDO_DERECHA:\r\n      motor.step(1); \/\/ Mover en pasos peque\u00f1os en direcci\u00f3n derecha\r\n      break;\r\n    case GIRANDO_IZQUIERDA:\r\n      motor.step(-1); \/\/ Mover en pasos peque\u00f1os en direcci\u00f3n izquierda\r\n      break;\r\n    case PARADO:\r\n      \/\/ No hacer nada, el motor est\u00e1 detenido\r\n      break;\r\n  }\r\n}\r\nvoid cambiarVelocidad(bool aumentar) {\r\n  if (aumentar &amp;&amp; velocidad &lt; 12) {\r\n    velocidad++;\r\n    Serial.print(\"Aumentar velocidad: \");\r\n  } else if (!aumentar &amp;&amp; velocidad &gt; 1) {\r\n    velocidad--;\r\n    Serial.print(\"Disminuir velocidad: \");\r\n  }\r\n  motor.setSpeed(velocidad); \/\/ Actualizar velocidad del motor\r\n  Serial.println(velocidad);\r\n}<\/pre>\n<hr \/>\n<h3><strong>Explicaci\u00f3n del c\u00f3digo:<\/strong><\/h3>\n<ol>\n<li><strong>Control por infrarrojo:<\/strong> El receptor IR recibe las se\u00f1ales del control remoto, y el c\u00f3digo IR se imprime en el monitor serial para verificar que es el correcto.<\/li>\n<li><strong>Giro del motor:<\/strong> Dependiendo del bot\u00f3n que se presiona en el control, el motor gira hacia la derecha o la izquierda. Tambi\u00e9n se puede detener con el bot\u00f3n correspondiente.<\/li>\n<li><strong>Control de velocidad:<\/strong> Hay dos botones configurados para aumentar o disminuir la velocidad del motor en un rango de 1 a 10.<\/li>\n<li><strong>M\u00e1quina de estados:<\/strong> El motor est\u00e1 en uno de los tres estados: <strong>PARADO<\/strong>, <strong>GIRANDO_DERECHA<\/strong>, o <strong>GIRANDO_IZQUIERDA<\/strong>, y act\u00faa seg\u00fan el estado actual.<\/li>\n<\/ol>\n<h3><strong>Ajustes adicionales:<\/strong><\/h3>\n<ol>\n<li><strong>C\u00f3digos IR:<\/strong> Si los c\u00f3digos proporcionados no coinciden con los de tu control remoto, puedes identificarlos abriendo el monitor serial y presionando los botones del control.<\/li>\n<li><strong>Velocidad del motor:<\/strong> Si necesitas ajustar la velocidad del motor, puedes cambiar la variable <code>velocidad<\/code> entre 1 (m\u00ednima) y 10 (m\u00e1xima).<\/li>\n<li><strong>Pasos del motor:<\/strong> La configuraci\u00f3n de <code>motor.step(1)<\/code> define el tama\u00f1o del paso que el motor hace en cada ciclo del <code>loop<\/code>. Puedes ajustarlo si necesitas que el motor gire m\u00e1s r\u00e1pido o m\u00e1s lento.<\/li>\n<\/ol>\n<h3><strong>Pruebas y configuraci\u00f3n final:<\/strong><\/h3>\n<ol>\n<li><strong>Verifica los c\u00f3digos IR:<\/strong> Abre el monitor serial para asegurarte de que los c\u00f3digos que imprime coinciden con los botones que quieres usar.<\/li>\n<li><strong>Ajusta la velocidad:<\/strong> Usa los botones del control remoto para ajustar la velocidad del motor seg\u00fan tu necesidad.<\/li>\n<\/ol>\n<hr \/>\n<p>No te pierdas ning\u00fan video m\u00e1s suscr\u00edbete a nuestro canal de telegram\u00a0<a href=\"https:\/\/t.me\/carlosvolt_electronica_robotica\">https:\/\/t.me\/carlosvolt_electronica_robotica<\/a><\/p>\n<hr \/>\n<div class=\"page-sidebar widget\" id=\"donation_buttons\"><form action=\"https:\/\/www.paypal.com\/cgi-bin\/webscr\" method=\"post\" target=\"_blank\" ><input type=\"hidden\" name=\"business\" value=\"donacion@rogerbit.com\"><input type=\"hidden\" name=\"bn\" value=\"mbjtechnolabs_SP\"><input type=\"hidden\" name=\"cmd\" value=\"_donations\"><input type=\"hidden\" name=\"item_name\" value=\"Ayuda a RogerBit.com\"><input type=\"hidden\" name=\"item_number\" value=\"www.rogerbit.com\"><input type=\"hidden\" class=\"set_donation_button_amount\" name=\"amount\" value=\"1\"><table ><tbody><tr><td><label for=\"rogerBit necesita de tu ayuda para seguir existiendo :-)\">rogerBit necesita de tu ayuda para seguir existiendo :-)<\/label><\/td><\/tr><\/tbody><\/table><table ><tbody><tr><td><input style=\"margin-top:10px;\" type=\"image\" name=\"submit\" border=\"0\" src=\"https:\/\/www.paypal.com\/en_US\/i\/btn\/btn_donateCC_LG.gif\" alt=\"PayPal - The safer, easier way to pay online\"><\/td><\/tr><\/tbody><\/table><input type=\"hidden\" name=\"currency_code\" value=\"USD\"><input type=\"hidden\" name=\"notify_url\" value=\"https:\/\/rogerbit.com\/wprb\/?Donation_Button&#038;action=ipn_handler\"><\/form><\/div>\n<hr \/>\n<p><strong>PROYECTO RECOMENDADO<\/strong><\/p>\n<p><iframe loading=\"lazy\" title=\"Control de motor paso a paso x bluetooth y app (Incluye circuito impreso) - PCBWay.es\" width=\"1160\" height=\"653\" src=\"https:\/\/www.youtube.com\/embed\/NSvdPTcOvQY?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>En este proyecto, aprenderemos a controlar un motor paso a paso 28BYJ-48 utilizando un control remoto infrarrojo y un Arduino. El motor podr\u00e1 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\u00e1mbrico y preciso de un motor [&hellip;]<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":7786,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[11],"tags":[530,45,330,2018,1985,1217,624,2019,380,527,1924,1458,83,2017,2016],"_links":{"self":[{"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/posts\/7783"}],"collection":[{"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/comments?post=7783"}],"version-history":[{"count":1,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/posts\/7783\/revisions"}],"predecessor-version":[{"id":7788,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/posts\/7783\/revisions\/7788"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/media\/7786"}],"wp:attachment":[{"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/media?parent=7783"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/categories?post=7783"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/tags?post=7783"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}