Ir al contenido

Cableado

Esta página sirve para cablear el cargador en casa y encenderlo por primera vez sin quemar nada. Los errores más habituales (un convertidor mal ajustado, un encoder conectado a 5 V, un servo que no aguanta la tensión de la batería) dañan piezas en el primer segundo: tómate tu tiempo y sigue la lista de comprobaciones en orden.

La placa es una ESP32-C3 SuperMini. La tabla sigue firmware/src/config.h: si alguna vez no coinciden, manda config.h.

GPIO Función A tener en cuenta
0 Tensión de la batería (entrada analógica) A través de un divisor de tensión de 100 kΩ / 20 kΩ, con un condensador de 100 nF a masa.
1 Fototransistor IR Resistencia de pull-up de 10 kΩ a 3,3 V. La señal sube cuando una bola corta el haz.
3 Señal del servo (PWM) Solo el cable de control: el servo se alimenta directamente de la batería.
4 Botón GO Contacto seco entre GPIO 4 y GND, nada más. Totalmente desconectado del antiguo circuito de 12 V.
5 Encoder KY-040, CLK El + del módulo va a 3,3 V, nunca a 5 V.
6 Encoder KY-040, DT
7 Encoder KY-040, SW (pulsación) Pasa a nivel bajo al pulsarlo.
10 OLED, SDA (I2C) Pantalla SSD1306 128×64, dirección 0x3C (a veces 0x3D).
20 OLED, SCL (I2C) Se puede usar porque el puerto serie va por el USB nativo del chip.

Deja libres estos pines:

  • GPIO 2, 8 y 9 son pines de arranque (strapping pins): su nivel en el momento del encendido decide cómo arranca el chip. El 8 también lleva el LED de la placa.
  • GPIO 4 a 7 también sirven para la depuración JTAG. No es un problema mientras uses el USB (la depuración USB integrada no los usa), pero una sonda JTAG externa entraría en conflicto con el botón y el encoder.

Es un esquema de principio: la posición de los pines en el dibujo no tiene nada que ver con su sitio real en la placa. Los cables rojos llevan la tensión de la batería (7,4 V, hasta 8,4 V con la batería cargada), el cable naranja los 5 V del convertidor, y las banderitas verdes los 3,3 V que da el pin 3V3 del ESP32. Todos los símbolos de masa están unidos entre sí.

Esquema de cableado del BULLOADER+ La batería LiPo pasa por el interruptor y luego alimenta directamente el servo (con un condensador de 470 µF al lado), el convertidor de 5 V que alimenta el pin 5V del ESP32, y el divisor de 100 kΩ / 20 kΩ hacia GPIO 0 con 100 nF a masa. El servo recibe su señal en GPIO 3. A 3,3 V: el LED IR con 220 Ω, el fototransistor con una resistencia de pull-up de 10 kΩ hacia GPIO 1, el encoder KY-040 (CLK 5, DT 6, SW 7) y la OLED (SDA 10, SCL 20). El botón GO une GPIO 4 a masa. Masa común. LiPo 2S 7,4 V 8,4 V cargada + − Interruptor VBAT Servo 360° 35 kg, alimentado por la batería señal PWM + 470 µF cerca del servo Buck salida 5,0 V 5 V 100 kΩ 20 kΩ 100 nF ≈ 1,4 V máx. ESP32-C3 SuperMini GPIO 3 5V GND GPIO 0 3V3 GPIO 1 GPIO 4 GPIO 5 GPIO 6 GPIO 7 GPIO 10 GPIO 20 3,3 V 3,3 V 220 Ω LED IR haz cortado por las bolas 3,3 V 10 kΩ Fototransistor señal IR Botón GO aislado del antiguo 12 V CLK DT SW + GND KY-040 encoder 3,3 V nunca 5 V SDA SCL VCC GND OLED SSD1306 I2C 3,3 V
Componente Conexión
Batería LiPo 2S + al interruptor general, − a la masa común.
Servo + a la batería después del interruptor (no a los 5 V), − a masa, señal en GPIO 3. Condensador de 470 µF 16 V entre + y masa, lo más cerca posible del servo, con la pata + del lado de la batería.
Convertidor de 5 V (MP1584) Entrada en la batería después del interruptor, salida a 5,0 V (comprobada con el multímetro) hacia el pin 5V del ESP32, masa común.
Divisor de tensión de la batería Batería → 100 kΩ → GPIO 0 → 20 kΩ → masa. Condensador de 100 nF entre GPIO 0 y masa. A 8,4 V, el pin ve 8,4 × 20 / 120 = 1,40 V. No pongas una de 47 kΩ en su lugar: el pin vería unos 2,7 V, demasiado para que el ADC del C3 mida bien.
LED IR de 940 nm 3,3 V → 220 Ω → ánodo del LED, cátodo a masa. Está siempre encendido (unos 10 mA).
Fototransistor de 940 nm Colector en GPIO 1, con una resistencia de 10 kΩ de GPIO 1 a 3,3 V. Emisor a masa. Frente al LED, al otro lado del tubo.
Encoder KY-040 CLK → GPIO 5, DT → GPIO 6, SW → GPIO 7, + → 3,3 V, GND → masa.
Pantalla OLED SSD1306 SDA → GPIO 10, SCL → GPIO 20, VCC → 3,3 V, GND → masa.
Botón GO Un cable a GPIO 4, el otro a masa. Ningún otro cable: desconectado del antiguo circuito de 12 V.

