Componente · Alimentação

Bateria e fonte de alimentação do robô

Como alimentar um robô: por que um bloco de 9 V sofre queda de tensão, como escolher um conjunto AA ou 18650 e como evitar reinicializações.

O que é

O conjunto de alimentação é a parte em que os iniciantes menos pensam e mais erram. É simplesmente a bateria que fornece corrente aos motores e à eletrônica—mas, se você escolher mal, o robô dará solavancos, reiniciará ou se recusará a andar, por mais bom que seja o código. Fornecer alimentação corretamente é muitas vezes a diferença entre um robô que funciona e outro que fica reiniciando.

A ideia principal é que um robô tem duas necessidades de corrente bem diferentes: os motores a consomem em grandes picos, enquanto a lógica a consome de forma constante. Uma única bateria pode alimentar os dois, mas é preciso organizá-los para que os motores, que exigem muito mais corrente, não deixem o cérebro sensível sem corrente.

Ilustração da distribuição de energia: um conjunto de duas células alimenta uma placa de driver de motor L298N com dissipador por um fio Vin vermelho; o driver alimenta dois motores; uma linha regulada de cinco volts alimenta uma placa Arduino, que devolve ao driver quatro fios de sinal PWM e direção; um barramento de massa comum conecta a bateria, o driver e o Arduino na parte inferior.
Um conjunto, duas trilhas: os motores retiram corrente intensa pelo driver, o Arduino opera com 5 V estáveis e todas as peças compartilham uma massa comum. Baixar SVG

Como funciona

Acompanhe a corrente a partir do conjunto:

  1. A bateria fornece a tensão bruta — 6 V com quatro AA ou 7,4 V com duas 18650.
  2. A trilha dos motores vai diretamente do conjunto ao Vin do driver L298N. É daqui que vem a corrente intensa e pulsante dos motores, totalmente separada do Arduino.
  3. A trilha da lógica é uma tensão regulada de 5 V (do regulador da placa do driver ou por USB) que alimenta o Arduino e os sensores com tensão limpa e estável.
  4. Uma massa comum conecta tudo. Todas as trilhas devem compartilhar a mesma linha de massa, ou os sinais lógicos não terão referência comum e as leituras ficarão sem sentido.

Com essa divisão, um motor que provoca um pico de corrente de repente pode derrubar sua própria trilha sem levar junto os 5 V do Arduino.

Por que um bloco de 9 V falha

O erro mais comum no primeiro robô é alimentar os motores com uma bateria retangular de 9 V PP3. Ela parece prática, mas armazena pouquíssima energia e tem alta resistência interna. No instante em que os motores puxam corrente, a tensão desaba — o Arduino fica abaixo do mínimo e reinicia, fazendo o robô avançar aos trancos e reiniciar em um ciclo. Um bloco de 9 V serve para uma protoboard que consome miliamperes; é a escolha errada para qualquer sistema que move rodas.

Escolha e conexão

  • Combine a tensão com os motores. Motores de 3–6 V funcionam bem com um conjunto de 6 V ou 7,4 V; use PWM para controlar a velocidade, em vez de subalimentar o conjunto.
  • A capacidade determina a autonomia. Mais mAh significa mais tempo entre as recargas; células 18650 duram muito mais que AA, mas exigem um suporte protegido.
  • Use uma chave geral e confira a polaridade. Instale um interruptor geral no conjunto e verifique a polaridade antes da primeira alimentação — a inversão pode destruir uma placa instantaneamente.
  • Não injete tensão de volta. Evite alimentar o Arduino por USB e pela bateria ao mesmo tempo, a menos que a placa seja projetada para isso.
  • Acrescente um capacitor de reserva em paralelo com a alimentação dos motores para absorver o pico de partida e estabilizar a trilha.

Resistência interna: o número que decide tudo

Toda bateria se comporta como uma fonte de tensão ideal com um resistor em série. Esse resistor explica por que um conjunto funciona e outro reinicia sua placa.

V_under_load = V_open_circuit - (I x R_internal)

Um robô que puxa um pico de 2 A por um conjunto com 0,5 Ω de resistência interna perde um volt antes que os circuitos a jusante vejam. Veja o que isso significa nas opções comuns:

Conjunto Nominal Resistência interna típica Queda a 2 A Avaliação
9 V PP3 alcalina 9 V 1,5–3 Ω 3–6 V Inutilizável para motores
4×AA alcalina 6 V 0,6–1,2 Ω 1,2–2,4 V No limite; cai rápido
4×AA NiMH 4,8 V 0,1–0,2 Ω 0,2–0,4 V Boa, mas com tensão baixa
6×AA NiMH 7,2 V 0,15–0,3 Ω 0,3–0,6 V Uma boa escolha
2×18650 íon-lítio 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 Melhor, com cuidados de manuseio

