Logo de Sermanitas

SERMANITAS

Receptor ESP32 con driver L298N

📄 Descargar PDF del proyecto

Segunda parte del sistema de control remoto del robot. El M5Stack Core S3 envía los valores normalizados A y B mediante ESP‑NOW, y el ESP32 controla los motores a través del driver L298N usando PWM a 20 kHz para un movimiento suave y preciso.

Material necesario

Esquema del sistema

Esquema completo del sistema

El Core S3 envía los valores A y B mediante ESP‑NOW. El ESP32‑S3 recibe los datos y controla el driver L298N. Cada motor usa dos pines de dirección y un pin PWM.

Códigos del proyecto

Descarga aquí los códigos del emisor (Core S3) y del receptor (ESP32 + L298N).

Montaje real del sistema

Montaje real del receptor ESP32 con L298N Conexión real del driver L298N a la placa Freenove

Montaje real con la placa Freenove ESP32‑S3, el driver L298N y la pantalla del receptor mostrando los valores recibidos del joystick.

Paso a paso

1. Configurar ESP‑NOW en el receptor

El ESP32 debe inicializarse en modo estación (WIFI_STA) para poder recibir paquetes ESP‑NOW. Una vez activado el protocolo, se registra un callback que se ejecuta automáticamente cada vez que el emisor envía datos. El Core S3 envía un struct con dos valores: A (velocidad) y B (giro). El receptor solo escucha y actualiza los motores en tiempo real. Si ESP‑NOW no está correctamente inicializado, el robot no recibirá los valores del joystick.

2. Conectar el driver L298N al ESP32

El L298N permite controlar dos motores DC mediante señales digitales. Cada motor utiliza dos pines de dirección y un pin PWM. En este proyecto usamos: IN1 (GPIO 26), IN2 (GPIO 27), ENA (GPIO 25) para el motor A. IN3 (GPIO 12), IN4 (GPIO 13), ENB (GPIO 14) para el motor B. El PWM a 20 kHz evita ruidos y permite un control suave. Es imprescindible conectar GND común entre ESP32 y L298N.

3. Interpretar los valores A y B del joystick

El joystick del Core S3 envía valores normalizados entre -100 y 100. A controla la velocidad adelante/atrás. B controla el giro izquierda/derecha. El receptor combina ambos valores: Motor izquierdo = A - B Motor derecho = A + B Esto permite giros suaves, giros bruscos, avance recto y retroceso sin cálculos complejos.

4. Probar el sistema en tiempo real

Con el montaje completo, basta con mover el joystick en la pantalla del Core S3 para ver cómo el robot responde. Movimientos hacia arriba → avanza. Movimientos hacia abajo → retrocede. Movimientos laterales → gira. Movimientos diagonales → combina velocidad y giro. La latencia de ESP‑NOW es extremadamente baja, por lo que la respuesta es inmediata.

Nota sobre la alimentación del sistema

Para alimentar correctamente todo el conjunto, es importante separar la alimentación lógica del ESP32 y la alimentación de potencia del driver L298N. El ESP32 puede funcionar con una batería 1S (3.7V) o mediante USB‑C. El L298N requiere una batería independiente para los motores, normalmente entre 6V y 12V según el tipo de motor. Se recomienda usar una batería Li‑ion 2S (7.4V) o un pack de pilas recargables. Es imprescindible unir las GND de ambas alimentaciones para que las señales del ESP32 sean interpretadas correctamente por el L298N.

⚡ En el siguiente proyecto trabajaremos con ESP32-S3 Freenove+oled 0.9 .