Domina el Control de Motores DC con Arduino y el Módulo L298N: Guía Fácil y Práctica


Realmente hoy en dia es bastante asequible obtener módulos ya montados que realicen funciones auxiliares como por ejemplo controlar un motor DC normal o pasa a paso, realmente por un precio irrisorio (en nuestro caso por unos 4 € en Amazon ) . Un ejemplo de este tipo de módulos, son los controladores de motor basados en el L298N ,siendo este uno de los controladores de motores mas usados con microcontroladores y microprocesadores .

En efecto el Circuito Integrado (CI) L298N es uno de los controladores de motor más populares entre quienes trabajan con proyectos de robótica, automatización y sistemas embebidos. En la imagen superior puede observarse el módulo real, un conjunto compacto que integra el chip L298N acompañado de un gran disipador de calor. Este disipador es necesario porque el circuito puede manejar corrientes relativamente altas (hasta 2A por canal, dependiendo de la disipación térmica), algo habitual al controlar motores de corriente continua (DC) o motores paso a paso. Gracias a esta capacidad, el módulo resulta ideal para aplicaciones con microcontroladores como Arduino, ESP32 o Raspberry Pi, que por sí mismos no pueden suministrar suficiente corriente para mover motores.

Veamos ahora con mas detalle el esquema electrónico de este circuito:

El diagrama esquemático mostrado ofrece una visión más profunda del funcionamiento interno:

  • U1 (L298N): Es el núcleo del circuito. Contiene dos puentes H completos, lo que permite controlar de forma independiente dos motores DC o un motor paso a paso bipolar. Cada puente H puede invertir la polaridad aplicada al motor, logrando así el cambio de sentido de giro.
  • Entradas IN1–IN4 y ENA/ENB: Estas entradas reciben las señales lógicas desde el microcontrolador. Los pines IN1–IN4 determinan la dirección del giro de los motores, mientras que ENA y ENB (enable) controlan si cada puente está activo. En muchos módulos, ENA y ENB están conectados a jumpers que pueden retirarse si se desea controlar la velocidad mediante una señal PWM.
  • Salidas OUT1–OUT4: Se conectan directamente a los terminales de los motores. Cada par de salidas (OUT1/OUT2 y OUT3/OUT4) corresponde a uno de los dos puentes H del chip.
  • Diodos D1–D8: Actúan como diodos de protección o “flyback”, un elemento esencial cuando se trabaja con cargas inductivas como motores. Su función es disipar los picos de tensión inversa generados al interrumpir la corriente del motor, protegiendo los transistores internos del L298N.
  • U2 (78M05): Es un regulador lineal de voltaje que convierte la tensión de entrada del módulo (por ejemplo, 12 V) en 5 V, alimentando la lógica del L298N y, opcionalmente, otros componentes del sistema. Algunos módulos permiten activar o desactivar esta función mediante un jumper para usar fuentes externas de 5 V.
  • Condensadores y resistencias: Estos componentes auxiliares estabilizan la alimentación y amortiguan los transitorios eléctricos, garantizando un funcionamiento estable y reduciendo interferencias.

Este módulo tiene una fuente de alimentación de 5v incorporada, cuando el voltaje de conducción es de 7v-35v,esta fuente es adecuada para la fuente de alimentación. NO ingrese voltaje a la interfaz de suministro de + 5v, sin embargo, el ledding de 5v para uso externo está disponible. Cuando ENA habilita IN1 IN2 control OUT1 OUT2. Cuando ENB habilita IN3 IN4 control OUT3 OUT4

En conjunto, el esquema y el módulo del L298N ilustran cómo un diseño relativamente sencillo es capaz de combinar potencia y control lógico, ofreciendo una solución robusta y económica para el manejo de motores. Esto lo convierte en un componente indispensable para quienes desarrollan vehículos robóticos, cintas transportadoras, sistemas de control de movimiento o proyectos de automatización casera.

Ejemplo esquema de cableado básico

A continuación vamos a ver a un ejemplo práctico de código Arduino, junto con un pequeño esquema de cableado, para controlar un motor DC usando el módulo controlador L298N. Esta combinación es ideal para proyectos de robótica y automatización que requieren mover motores de forma simple y eficiente.