Esta tabela explica completamente o bloco de 9 V. O problema não é a tensão — o bloco tem a maior tensão da lista. É que, com um pico de 2 A, entrega 3 V, e o robô reinicia. A tensão sem carga não diz nada; a queda sob carga diz tudo.

Meça o seu conjunto em dois minutos

1. Meça a tensão do conjunto com o conjunto desconectado.        -> V_open
2. Cause o travamento dos motores e meça novamente durante o travamento. -> V_load
3. Meça a corrente de travamento com o multímetro em série.       -> I
4. R_internal = (V_open - V_load) / I

Anote o número no conjunto com uma caneta. Ele aumenta com o desgaste das células, e um conjunto cuja resistência dobrou já começou a causar reinícios “aleatórios”.

Orçamento de corrente

Some tudo no papel antes de comprar qualquer coisa. Use a corrente de travamento, não a típica.

Dispositivo Corrente típica Pico / travamento
Arduino Uno 45 mA 50 mA
ESP32 (Wi-Fi ativo) 80 mA 500 mA em rajadas
Motorredutor TT ×2 300 mA 2 A
Motorredutor metálico N20 ×2 200 mA 1,6 A
Servomotor SG90 200 mA 650 mA
HC-SR04 15 mA 15 mA
MPU-6050 4 mA 4 mA
Matriz de sensores de refletância infravermelha de 8 canais 100 mA 200 mA
GPS NEO-6M 45 mA 60 mA

Um robô típico que desvia de obstáculos — Uno, dois motores TT e um sensor ultrassônico em um servomotor — exige aproximadamente 360 mA de consumo típico e 2,7 A de pico. Dimensione o conjunto pelo pico e dimensione a autonomia pelo consumo típico:

runtime (hours) = capacity (mAh) / average draw (mA)

2000 mAh de AA NiMH a 360 mA duram cerca de 5,5 horas de operação, muito mais do que a bateria da maioria dos robôs costuma durar. A capacidade raramente é a limitação — a capacidade de fornecer picos é.

Conectando corretamente

Battery + ──── master switch ──┬──── motor driver VM  (the heavy path)
                               │
                               └──── 5 V regulator ──── Arduino, sensors
Battery − ─────────────────────┴──── COMMON GROUND ──── everything

Quatro regras, na ordem em que mais são violadas:

Massa comum, sempre. Todas as fontes, placas e sensores devem ser conectados a uma única massa. A ausência de massa comum deixa os sinais lógicos sem referência, e a falha é silenciosa — nada funciona, nada fica quente e nada parece errado.

Ligue as massas em estrela, não em cascata. Leve cada retorno de massa a um único ponto, em vez de encadear os retornos pelo driver de motor. A corrente de retorno dos motores por um fio de massa compartilhado cria uma diferença de tensão ao longo dele, e as leituras dos sensores mudam sempre que os motores se movem.

Interruptor geral no polo positivo, antes de qualquer coisa. A possibilidade de desligar imediatamente um robô descontrolado vale os dois minutos de instalação.

Proteção contra polaridade invertida. Um único diodo Schottky em série custa ~0,3 V, enquanto um MOSFET de canal P custa quase nada. Ambas as opções são mais baratas que a placa que um conjunto invertido destrói — e inverter um conjunto basta um instante de distração.

Capacitores: o que fazem e o que não resolvem

Acrescente um capacitor eletrolítico de 470–1000 µF em paralelo com a alimentação dos motores, perto do driver. Vale a pena. Só que ele costuma ser usado para tentar fazer algo que não pode.

O que ele corrige: os transitórios rápidos de chaveamento do PWM e da comutação dos motores, que ocorrem na escala de microssegundos e entram na trilha lógica como ruído.

O que ele não corrige: um surto sustentado. A aritmética não perdoa:

dV = I x t / C
1000 uF supplying 2 A for 10 ms -> dV = 2 x 0.01 / 0.001 = 20 V

Um capacitor que tivesse de fornecer um pico de motor de 2 A durante 10 ms precisaria deixar cair 20 V, mais do que o conjunto possui. Somente uma bateria com menor resistência fornece um pico. Se sua placa reinicia quando os motores começam, um capacitor maior não é a resposta — um conjunto com menor resistência interna é.

Acrescente também um capacitor cerâmico de 100 nF junto ao pino de alimentação de cada CI. É uma função completamente diferente: ele atende à demanda de alta frequência da comutação interna do chip, para a qual o eletrolítico é lento demais.

Escolhendo uma química

