Componente · Alimentación
Battery Power Pack
Por qué una pila de 9 V bloquea el robot y las NiMH o Li-ion 18650 lo hacen volar. Caídas de tensión por resistencia interna y presupuesto de corriente.
Qué es
El paquete de baterías es la parte en la que menos pensando los principiantes y en la que más se equivocan. No es más que la batería que alimenta los motores y la electrónica, pero elegirla mal hace que el robot dé tirones, se reinicie o se niegue a moverse, por muy bueno que sea el código. Hacer bien la alimentación es a menudo la diferencia entre un robot que funciona y uno que se reinicia sin parar.
La idea clave es que un robot tiene dos apetito muy distintos de corriente: los motores la beben a trompicones y la lógica la sorbe constante. Una sola batería puede alimentar ambos, pero hay que colocarlos de modo que los motores glotones no dejen en ayunas al cerebro sensible.
Cómo funciona
Sigue la corriente desde el paquete:
- La batería suministra tensión cruda: 6 V de cuatro pilas AA, 7,4 V de dos 18650.
- El riel de motores va directo del paquete a la entrada Vin del controlador L298N. De aquí sale la corriente de motor, pesada y a trompicones, y aquí se queda lejos del Arduino por completo.
- El riel lógico es una tensión regulada de 5 V (del regulador de a bordo del controlador o por USB) que alimenta el Arduino y los sensores con una tensión limpia y estable.
- Una masa común lo ata todo. Cada riel debe compartir la misma línea de masa, o las señales lógicas no tienen referencia compartida y las lecturas no significan nada.
Con esta separación, un motor que de repente pide un amperio puede hundir su propio riel sin arrastrar consigo los 5 V del Arduino.
Por qué falla una pila de 9 V
El error más común en el primer robot es alimentar los motores con una pila rectangular de 9 V PP3. Parece cómodo, pero almacena muy poca energía y tiene una resistencia interna alta. En el instante en que los motores extraen corriente, su tensión se desploma: el Arduino cae por debajo del mínimo y se reinicia, así que el robot da un tirón y se reinicia en bucle. Una pila de 9 V va bien para una protoboard que sorbe miliamperios; es la opción equivocada para cualquier cosa que mueva ruedas.
Cómo elegirla y cablearla
- Casa la tensión con los motores. Los motores de 3–6 V se sienten bien con un paquete de 6 V o 7,4 V; usa PWM para domar la velocidad en lugar de bajar la tensión del paquete.
- La capacidad es autonomía. Más mAh significa más tiempo entre recargas; las celdas 18650 duran mucho más que las AA pero necesitan un portapilas con protección.
- Un interruptor y la polaridad correcta. Pon un interruptor general en el paquete y revisa la polaridad antes de la primera conexión: la polaridad invertida puede matar una placa al instante.
- No realimentes. Evita alimentar el Arduino por USB y con la batería a la vez salvo que la placa esté diseñada para eso.
- Añade un condensador de acoplamiento en paralelo con la alimentación de motores para absorber el pico de arranque y estabilizar el riel.
La resistencia interna: el número que lo decide todo
Toda batería se comporta como una fuente de tensión ideal con una resistencia en serie. Esa resistencia es toda la explicación de por qué un paquete funciona y otro te reinicia la placa.
V_under_load = V_open_circuit - (I x R_internal)
Un robot que extrae una ráfaga de 2 A a través de un paquete con 0,5 Ω de resistencia interna pierde un voltio entero antes de que nada de lo que va detrás lo vea. Esto es lo que significa para las opciones habituales:
| Paquete | Nominal | Resistencia interna típica | Caída a 2 A | Veredicto |
|---|---|---|---|---|
| Pila alcalina 9 V PP3 | 9 V | 1.5–3 Ω | 3–6 V | Inservible para motores |
| 4×AA alcalinas | 6 V | 0.6–1.2 Ω | 1.2–2.4 V | Marginal; se agota rápido |
| 4×AA NiMH | 4.8 V | 0.1–0.2 Ω | 0.2–0.4 V | Bien, pero con poca tensión |
| 6×AA NiMH | 7.2 V | 0.15–0.3 Ω | 0.3–0.6 V | Una elección sólida |
| 2×18650 Li-ion | 7.4 V | 0.05–0.15 Ω | 0.1–0.3 V | Excelente |
| 2S LiPo | 7.4 V | 0.02–0.05 Ω | Menos de 0.1 V | La mejor, con precauciones en el manejo |
Esta tabla explica la pila de 9 V por completo. No es que tenga la tensión equivocada: tiene la tensión más alta de la lista. Es que con una ráfaga de 2 A entrega 3 V, y el robot se reinicia. La tensión en reposo no te dice nada; la caída bajo carga te lo dice todo.
Mide el tuyo en dos minutos
1. Measure the pack's voltage with nothing connected. -> V_open
2. Stall the motors and measure again while stalled. -> V_load
3. Measure the stall current with the meter in series. -> I
4. R_internal = (V_open - V_load) / I
Escribe el número en el paquete con un rotulador. Sube a medida que las celdas envejecen, y un paquete cuya resistencia se ha duplicado es un paquete que ha empezado a provocar reinicios «aleatorios».
El presupuesto de corriente
Súmalo todo en papel antes de comprar nada. Usa el valor de bloqueo, no el típico.
| Dispositivo | Típico | Pico / bloqueo |
|---|---|---|
| Arduino Uno | 45 mA | 50 mA |
| ESP32 (Wi-Fi activo) | 80 mA | 500 mA a ráfagas |
| Motorreductor TT ×2 | 300 mA | 2 A |
| Motorreductor metálico N20 ×2 | 200 mA | 1.6 A |
| Servo SG90 | 200 mA | 650 mA |
| HC-SR04 | 15 mA | 15 mA |
| MPU-6050 | 4 mA | 4 mA |
| Matriz IR de 8 canales | 100 mA | 200 mA |
| GPS NEO-6M | 45 mA | 60 mA |
Un robot esquivador de obstáculos típico —Uno, dos motores TT, un ultrasónico sobre un servo— consume aproximadamente 360 mA típicos y 2,7 A de pico. Dimensiona el paquete para el pico y dimensiona la autonomía a partir del consumo típico:
runtime (hours) = capacity (mAh) / average draw (mA)
2000 mAh de NiMH AA a 360 mA son unas 5,5 horas de marcha, que es mucho más de lo que la batería de la mayoría de los robots llega a usar. La capacidad rara vez es la limitación: lo es la capacidad de ráfaga.
Cómo cablearla bien
Battery + ──── master switch ──┬──── motor driver VM (the heavy path)
│
└──── 5 V regulator ──── Arduino, sensors
Battery − ─────────────────────┴──── COMMON GROUND ──── everything
Cuatro reglas, ordenadas por la frecuencia con que se incumplen:
Masa común, siempre. Todas las fuentes, todas las placas, todos los sensores van a una masa. Sin masa común las señales lógicas se quedan sin referencia, y el fallo es silencioso: nada funciona, nada se calienta, nada parece estar mal.
Estrellas la masa, no la encadenes. Devuelve cada masa a un punto único en lugar de encadenarlas en margarita pasando por el controlador de motores. La corriente de retorno del motor por un cable de masa compartido crea una diferencia de tensión a lo largo de él, y tus lecturas de sensores se desplazan cada vez que se mueven los motores.
Interruptor general en el positivo, antes que nada. Poder detener al instante un robot desbocado vale esos dos minutos.
Protección contra polaridad invertida. Un único diodo Schottky en serie cuesta ~0,3 V, o un MOSFET de canal P cuesta casi nada. Cualquiera de las dos opciones sale más barato que la placa que destruye un paquete invertido, e invertir un paquete lleva un momento de desatención.
Condensadores: qué arreglan y qué no
Pon un electrolítico de 470–1000 µF en paralelo con la alimentación de motores, cerca del controlador. Merece la pena. También se espera de él con rutina que haga algo que no puede.
Lo que sí arregla: las transitorios bruscos de conmutación del PWM y de la conmutación de los motores, que duran microsegundos y se acoplan al riel lógico en forma de ruido.
Lo que no puede arreglar: una ráfaga sostenida. La aritmética no perdona:
dV = I x t / C
1000 uF supplying 2 A for 10 ms -> dV = 2 x 0.01 / 0.001 = 20 V
Un condensador al que se le pide que transporte una ráfaga de motor de 2 A durante 10 ms tendría que dejar caer 20 V, más de lo que tiene el paquete. Solo una batería más rígida transporta una ráfaga. Si tu placa se reinicia al arrancar los motores, un condensador mayor no es la solución: lo es un paquete con menos resistencia interna.
Añade también un cerámico de 100 nF junto al pin de alimentación de cada CI. Es una tarea completamente distinta: atiende la demanda de alta frecuencia de la conmutación propia del chip, que el electrolítico es demasiado lento para servir.
Cómo elegir una química
| NiMH AA | Li-ion 18650 | LiPo | |
|---|---|---|---|
| Tensión de celda | 1.2 V | 3.7 V | 3.7 V |
| Resistencia interna | Baja | Muy baja | La más baja |
| Autodescarga | Baja (usa celdas «listas para usar») | Muy baja | Muy baja |
| Sobredescarga | Tolerante | Dañina por debajo de 3,0 V/celda | Dañina por debajo de 3,0 V/celda |
| Carga | Sencilla, indulgente | Necesita un cargador adecuado o un BMS | Necesita un cargador de balance |
| Riesgo de incendio | Nulo | Real si se abusa | Real si se abusa |
| Mejor para | Un primer robot | La mayoría de los robots | Montajes de altas prestaciones |
NiMH es la primera opción correcta. Seis celdas dan 7,2 V con poca resistencia interna, toleran los errores, y un paquete agotado es una molestia y no un incidente.
Los Li-ion 18650 son la mejora sensata: mucha más energía para el mismo peso, resistencia interna muy baja y baratos. Usa un portapilas protegido o una placa BMS: las celdas de litio llevadas por debajo de unos 3,0 V por celda quedan dañadas de forma permanente, y un robot que funciona hasta que se para hará exactamente eso.
LiPo es lo que usan los montajes de altas prestaciones, y es la que exige respeto. Nunca cargues sin supervisión, nunca lo perfores, nunca lo dejes descargado, y usa un cargador de balance.
Resolución de problemas
| Síntoma | Causa probable | Solución |
|---|---|---|
| La placa se reinicia al arrancar los motores | Caída del paquete: resistencia interna demasiado alta | Mídela; un paquete de menos resistencia es la única solución |
| Un condensador mayor no ayudó | Nunca pudo | Mira la aritmética de arriba; cambia la batería |
| Nada funciona, nada se calienta | Sin masa común | Une todas las masas a un punto |
| Las lecturas de sensores se desplazan al girar los motores | Masa encadenada en margarita | Devuelve todas las masas a un punto único |
| El robot va más lento a lo largo de una tanda | La tensión cae conforme se descarga el paquete | Es lo esperado; cierra un lazo de velocidad o vigila el paquete |
| Motores débiles desde el principio | Caída de tensión del controlador más un paquete que se desploma | Un L298N se come ~2 V antes de que los motores vean nada |
| El regulador se pone muy caliente | Demasiada tensión en un regulador lineal | Usa un regulador conmutado o baja la entrada |
| El paquete se calienta durante la carga | Cargador inadecuado para la química | Para. Haz coincidir el cargador con las celdas |
| El paquete Li-ion murió y no carga | Llevado por debajo de 3,0 V/celda | Dañado permanentemente: usa un portapilas protegido la próxima vez |
Vigilar el paquete
Lo último que merece la pena añadir: un robot que conoce la tensión de su propia batería puede detenerse antes de quedarse sin tensión, y cuesta dos resistencias.
// 100k / 33k divider: 8.4 V max in -> ~2.09 V at the pin. Safe for a 3.3 V ADC.
const float DIVIDER = (100.0 + 33.0) / 33.0;
float packVolts() {
return analogRead(A0) * (5.0 / 1023.0) * DIVIDER;
}
Una advertencia que hace que esto merezca la pena hacer con cuidado: en un Arduino,
analogRead es ratiométrico respecto al raíl de 5 V, que a su vez se desploma cuando los
motores giran. Mides una batería que cae a través de una referencia que también cae, y la
lectura sube. Cambia a la referencia interna de 1,1 V con analogReference(INTERNAL), dimensiona
el divisor para eso y la lectura se vuelve honrada; el
tutorial de entradas analógicas cubre exactamente
esta trampa.
Explora el grafo
Se usa en estos montajes
Proyectos, rutas de aprendizaje y simuladores que incluyen Battery Power Pack.
- ProyectoConstrucción de un rover autónomo por waypoints GPS
- ProyectoConstruya un Micromouse: robot para laberintos con Flood Fill
- ProyectoConstruya un robot mecanum omnidireccional con ESP32
- ProyectoConstruya un robot seguidor de línea: simulación a pista
- ProyectoConstruye un brazo robótico de 4 DOF: cinemática y PCA9685
- ProyectoConstruye un plóter de dibujo: dos ejes paso a paso
- ProyectoConstruye un robot controlado por móvil con Bluetooth o Wi-Fi
- ProyectoConstruye un robot de autoequilibrio con MPU6050 y PID
- ProyectoConstruye un robot de cobertura de área para limpiar suelos
- ProyectoConstruye un robot esquivador de obstáculos autónomo
- ProyectoConstruye un robot mini sumo: tracción, cuña y borde
- ProyectoConstruye un robot pick and place con agarre verificado
- ProyectoConstruye un robot ROS 2 que localiza marcadores visuales
- ProyectoRobot resuelto de laberintos de línea con memoria LSRB
- ProyectoRobot seguidor de línea con microcontrolador 8051
- Ruta de aprendizajeFundamentos de electrónica para robótica: ruta guiada
Preguntas
Preguntas frecuentes sobre Battery Power Pack
¿Qué batería debo usar para un coche robot con Arduino?
La opción estándar es un pack de 4×AA (6 V) o de 2×18650 (7.4 V) que alimente el driver de motores. Ambos entregan la corriente que necesitan los motores sin desplomarse bajo carga. Mientras desarrollas, alimenta el Arduino desde la salida regulada de 5 V del driver o por USB.
¿Puedo alimentar los motores de un robot con una pila de 9 V?
No bien. Una pila de bloque PP3 de 9 V tiene muy poca capacidad y una resistencia interna alta, así que en cuanto los motores consumen corriente su tensión cae, el Arduino sufre un brownout y se reinicia. Usa un pack de AA o de 18650 para cualquier cosa con motores; reserva la pila de 9 V para la protoboard.
¿Comparten el Arduino y los motores la misma batería?
Normalmente comparten un mismo pack, pero en raíles separados. Los motores toman corriente del pack a través del terminal Vin del driver; la lógica funciona con 5 V regulados. Y lo más importante: todas las fuentes deben compartir una masa común, o tus señales no tendrán una referencia compartida y nada se leerá correctamente.
¿Por qué se reinicia mi robot cuando arrancan los motores?
Porque al arrancar, los motores absorben durante un instante un gran pico de corriente que hunde la tensión compartida por debajo de lo que necesita el Arduino, y este se reinicia. Las soluciones son una batería que ceda menos bajo carga, raíles separados para motores y lógica desde el mismo pack, y un condensador en la alimentación de los motores que absorba el pico.
Lecturas adicionales