Conexiones recomendadas entre Arduino, módulo L298N y motor DC:

  • IN1 (L298N) → Pin 7 de Arduino.
  • IN2 (L298N) → Pin 6 de Arduino.
  • ENA (L298N) → Jumper (por defecto, motor a máxima velocidad) o Pin 9 de Arduino si quieres usar PWM para velocidad.
  • OUT1/OUT2 (L298N) → Motor DC.
  • +12V (L298N) → Fuente de 12V para el motor.
  • GND (L298N) → GND de Arduino y de la fuente.
  • 5V (L298N) → No se conecta si tu Arduino ya está alimentado por USB o fuente externa.
   Arduino        L298N           Motor
------- ----- -----
GND ----+--- GND
| +----+
+---(-) Fuente | |
(+) Fuente-----+ M +---- OUT1
M |
OUT2------+
D7 ---------- IN1
D6 ---------- IN2
ENA ---------- Jumper (o D9 si usa PWM)

Ejemplo de código Arduino

El siguiente sketch enciende el motor en un sentido, espera 2 segundos, invierte el sentido durante otros 2 segundos, y repite el ciclo:

cpp// Pines de control
const int IN1 = 7;
const int IN2 = 6;
const int ENA = 9; // Opcional, para velocidad con PWM

void setup() {
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(ENA, OUTPUT);
}

void loop() {
  // Girar motor en un sentido (adelante)
  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);
  analogWrite(ENA, 255); // Velocidad máxima
  delay(2000);

  // Detener motor
  analogWrite(ENA, 0);
  delay(500);

  // Girar motor en sentido contrario (atrás)
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, HIGH);
  analogWrite(ENA, 255); // Velocidad máxima
  delay(2000);

  // Detener motor
  analogWrite(ENA, 0);
  delay(500);
}

Este código básico permite experimentar fácilmente con el control de dirección y velocidad de motores DC usando el L298N y una placa Arduino. Puedes ajustar el pin ENA y el valor de analogWrite para regular la velocidad mediante modulación por ancho de pulso (PWM), retirando el jumper si lo tuviese puesto.​

Primeros pasos con Meshtastic


Compramos un módulo compatible con Meshtastic, como el popular Heltec LoRa v3, instalamos la app y… ¡sorpresa!
En lugar de la interfaz normal con opciones de radio, usuario y red, solo aparece el botón «Cerrar».
Aunque la app detecta el dispositivo por Bluetooth, algo falla: hay un problema de comunicación o configuración que impide acceder al menú habitual y, por tanto, no podemos usar el nodo.

No te preocupes, este error es muy común y tiene solución. A continuación te explico cómo resolverlo paso a paso.

1. Verifica el firmware

En el 99,9% de los casos, el problema se debe a que el módulo no tiene instalado el firmware oficial de Meshtastic o está desactualizado.
Para solucionarlo, simplemente flashea el firmware correcto desde la web oficial:
👉 https://flasher.meshtastic.org/

Más abajo te explicamos cómo hacerlo detalladamente.

2. Reinicia ambos dispositivos

Apaga y enciende el módulo Heltec y reinicia también la app en tu móvil.
A veces, un simple reinicio soluciona los errores de conexión entre Bluetooth y el microcontrolador.

3. Elimina emparejamientos Bluetooth previos

En los ajustes Bluetooth del teléfono, olvida o elimina la conexión anterior con tu módulo Heltec.
Esto evita conflictos con configuraciones antiguas o perfiles corruptos.

4. Prueba otra versión de la app

Algunas versiones de la app Meshtastic (Android o iOS) pueden tener errores específicos según el modelo.
Si el fallo persiste, prueba con una versión más reciente o incluso con una versión anterior estable.

5. Reinstala la app

Desinstala y vuelve a instalar la aplicación Meshtastic desde tu tienda oficial.
Esto corrige posibles problemas en la instalación o permisos del sistema.

6. Flashea el firmware Meshtastic oficial

Si tu módulo es nuevo, debes flashear el firmware oficial de Meshtastic antes de intentar conectarlo.
Una vez instalado, sigue estos pasos:

  1. Conecta el módulo al ordenador.
  2. Abre Meshtastic Web Flasher.
  3. Selecciona el puerto correspondiente y tu modelo (por ejemplo, Heltec LoRa 32 V3).
  4. Pulsa Flash y espera a que finalice el proceso.
  5. Desconecta y reinicia el módulo.