NiMH AA Íon-lítio 18650 LiPo
Tensão da célula 1,2 V 3,7 V 3,7 V
Resistência interna Baixa Muito baixa A mais baixa
Autodescarga Baixa (use células “prontas para uso”) Muito baixa Muito baixa
Descarga excessiva Tolerante Dano abaixo de 3,0 V/célula Dano abaixo de 3,0 V/célula
Carregamento Simples e tolerante Exige carregador adequado ou BMS Exige carregador com balanceamento
Risco de incêndio Negligível Real se mal usado Real se mal usado
Melhor para Um primeiro robô A maioria dos robôs Projetos de alto desempenho

NiMH é a primeira escolha adequada. Seis células fornecem 7,2 V com baixa resistência interna, toleram erros e transformam um conjunto morto em um incômodo, não em um acidente.

Células íon-lítio 18650 são a melhoria sensata: muito mais energia para o mesmo peso, resistência interna muito baixa e baixo custo. Use um suporte protegido ou uma placa BMS — células de lítio levadas abaixo de cerca de 3,0 V por célula sofrem danos permanentes, e um robô que funciona até parar faz exatamente isso.

LiPo é o que projetos de alto desempenho usam, e é a opção que exige cuidado. Nunca carregue sem acompanhamento, nunca perfure e nunca deixe uma célula totalmente descarregada; use um carregador com balanceamento.

Solução de problemas

Sintoma Causa provável Solução
A placa reinicia quando os motores começam Queda de tensão do conjunto — resistência interna alta demais Meça; a única solução é um conjunto com menor resistência
Um capacitor maior não ajudou Ele nunca poderia ajudar Veja a aritmética acima; troque a bateria
Nada funciona e nada está quente Sem massa comum Conecte todas as massas a um único ponto
As leituras dos sensores mudam quando os motores funcionam Massa encadeada Leve os retornos de massa a um único ponto
O robô desacelera ao longo da execução A tensão cai à medida que o conjunto se descarrega Esperado; feche uma malha de velocidade ou monitore o conjunto
Os motores já ficam fracos Queda no driver somada à queda do conjunto Um L298N perde ~2 V antes de os motores receberem tensão
Regulador muito quente Excesso de tensão em um regulador linear Use um regulador comutado ou reduza a entrada
O conjunto aquece durante o carregamento Carregador inadequado à química Pare. Use um carregador compatível com as células
O conjunto íon-lítio morreu e não carrega Levado abaixo de 3,0 V/célula Dano permanente — use um suporte protegido na próxima vez

Monitorando o conjunto

A última melhoria que vale a pena: um robô que conhece a própria tensão de bateria pode parar antes de sofrer queda de tensão, e isso custa dois resistores.

// 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;
}

Uma ressalva que torna este cuidado importante: em um Arduino, analogRead é proporcional à trilha de 5 V, que por sua vez cai quando os motores funcionam. Medir uma bateria em queda por meio de uma referência que também cai faz a leitura subir. Mude para a referência interna de 1,1 V com analogReference(INTERNAL), dimensione o divisor para ela e a leitura será fiel — o tutorial de entrada analógica explica exatamente essa armadilha.

Explore o grafo

Usado nestas montagens

Projetos, caminhos de aprendizagem e simuladores que incluem Bateria e fonte de alimentação do robô.

Perguntas

Perguntas frequentes sobre Bateria e fonte de alimentação do robô

Qual bateria devo usar em um carro robô com Arduino?

A escolha padrão é um conjunto de 4×AA (6 V) ou 2×18650 (7,4 V) alimentando o driver de motor. Ambos fornecem a corrente necessária aos motores sem cair sob carga. Durante o desenvolvimento, alimente o Arduino pela saída regulada de 5 V do driver de motor ou por USB.

Posso alimentar os motores de um robô com uma bateria de 9 V?

Não é uma boa opção. Um bloco de 9 V PP3 tem capacidade muito baixa e resistência interna alta; assim que os motores puxam corrente, a tensão da bateria cai, o Arduino sofre uma queda de tensão e reinicia. Use um conjunto AA ou 18650 em qualquer projeto com motores; reserve o bloco de 9 V para uma protoboard.

O Arduino e os motores usam a mesma bateria?

Normalmente compartilham um conjunto, mas em trilhas separadas. Os motores retiram corrente do conjunto pelo terminal Vin do driver de motor; a lógica opera com 5 V regulados. O ponto crítico é que todas as fontes compartilhem uma massa comum; caso contrário, os sinais não têm uma referência comum e nenhuma leitura fica correta.

Por que meu robô reinicia quando os motores começam?

Porque a partida dos motores provoca um grande pico de corrente, que derruba a tensão compartilhada abaixo do mínimo exigido pelo Arduino e o faz reiniciar. As soluções são uma bateria com menor resistência, trilhas separadas de motor e lógica a partir do mesmo conjunto e um capacitor em paralelo com a alimentação dos motores para absorver o pico.

Leitura complementar

Referências