Conteúdo detalhado
💧 Tensão, corrente e resistência
Pense numa caixa-d'água ligada a um cano. A altura da água empurra a água para baixo: isso é a tensão. A quantidade de água que passa por segundo no cano é a corrente. Um trecho estreito do cano segura o fluxo: isso é a resistência. Nos circuitos é igual, só que no lugar da água estão elétrons, e o "cano" precisa formar um caminho fechado de volta à fonte.
🌱 Novo aqui?
Tensão (V, volt) é a diferença de "pressão elétrica" entre dois pontos; você sempre mede entre dois pontos, um deles geralmente o GND. Corrente (A, ampère) é quanto de carga passa por segundo; no ESP32 falamos em miliampères (mA, milésimos de ampère). Resistência (Ω, ohm) é quanto um componente dificulta a passagem. GND é o ponto de referência, o "zero volt" do circuito.
Como ler: compare os dois lados. À esquerda, quanto mais alta a caixa, mais pressão; o trecho fino do cano limita o fluxo. À direita, a bateria é a caixa, o resistor é o cano fino e a seta ciano mostra que a corrente precisa voltar ao polo negativo (GND). Fio solto em qualquer ponto = circuito aberto = corrente zero.
| Grandeza | Unidade | No seu robô |
|---|---|---|
| Tensão | volt (V) | 3,3 V nos pinos do ESP32; 5 V no USB; 4,8 a 6 V em 4 pilhas AA |
| Corrente | ampère (A), mA | LED: 5 a 10 mA; ESP32 com Wi-Fi: até umas centenas de mA; motor TT: centenas de mA |
| Resistência | ohm (Ω), kΩ | 220 Ω no LED; 10 kΩ em divisores e pull-ups |
Por que aprender
Toda escolha de peça do robô é uma pergunta sobre essas três grandezas: a bateria tem tensão suficiente? O driver aguenta a corrente do motor? Que resistor protege o LED? Sem elas, você compra no escuro e descobre o erro pelo cheiro de queimado.
Conceitos-chave
🧮 Lei de Ohm e o resistor do LED
A lei de Ohm liga as três grandezas: V = R × I. Sabendo duas, você calcula a terceira. Na bancada, a conta que mais aparece é a do resistor do LED: o LED "consome" uma parte fixa da tensão e o resistor precisa segurar o resto, limitando a corrente a um valor seguro para o LED e para o pino do ESP32.
🌱 Novo aqui?
A queda de tensão (Vf) do LED é a tensão que ele "usa" quando acende: cerca de 2,0 V no vermelho, 2,1 V no amarelo e perto de 3,0 V no azul e no branco. Um resistor não tem lado certo; o LED tem. Os valores vêm pintados em código de cores: 220 Ω = vermelho, vermelho, marrom; 10 kΩ = marrom, preto, laranja (a quarta faixa, dourada, é a tolerância de 5%).
Como ler: a linha de cima reparte a tensão (o que o pino dá menos o que o LED usa sobra para o resistor). A caixa ciano aplica a lei de Ohm para achar o resistor mínimo. A de baixo confere a corrente com o valor que você realmente vai usar: 220 Ω, o mesmo do pisca-LED do módulo 1.1.
A conta em quatro passos
Tensão da fonte
Pino do ESP32 = 3,3 V. Se o LED for ligado em 5 V, use 5 V na conta.
Subtraia a queda do LED
Vermelho ≈ 2,0 V. Sobram 1,3 V para o resistor.
Escolha a corrente
Entre 5 e 10 mA basta para indicador. Mantenha cada pino do ESP32 abaixo de uns 12 mA; ele não é fonte de força.
Divida e arredonde para cima
R = 1,3 ÷ 0,010 = 130 Ω. Valores comerciais próximos: 150, 220, 330 Ω. Na dúvida, o maior: o LED brilha um pouco menos e nada esquenta.
✓ Faça
- ✓Um resistor para cada LED, mesmo que sejam iguais.
- ✓Arredondar o resistor para o valor comercial maior.
- ✓Para LED azul ou branco em 3,3 V, usar 47 a 100 Ω (sobra pouca tensão).
✗ Não faça
- ✗LED direto no pino, sem resistor: queima o LED e força o pino.
- ✗Um resistor só para vários LEDs em paralelo: a corrente se divide mal.
- ✗Ligar motor, buzzer grande ou fita de LED direto num GPIO.
Por que aprender
É a conta mais repetida da robótica de bancada. A mesma lógica (tensão que sobra dividida pela corrente desejada) aparece no divisor de tensão do HC-SR04, na escolha do resistor de base de um transistor e na leitura de bateria do rover.
Conceitos-chave
🧩 Protoboard: como as trilhas se ligam
A protoboard (placa de ensaio) deixa você montar circuitos sem solda, só encaixando fios e componentes. Por dentro, cada furo está ligado a outros por lâminas de metal escondidas. Quem não conhece esse mapa monta tudo "certo" na fileira errada. São duas regras: no meio, os 5 furos de uma mesma coluna estão ligados entre si; nas bordas, as linhas compridas de + e − (os barramentos) correm ao longo da placa.
Como ler: cada traço colorido é uma lâmina de metal por baixo dos furos. As verdes mostram duas colunas vizinhas: elas NÃO se tocam. A âmbar mostra que a mesma coluna do outro lado do vão é outro ponto. As linhas vermelha (+) e ciano (−) são os barramentos de alimentação. Em algumas placas compridas o barramento é cortado no meio: confira com o multímetro (tópico 4).
✓ Montagem limpa
- ✓Fio vermelho para +, preto ou azul para GND, sempre.
- ✓ESP32 encaixado sobre o vão central, um lado de pinos em cada metade.
- ✓Jumpers curtos e rentes à placa: fica fácil seguir o caminho.
- ✓Componente com as duas pernas em colunas diferentes.
✗ Erros clássicos
- ✗Resistor com as duas pernas na mesma coluna: ele fica "em curto" e não faz nada.
- ✗Ligar + e − na mesma coluna: curto-circuito direto na fonte.
- ✗Motor alimentado pela protoboard: as lâminas não aguentam a corrente.
- ✗ESP32 largo ocupando todos os furos: alguns DevKits não deixam coluna livre; use duas protoboards lado a lado.
🌱 Novo aqui?
Um jumper é o fiozinho com ponta rígida (macho-macho para protoboard, macho-fêmea para ligar em pinos de módulos). Um curto-circuito é quando + e − se encontram sem nada no meio para limitar a corrente: a fonte entrega tudo o que pode, o fio esquenta e a bateria pode estufar.
Por que aprender
Metade dos circuitos que "não funcionam" estão certos no papel e errados uma fileira para o lado. Conhecer o mapa interno faz você achar o defeito olhando, em vez de reescrever o código.
Conceitos-chave
📏 Multímetro: medir antes de ligar
O multímetro é o instrumento que transforma "acho que está certo" em certeza. Um modelo digital simples resolve tudo o que a Trilha 1 pede: medir a tensão de uma bateria, conferir o valor de um resistor e testar a continuidade de um fio (se ele está inteiro ou se dois pontos estão ligados).
🌱 Novo aqui?
DC (corrente contínua, símbolo V com traço reto) é o que pilhas, baterias e o ESP32 usam; AC (alternada, símbolo com onda) é a tomada, que você não vai medir neste curso. Continuidade é o modo que apita quando há ligação entre as pontas. A ponteira preta vai no borne COM e no GND do circuito; a vermelha vai no borne VΩ e no ponto que você quer medir.
Três medidas que você vai repetir sempre
Tensão da bateria (circuito ligado)
Seletor em V DC, escala 20 V. Preta no −, vermelha no +. Quatro pilhas NiMH carregadas mostram perto de 5,2 a 5,6 V; abaixo de uns 4,4 V é hora de recarregar. Leitura negativa só indica ponteiras trocadas.
Valor de um resistor (circuito desligado)
Seletor em Ω, escala 2 kΩ para um de 220 Ω. Encoste uma ponteira em cada perna, sem segurar as duas pontas com os dedos (seu corpo vira um resistor em paralelo). Esperado: 209 a 231 Ω para 5% de tolerância.
Continuidade de um fio ou trilha (desligado)
Seletor no símbolo de som. Encoste as pontas: tem que apitar. Depois teste o jumper suspeito ou dois furos da protoboard. Sem apito = fio partido ou furos que não se ligam.
⚠️ Resistência e continuidade só com tudo desligado
Nesses modos o próprio multímetro injeta uma pequena corrente. Medir com a bateria ligada dá leitura errada e pode danificar o aparelho. E nunca deixe a ponteira vermelha no borne de corrente (10A ou mA) para medir tensão: vira um curto-circuito pelo multímetro.
✓ Hábito bom
- ✓Medir a bateria antes de culpar o código.
- ✓Conferir que o pino 3V3 do ESP32 mostra perto de 3,3 V.
- ✓Começar pela escala maior quando não souber o valor.
✗ Hábito ruim
- ✗Girar o seletor com as ponteiras encostadas no circuito.
- ✗Medir corrente sem saber o que está fazendo (fica para depois).
- ✗Esquecer o multímetro ligado: a bateria de 9 V dele acaba.
💡 Sem multímetro ainda?
No Wokwi existe a peça "Voltmeter" e o próprio ESP32 mede tensão pelo ADC (tópico 6). Mas um multímetro digital básico é das ferramentas mais baratas e úteis da bancada; vale tê-lo antes dos motores.
Por que aprender
Quando o rover do módulo 1.6 parar no meio da sala, a primeira pergunta é "a bateria está boa?". Quem mede em segundos não perde a tarde desconfiando do programa. E conferir continuidade antes de ligar é o que salva placas de um curto que você não viu.
Conceitos-chave
🔢 Digital, analógico e lógica de 3,3 V
Um sinal digital só tem dois estados: ligado (HIGH) ou desligado (LOW), como um interruptor. Um sinal analógico varia continuamente, como a tensão de um potenciômetro girando ou de uma bateria descarregando. O ESP32 lê os dois: o digital com digitalRead() e o analógico pelo ADC com analogRead(). E aqui está o ponto crítico: no ESP32, HIGH é 3,3 V, não 5 V.
🌱 Novo aqui?
GPIO (entrada e saída de uso geral) é um pino que o programa configura como entrada ou saída. ADC (conversor analógico-digital) transforma uma tensão em número: no ESP32 ele tem 12 bits, ou seja, de 0 a 4095. Nível lógico é a faixa de tensão que a placa entende como 0 ou 1. Um conversor de nível é um módulo pequeno que traduz sinais de 5 V para 3,3 V e vice-versa.
Como ler: à esquerda, a linha verde só ocupa dois andares, 0 e 3,3 V. À direita, a linha ciano passa por todos os valores no meio, e o ADC dá um número proporcional. A faixa vermelha no topo é o limite: o ESP32 tolera no máximo uns 3,6 V num pino, então um sensor que devolve 5 V precisa de divisor de tensão (tópico 6) ou conversor de nível.
| Peça do kit | Sinal que devolve | Cuidado no ESP32 |
|---|---|---|
| Botão | digital | usar pull-up (tópico 6) |
| Potenciômetro | analógico | alimentar com 3,3 V, não 5 V |
| HC-SR04 (ECHO) | pulso digital de 5 V | divisor de tensão no ECHO |
| Sensor IR de obstáculo | digital | alimentar com 3,3 V quando o módulo aceitar |
💡 Qual pino usar para o ADC
No ESP32 clássico (WROOM-32), prefira os pinos do ADC1 (GPIO 32 a 39). Os do ADC2 param de ler quando o Wi-Fi está ligado, e isso só aparece na Trilha 2, quando você já esqueceu o motivo. Os GPIO 34 a 39 são só entrada: ótimos para ler sensores, inúteis para acender LED.
Por que aprender
Muitos tutoriais e módulos foram feitos para o Arduino Uno, que trabalha em 5 V. Ligar um desses direto no ESP32 é o jeito mais rápido de matar um pino, às vezes a placa inteira. Saber qual sinal cada peça devolve decide o pino, a função de leitura e se precisa de proteção.
Conceitos-chave
🪜 Divisor de tensão e resistor de pull-up
Dois circuitos de dois componentes aparecem em quase todo robô. O divisor de tensão usa dois resistores em série para entregar uma fração da tensão: Vsaída = Ventrada × R2 ÷ (R1 + R2). Com dois resistores iguais, a saída é a metade. O pull-up é um resistor que "puxa" uma entrada para 3,3 V enquanto nada acontece, para o pino nunca ficar indefinido.
🌱 Novo aqui?
Uma entrada flutuante é um pino de entrada ligado a nada: ele capta ruído do ambiente e a leitura troca sozinha entre 0 e 1. O ESP32 tem um pull-up interno (um resistor de dezenas de kΩ dentro do chip) que você liga no código com INPUT_PULLUP. Com ele, o botão fica entre o pino e o GND: solto lê 1, apertado lê 0.
Como ler: à esquerda, siga a tensão de cima para baixo: os dois resistores iguais dividem a bateria ao meio e o ponto verde do meio vai ao GPIO 34, sempre abaixo de 3,3 V. À direita, o resistor interno liga o GPIO 4 aos 3,3 V; quando você aperta o botão, o pino fica ligado direto ao GND e lê 0. A lógica "invertida" (apertado = 0) é normal com pull-up.
Objetivo: ler a tensão de 4 pilhas AA pelo divisor e o estado de um botão com pull-up interno, mostrando os dois no Serial Monitor duas vezes por segundo. No Wokwi, troque a bateria por um potenciômetro ligado entre 3,3 V e GND (a saída do meio no GPIO 34) e veja a tensão "da bateria" mudar.
// Divisor de tensão + botão com pull-up (ESP32, pacote esp32 3.x)
// Bateria → R1 10k → GPIO 34 → R2 10k → GND | Botão: GPIO 4 ↔ GND
const int PINO_BATERIA = 34; // ADC1, só entrada
const int PINO_BOTAO = 4; // tem pull-up interno
const float FATOR_DIVISOR = 2.0; // (R1 + R2) / R2 = (10k + 10k) / 10k
void setup() {
Serial.begin(115200);
pinMode(PINO_BOTAO, INPUT_PULLUP); // solto = HIGH, apertado = LOW
analogReadResolution(12); // 0 a 4095
Serial.println("Leitura de bateria e botao pronta");
}
void loop() {
int bruto = analogRead(PINO_BATERIA); // número de 0 a 4095
int mvPino = analogReadMilliVolts(PINO_BATERIA); // já em mV, calibrado
float vBateria = mvPino * FATOR_DIVISOR / 1000.0; // desfaz o divisor
bool apertado = (digitalRead(PINO_BOTAO) == LOW);
Serial.print("ADC: "); Serial.print(bruto);
Serial.print(" | pino: "); Serial.print(mvPino); Serial.print(" mV");
Serial.print(" | bateria: "); Serial.print(vBateria, 2); Serial.print(" V");
Serial.print(" | botao: "); Serial.println(apertado ? "APERTADO" : "solto");
delay(500);
}
Como verificar
- ✓Com 4 pilhas NiMH carregadas, "bateria" mostra perto de 5,2 a 5,6 V; confira com o multímetro (diferença de até uns 0,1 V é normal).
- ✓"botao" muda para APERTADO só enquanto você segura.
- ✗"botao" trocando sozinho? O pino escolhido não tem pull-up (GPIO 34 a 39) ou o fio está solto.
- ✗ADC parado em 4095? O pino está recebendo 3,3 V ou mais: falta o divisor ou ele está montado ao contrário.
⚠️ Calcule antes de ligar na bateria
Com 2 células 18650 em série (até 8,4 V), dois resistores iguais entregariam 4,2 V ao pino: acima do limite. Use R1 = 20 kΩ e R2 = 10 kΩ (divide por 3, máximo de 2,8 V) e troque o FATOR_DIVISOR para 3.0. Sempre refaça a conta com a tensão MÁXIMA da bateria carregada.
Por que aprender
O divisor é o que protege o ESP32 do pino ECHO de 5 V do HC-SR04 (módulo 1.4) e o que deixa o rover avisar que a bateria está acabando. O pull-up é o que faz botões, chaves de fim de curso e sensores de "colisão" lerem sem dar sinais fantasmas.
Conceitos-chave
✅ Resumo do módulo
Para ir além
- ADC no Arduino-ESP32 (Espressif) — analogRead, analogReadMilliVolts e atenuação
- GPIO no Arduino-ESP32 — pinMode, INPUT_PULLUP e cuidados
- Como usar uma protoboard (SparkFun) — fotos do interno da placa
- Como usar um multímetro (SparkFun) — tensão, resistência e continuidade
- Documentação do Wokwi — testar os circuitos sem hardware
Próximo módulo
1.3 · ESP32: o primeiro programa. Arduino IDE 2.x, pacote esp32 3.x, primeiro upload na placa real, Serial Monitor, entradas e PWM na API nova.