Después de esto, el dispositivo estará listo para emparejarse con la app.

7. Conecta y configura el nodo

Con el firmware correcto instalado:

  1. Enciende el módulo Heltec.
  2. Abre la app Meshtastic y activa Bluetooth en tu móvil.
  3. Busca el dispositivo (aparecerá como Heltec LoRa 32 Automation o similar).
  4. Conéctalo usando el PIN 123456 (por defecto).
  5. Configura la región (frecuencia para Europa, América, etc.) y el canal Mesh.
  6. Guarda los cambios y ¡listo! Tu nodo ya forma parte de la red Mesh.

Si aún aparece el botón “Cerrar”

Si la app sigue mostrando solo la opción Cerrar, revisa lo siguiente:

  • Asegúrate de que el firmware es la versión oficial y actualizada.
  • Comprueba que el módulo no esté conectado por WiFi, ya que Meshtastic solo usa Bluetooth en este modo.
  • Prueba con otro teléfono o app para descartar problemas de compatibilidad.

Ayuda de la comunidad

En los foros y grupos de Reddit o Facebook de Meshtastic hay muchos usuarios con experiencias similares.
Allí puedes encontrar soluciones específicas según tu modelo y versión de firmware.

Resumen

En la mayoría de los casos, el error del botón «Cerrar» se soluciona flasheando el firmware oficial Meshtastic y conectando el módulo desde cero. Después de eso, podrás configurar región, canal y comenzar a usar tu dispositivo en la red Mesh sin problemas.

Configuracion paso a paso