Hazlo en este orden, antes de conectar nada más. Apunta cada valor que midas en la tabla de mediciones de más abajo.

  1. Mide (y si es regulable, ajusta) la salida del convertidor a 5,0 V con el multímetro, con el ESP32 desconectado. Una versión de 5 V fija no tiene nada que ajustar, pero mídela igualmente. Una regulable suele salir de fábrica con una tensión cualquiera, a veces cercana a la de la batería, lo que destruiría el ESP32.
  2. Compara la tensión máxima del servo con los 8,4 V de la batería cargada. Va conectado directamente a la batería, y muchos servos «35 kg» solo aguantan hasta 6,8 V y mueren por encima. Si su tensión nominal es inferior a 8,4 V, necesita su propio regulador (un BEC o un segundo convertidor) capaz de dar su corriente de bloqueo, es decir, lo que consume cuando hace fuerza estando bloqueado.
  3. Comprueba si hay un diodo entre los 5 V del USB y el pin 5V de la SuperMini. Sin diodo, conectar el USB mientras la batería alimenta la placa enfrenta el convertidor con el puerto USB del ordenador. Mientras no lo hayas comprobado: nunca el USB con la batería encendida (interruptor abierto o batería desconectada para flashear).
  4. Conecta el + del KY-040 a 3,3 V, nunca a 5 V. El módulo lleva sus propias resistencias de pull-up hacia su +: a 5 V, metería 5 V en pines del ESP32 que solo aguantan 3,3 V.
  5. Aísla por completo el botón GO del antiguo circuito de 12 V. Solo debe tocar GPIO 4 y masa: el más mínimo resto de 12 V en ese cable quema el pin.
  6. Pon el condensador de 470 µF lo más cerca posible del servo. Al arrancar, el servo consume de golpe mucha corriente: el condensador evita que la tensión caiga tanto que el ESP32 se reinicie.
  7. Pon el condensador de 100 nF entre GPIO 0 y masa. Suaviza la lectura de la batería, que las resistencias de 100 kΩ hacen sensible al ruido del servo.
  8. Une todas las masas. Sin masa común, las señales del servo, del botón y de los sensores no tienen referencia y la placa lee cualquier cosa.
  9. Flashea primero el firmware sim y lee el registro serie, con el servo desconectado. Este firmware simula las bolas: compruebas que la placa arranca y que la pantalla, el encoder, el botón y la lectura de la batería responden, antes de arriesgar la mecánica.

Para flashear y leer el registro serie, consulta el README del firmware (pio run -e sim -t upload y después pio device monitor).

Medición Valor Decisión u observación
Salida del convertidor, en vacío por medir
Servo: modelo por anotar
Servo: tensión máxima (hoja de datos) por anotar ¿Directo a la batería, o BEC / segundo convertidor?
Diodo entre los 5 V del USB y el pin 5V de la SuperMini sí / no Actualizar en consecuencia el aviso sobre el USB del README.
Batería: tensión en el multímetro por medir
Batería: tensión leída por la placa (? por serie) por medir BATT_CALIBRATION = multímetro ÷ lectura de la placa.