Veamos ahora como preparar el módulo es el Heltec LoRa 32 de la serie Automation, para conectarte con la app Meshtastic y usar Bluetooth para crear el nodo mesh. Para ello debemos considerar estos pasos:

    1. Nos vamos a https://flasher.meshtastic.org/ y seleccionamos el modulo correcto.

    Ahora seleccionamos el firmware. Recomiendo usar la ultima versión Beta.

    Ahora llega la hora de las advertencias previas al flasheo.

    Y haremos scroll hasta que finalmente podamos pulsar en el botón «Continuar»

    Ahora, si esta conectado por USB al ordenador el módulo , y el driver de éste esta instalado, debería aparecer en la lista de puertos serie ( sino apareciese en la pagina oficial se pueden descargar https://meshtastic.org/docs/getting-started/serial-drivers/)

    Seleccionamos la tercera opción (COM8 en nuestro caso, es decir en la opción que ponga USB to UART Bridge Controller)

    Es interesante seccionar la màxima velocidad y no nos olvidemos de desplazar el interruptor de flashear firmware hacia la derecha.

    Pulsamos borrar memoria e instalar y comenzara el proceso de flasheo el modulo

    Como el modulo esta basado en un ESP32 observes que va escribiendo en diferentes zonas de memoria como se haría desde el interfaz de un Arduino

    Una vez terminado el proceso se reiniciara y ya tendremos el modulo disponible para sincronizarlo desde la app por bluetooth a un telefono y desde este crear el nodo Mesh

    Cómo conectar y configurar tu módulo Heltec LoRa 32 con la app Meshtastic para crear un nodo mesh

    Si has adquirido un módulo Heltec LoRa 32 y quieres usarlo con la app Meshtastic para crear tu propia red mesh, este tutorial te guiará paso a paso para establecer la conexión vía Bluetooth y configurar el nodo para enviar y recibir mensajes.

    Primeros pasos: encender y conectar tu módulo Heltec LoRa 32

    1. Alimenta y enciende tu módulo Heltec LoRa 32, ya sea mediante USB o batería. Asegúrate de tener instalado el último firmware compatible con Meshtastic, tal como vimos en la guía anterior.
    2. Abre la app Meshtastic en tu teléfono móvil (Android o iOS).
    3. En la app, utiliza la opción para escanear dispositivos Bluetooth. Verifica que el Bluetooth de tu teléfono esté activo.
    4. Debes buscar tu módulo, que aparecerá con un nombre similar a «Heltec LoRa 32 V3» o algo relacionado.
    5. Selecciona el dispositivo y, cuando la app lo solicite, introduce el PIN que aparecerá en la pantalla de tu módulo (usualmente es un código corto que muestra el dispositivo).
    6. Tras emparejar, configura la región y el canal para que el nodo se integre correctamente en la red mesh con otros dispositivos. Es esencial que todos los nodos usen la misma frecuencia y región.
    7. Guarda la configuración. En caso necesario, reinicia tu módulo para aplicar los cambios.

    En caso de que no veas el dispositivo en la app, confirma que tu módulo tiene correctamente flasheado el firmware Meshtastic mediante el Meshtastic Web Flasher y que el Bluetooth está activo. La versión V3 utiliza el ESP32-S3 con Bluetooth 5 LE, por lo que es imprescindible que el firmware sea el oficial y actualizado.

    Configuración avanzada: opciones clave en Meshtastic para enviar y recibir mensajes

    Para que tu Heltec LoRa 32 funcione correctamente como nodo capaz de enviar y recibir mensajes en la red mesh, debes prestar atención a tres secciones principales dentro de la configuración de la app Meshtastic: LoRa (radio), Canales y Seguridad.

    1. LoRa (Radio)

    • Selecciona la región de frecuencia adecuada para tu zona geográfica. En Europa, normalmente se utiliza EU_868 (868 MHz), asegurando compatibilidad con la legislación local.
    • En las opciones avanzadas podrás elegir entre:
    • Long range: prioriza mayor alcance a costa de velocidad.
    • Fast: prioriza mayor velocidad con menor alcance.
    • Para la mayoría de aplicaciones de mensajería mesh se recomienda usar long range para mayor cobertura.
    • Otras opciones importantes:
    • Transmisión activa debe estar activada para que el nodo retransmita mensajes y forme parte del mesh.
    • Número de hops (saltos) establece cuántas retransmisiones puede hacer un mensaje. Un valor de 3 es equilibrado para pequeñas redes.
    • Rx boosted gain aumenta la sensibilidad del receptor para captar señales débiles y es recomendable tenerlo activado.

    2. Canales

    • Los nodos deben compartir exactamente el mismo canal para comunicarse.
    • El canal define las frecuencias y parámetros de la red mesh.
    • Puedes usar el canal por defecto, llamado «longfast«, o crear un canal nuevo con los parámetros personalizados que necesites (nombre, región, velocidad, frecuencia).

    3. Seguridad

    • Debes configurar una clave de red (network key) común para todos los nodos.
    • Esta clave asegura que solo los dispositivos autorizados formen parte de la red y mantengan la confidencialidad del intercambio de mensajes.
    • Puedes conservar la clave por defecto para pruebas, pero se recomienda crear una clave personalizada si quieres seguridad.

    Crear y compartir un canal nuevo en Meshtastic

    Si deseas un canal personalizado para tu red mesh, sigue estos pasos:

    1. Conecta tu nodo vía Bluetooth a la app Meshtastic.
    2. Accede a Configuración > Canales.
    3. Pulsa en el botón para añadir un canal nuevo.
    4. Configura:
    • El nombre del canal (por ejemplo, «MiRedMesh»).
    • La región correcta para tu país (ejemplo: «EU_868»).
    • El ajuste de velocidad (long range o fast).
    • El slot de frecuencia, que puede quedar con el valor por defecto.
    1. Guarda y selecciona el nuevo canal para que el nodo lo utilice.
    2. Repite exactamente esta configuración en los otros nodos que quieres que se comuniquen, incluyendo nombre, región y parámetros.
    3. Asegúrate también de usar la misma clave de seguridad en todos los dispositivos.

    Puede que sea necesario reiniciar el dispositivo para que los cambios se apliquen correctamente.

    Resumen rápido

    • Enciende y conecta tu Heltec LoRa 32 vía Bluetooth con la app Meshtastic.
    • Configura la región, canal y clave de seguridad idénticos en todos los nodos que participen de la red.
    • Ajusta las opciones avanzadas de LoRa para equilibrar alcance y velocidad según tus necesidades.
    • Para crear un canal personalizado, configura y comparte el mismo en todos los nodos.

    Con estos pasos podrás crear una red mesh funcional para enviar y recibir mensajes entre teléfonos y módulos Heltec LoRa 32 con Meshtastic, aprovechando la potencia de LoRa para comunicaciones de largo alcance y bajo consumo.