Bancada: protoboard, jumper e alimentacao — Arduino e IoT — semana 6 do 1o trimestre

Informatica · Conteudo · publicado em 02/10/2026
Semana 6 · Bancada: protoboard, jumper e alimentacao — Material de Apoio Arduino

Semana 6 de 13· 1o trimestre · 01/02 a 30/04

Bancada: protoboard, jumper e alimentacao

Tudo que da errado na bancada esta aqui: trilhas, pull-up, fonte e o jumper que fica solto.

Aula 1 — Como a protoboard funciona: trilhas, colunas e jumper

Objetivos

  • Desenhar no papel a matriz de contatos de uma protoboard de 830 pontos e dizer o que cada trilha conecta.
  • Escolher o tipo de jumper certo para cada ligação: macho-macho, macho-fêmea e fêmea-fêmea.
  • Montar uma ligação na protoboard conferindo, pela luz do LED, que o circuito realmente fechou.
  • Diagnosticar, pela leitura do pino, um jumper que ficou fora da coluna.

Material

  • 1 ESP32 DevKit V1 por aluno, com o cabo USB
  • 1 protoboard de 830 pontos por aluno
  • 1 jogo de jumpers macho-macho, macho-fêmea e fêmea-fêmea por aluno
  • 2 a 5 LEDs de 3,3 V e 2 a 5 resistores de 330 Ω por aluno
  • 1 módulo de alimentação MB102 por dupla
  • Folha com o desenho da protoboard para desenhar, uma por aluno

Conceitos

O que há dentro da protoboard

Uma protoboard de 830 pontos tem, sob o plástico, uma matriz de contatos metálicos elásticos. Nada é gravado, nada é soldado: cada ponto é uma mola de metal que aperta e solta quando você enfia a perna de um componente.

Duas direções de organização:

  • Trilha horizontal, indicada por letras (a, b, c, d, e): os cinco pontos da linha estão ligados entre si, exceto na linha central, onde há um corte.
  • Coluna vertical, indicada por números (1 a 63): cada ponto da coluna é um contato sozinho.

A linha central é a peça que o aluno mais esquece. Ela existe justamente para permitir dois circuitos independentes na mesma protoboard, sem um jumper de corte.

O corte no meio

Na fileira central, os cinco pontos da esquerda e os cinco da direita não se tocam. Isso significa que um resistor entre a1 e b1 não tem ligação nenhuma com um jumper entre a10 e b10.

O erro clássico é montar o circuito atravessando a linha central sem perceber, e aí o professor passa dez minutos procurando fio faltando num circuito que está inteiro.

Os três tipos de jumper

TipoServe paraErro típico
macho-machode uma placa para outra, ou pinosdois machos na mesma fileira da protoboard
macho-fêmeada placa para a protoboardo macho entra no plástico e não no contato
fêmea-fêmeapular dois pontos da protoboardachar que ele faz contacto com o plástico

O jumper não entra pela lateral da protoboard. Ele entra pela frente, pelo buraco, e a ponta traseira não precisa atravessar nada: o contato fecha por pressão.

Perna de componente entra na coluna

Resistor e LED com perna precisam ocupar dois pontos da mesma coluna (ou dois pontos unidos por um jumper). A perna não "viaja" pela trilha horizontal; ela ocupa uma coluna e fecha com o que estiver na mesma coluna.

É esse detalhe que explica o defeito mais comum da bancada: o aluno liga o LED na trilha + da protoboard e diz que "está na linha vermelha", mas o pino do resistor está na coluna 15 e o LED na coluna 20. Não estão juntos, e o circuito não fecha.

Montagem por trilhas, não por fio a fio

A prática do dia: distribua a alimentação em trilhas, e use colunas para as ligações de sinal. Duas trilhas de alimentação (+ e -) alimentam a protoboard inteira, e cada componente ganha uma coluna só para ele. Com essa disciplina, o professor acha qualquer falha em dez segundos.

Atividade

Montagem:

  • Resistor de 330 Ω com uma perna na coluna 1 e a outra na coluna 10.
  • Jumper fêmea-fêmea ligando a coluna 1 à trilha + da protoboard.
  • LED com a perna mais longa na coluna 10 e a mais curta na coluna 11.
  • Jumper fêmea-fêmea ligando a coluna 11 à trilha - da protoboard.
  • Jumper macho-fêmea do GPIO2 da placa para a coluna 10.

Note que o GPIO2, o resistor e o anodo do LED estão todos na coluna 10. O catodo do LED vai para o -.

  1. Desenhe no papel a matriz da protoboard, marcando a linha central e a posição das colunas 1 a 63. Marque no desenho onde ficaram o resistor, o LED e os três jumpers.
  2. Grave a resolução e confirme que o LED pisca no ritmo da linha --- testes rapidos na bancada --- do serial.
  3. Teste na bancada: junte dois pontos da mesma letra e depois dois pontos de letras diferentes. Escreva no caderno, em duas linhas, o que aconteceu em cada caso e por quê.
  4. Desligue o jumper do GPIO2 e confirme que o LED apaga. Depois reconecte-o pelo centro da linha, e não pela borda, e veja se o circuito ainda fecha. Explique o que aconteceu.
  5. Desloque o jumper do GPIO2 uma coluna para o lado, de propósito, e meça a leitura no serial. Diga o que mudou e qual foi o ponto do circuito que ficou aberto.
  6. Refaça a mesma ligação usando jumper macho-fêmea no lugar do fêmea-fêmea na coluna 10. Diga se o circuito ainda fecha e por que.

Nota: 10 pontos. Critério de fim: o desenho está no caderno, o LED acende com o circuito completo e o item 5 está medido e escrito.

Resolucao

// Aula 1 do dia 6: como a protoboard funciona.
//
// A protoboard não é uma placa de circuito: é uma matriz de contatos de metal
// escondidos sob o plástico. Este sketch não usa hardware nenhum — ele explica
// as trilhas no monitor serial, para o professor passar a apontar com a
// protoboard na mão enquanto a turma acompanha a figura.

#include <Arduino.h>

// Nenhuma peça é montada nesta aula: o sketch é o mapa. O LED só existe para
// dar um sinal de vida no começo e no fim, e prova que a placa está rodando.
const int PINO_LED = 2;
const int INTERVALO_MS = 3000;
const int NUMERO_DE_COLUNAS = 63;   // matriz de 64 contatos, numerados de 1 a 64

void setup() {
  pinMode(PINO_LED, OUTPUT);

  Serial.begin(115200);
  Serial.println();
  Serial.println("=== dia 6, aula 1: o mapa da protoboard ===");
  Serial.println();
  Serial.println("linha 1");
  Serial.println("      - - - + + + - - -");
  Serial.println("linha 5      ^  ^  ^      corte no meio: os dois");
  Serial.println("                  |  |      barramentos nao se tocam");
  Serial.println("linha 1      a  b  c      a b c sao TRILHAS diferentes");
  Serial.println("      - - - + + + - - -");
  Serial.println();
  Serial.println("Regras da bancada:");
  Serial.println("  1. Trilha em T (letra) atravessa a linha inteira sem corte.");
  Serial.println("  2. Coluna (numero) e um contato so.");
  Serial.println("  3. O espaco do meio separa dois barramentos que nao falam.");
  Serial.println("  4. Perna do resistor e do LED andam na COLUNA, nao na trilha.");
  Serial.println();
  Serial.print("Colunas por linha: ");
  Serial.println(NUMERO_DE_COLUNAS);
  Serial.println();
  Serial.println("Sabendo disso, monte a trilha: 5V -> pino 13, pino 13 -> resistor.");
}

void loop() {
  digitalWrite(PINO_LED, HIGH);

  Serial.println();
  Serial.println("--- testes rapidos na bancada ---");
  Serial.println("a) Jumpere dois pontos da MESMA letra. Os dois pinos falam.");
  Serial.println("b) Jumpere a letra A com a letra F. Nao falam: sao trilhas distintas.");
  Serial.println("c) Cruze dois jumpers num ponto so da coluna. Isso faz curto entre eles.");
  Serial.println();

  delay(INTERVALO_MS);
  digitalWrite(PINO_LED, LOW);
}

Por que assim e não de outro jeito. Esta aula não tem sensor nem peça nova: o sketch é um mapa que o professor lê em voz alta enquanto passa a protoboard na mão. O LED só pisca para dar sinal de vida entre uma parte e outra, e o delay(3000) dá tempo de o professor falar sem o serial atropelar.

O número de colunas vem de uma constante, e não de um 63 solto no meio do código. Na semana letiva, a protoboard de alguns alunos tem 400 pontos e de outros tem 830; quem escreve o número na hora em vez de declarar a constante tem dois códigos diferentes no mesmo trimestre.

O sketch não promete medir a protoboard. Ele imprime o que o professor está fazendo na bancada e o que a turma precisa testar com as próprias mãos. O que é verificável na prova de hoje é a montagem e o desenho, e o portão compila o mapa só para o professor ter o texto na tela durante a explicação.

Criterios de correcao

CritérioPontos
Desenho da matriz no caderno com linha central e colunas marcadas3 pontos
GPIO2, resistor e ânodo do LED na mesma coluna3 pontos
Item 3 com os dois testes de trilha anotados2 pontos
Item 5 com a leitura medida e o ponto aberto identificado2 pontos

Erros comuns

ErroComo apareceCorrecao
Confundir linha com colunaAluno joga o jumper na letra A e na coluna 10 ao mesmo tempo"A linha e toda horizional e letra. A coluna e toda vertical e número. Não se cruzam em nada."
Ignorar o corte da linha centralCircuito que não fecha e "fio faltando" inexistente"A fileira do meio tem corte. Os dois lados não se tocam sem jumper."
Colocar as duas pernas do resistor na mesma trilhaResistor que "sumiu" da montagem"As duas pernas precisam de duas colunas diferentes. Trilha e para distribuicao de alimentacao."
Inserir jumper pela lateral da protoboardJumper frouxo, sem contato"O jumper entra pelo buraco, pela frente. Pela lateral não fecha."
Usar fêmea-fêmea de ponta reta num ArduinoFio não alcanca o pino"Femea-femea e para pular entre dois pontos da protoboard. Para a placa, use macho-femea."
Cisar jumper contra jumper no mesmo pontoCurto entre dois sinais"Dois fios no mesmo ponto da coluna se tornam um no. Isso é um curto entre os dois circuitos."
Achar que a protoboard tem circuitoAluno pede para o professor "arrumar" o placa"Não ha circuito. Ha contatos de metal. Quem liga um no outro e o jumper."

Desafio extra

Monte na mesma protoboard dois circuitos independentes, um em cima da linha central e outro embaixo, usando apenas a linha central como separação. Diga no caderno por que os dois não se misturam mesmo sem nenhum jumper entre eles, e explique o que aconteceria se você colocasse uma ponte de jumper atravessando o corte.

>

A resolucao, compilada

// Aula 1 do dia 6: como a protoboard funciona.
//
// A protoboard não é uma placa de circuito: é uma matriz de contatos de metal
// escondidos sob o plástico. Este sketch não usa hardware nenhum — ele explica
// as trilhas no monitor serial, para o professor passar a apontar com a
// protoboard na mão enquanto a turma acompanha a figura.

#include <Arduino.h>

// Nenhuma peça é montada nesta aula: o sketch é o mapa. O LED só existe para
// dar um sinal de vida no começo e no fim, e prova que a placa está rodando.
const int PINO_LED = 2;
const int INTERVALO_MS = 3000;
const int NUMERO_DE_COLUNAS = 63;   // matriz de 64 contatos, numerados de 1 a 64

void setup() {
  pinMode(PINO_LED, OUTPUT);

  Serial.begin(115200);
  Serial.println();
  Serial.println("=== dia 6, aula 1: o mapa da protoboard ===");
  Serial.println();
  Serial.println("linha 1");
  Serial.println("      - - - + + + - - -");
  Serial.println("linha 5      ^  ^  ^      corte no meio: os dois");
  Serial.println("                  |  |      barramentos nao se tocam");
  Serial.println("linha 1      a  b  c      a b c sao TRILHAS diferentes");
  Serial.println("      - - - + + + - - -");
  Serial.println();
  Serial.println("Regras da bancada:");
  Serial.println("  1. Trilha em T (letra) atravessa a linha inteira sem corte.");
  Serial.println("  2. Coluna (numero) e um contato so.");
  Serial.println("  3. O espaco do meio separa dois barramentos que nao falam.");
  Serial.println("  4. Perna do resistor e do LED andam na COLUNA, nao na trilha.");
  Serial.println();
  Serial.print("Colunas por linha: ");
  Serial.println(NUMERO_DE_COLUNAS);
  Serial.println();
  Serial.println("Sabendo disso, monte a trilha: 5V -> pino 13, pino 13 -> resistor.");
}

void loop() {
  digitalWrite(PINO_LED, HIGH);

  Serial.println();
  Serial.println("--- testes rapidos na bancada ---");
  Serial.println("a) Jumpere dois pontos da MESMA letra. Os dois pinos falam.");
  Serial.println("b) Jumpere a letra A com a letra F. Nao falam: sao trilhas distintas.");
  Serial.println("c) Cruze dois jumpers num ponto so da coluna. Isso faz curto entre eles.");
  Serial.println();

  delay(INTERVALO_MS);
  digitalWrite(PINO_LED, LOW);
}

Sem saída de compilação gravada. Rode python3 validar.py -t 1 dia06 aula1.

Aula 2 — Alimentacao: MB102, 5 V, 3,3 V e GND

Objetivos

  • Identificar as três saídas do módulo MB102 e dizer o que cada uma entrega.
  • Separar, no circuito, o que é sinal de 3,3 V e o que é sinal de 5 V.
  • Explicar o papel do GND como caminho de volta da corrente, e não como "fio negativo".
  • Medir a tensão com a própria entrada analógica da placa e comparar com o valor que o professor leu no multímetro.

Material

  • 1 ESP32 DevKit V1 por aluno, com o cabo USB
  • 1 protoboard de 830 pontos e 1 jogo de jumpers por aluno
  • 1 módulo de alimentação MB102 por dupla
  • 2 a 5 LEDs de 3,3 V e 2 a 5 resistores de 330 Ω por aluno
  • 1 multímetro de bancada, um para cada dupla
  • Folha com a ponte de resistores desenhada, uma por dupla

Conceitos

O módulo MB102

O MB102 não é uma bateria nem um carregador: é um repetidor de alimentação. Ele recebe uma tensão de entrada e oferece essa mesma energia em barramentos prontos para a protoboard, com um regulador interno que faz a conversão para 3,3 V.

As saídas que importam:

MarcaO que éPara que usar
5Va tensão que entroualimentar LED, motor, relé
3V3saída do reguladorsinal do ESP32 e circuitos de 3,3 V
GNDreferência de zero voltsvolta de toda corrente

Com a placa ligada na USB, a entrada do MB102 é o próprio 5V da placa. Sem fonte externa, o módulo não tem o que alimentar: é por isso que o LED de energia dele só acende com a USB conectada.

5 V e 3,3 V: qual usar onde

A regra do curso inteiro cabe em uma frase: 5V alimenta, 3V3 é sinal.

Alimentar significa dar energia para um componente que vai consumir corrente: LED, motor, módulo de relé. Sinal significa o valor que entra e sai dos pinos de dados: botão, potenciômetro, divisor de tensão do ADC.

Colocar sinal de 5 V num pino do ESP32 é o caminho para queimar o pino: os pinos funcionam com 3,3 V, e 5 V é mais do que eles suportam. É a razão de o kit ter um conversor de nível lógico, que entra justamente nas aulas de display e sensor.

GND não é "negativo"

Corrente precisa de caminho de ida e de volta. A energia sai do 5V, atravessa o componente, e volta pelo GND. Sem o GND ligado, o circuito não fecha: o componente não tem por onde a corrente voltar, e não trabalha.

Duas consequências práticas que o aluno vai usar a semana toda:

  1. Tudo compartilha o mesmo GND. Placa, MB102, sensor e protoboard precisam estar ligados no mesmo GND, ou a referência de tensão não é a mesma dos dois lados.
  2. GND errado é sintoma de "não funciona". Se o sensor responde com número maluco, a primeira coisa a conferir é se os dois GNDs estão ligados juntos.

Ponte de resistores: o divisor de tensão

O ADC do ESP32 mede com segurança até perto de 3,3 V, mas com atenuação padrão chega a ler bem menos. Para medir uma tensão maior sem queimar o pino, usa-se um divisor de tensão: dois resistores em série entre a tensão e o GND, e a leitura sai do ponto onde eles se encontram.

tensaoReal = tensaoNoPino * (R1 + R2) / R2;

Com dois resistores iguais, o ponto do meio fica em exatamente metade da tensão de entrada. É o circuito mais usado do curso inteiro: ele aparece na medição da fonte, na leitura do LDR do dia 8 e na ponte do HC-SR04 do dia 11.

O erro do divisor é sempre o mesmo: colocar o resistor no lugar errado e o ponto de leitura sai no lugar errado. O lado de cada resistor importa.

Medir com a própria placa

analogReadMilliVolts devolve a leitura do ADC já convertida em milivolts, usando a referência interna medida da placa — e não um 3,3 V chutado no código. Por isso o número da placa raramente bate exatamente com o multímetro, e a diferença é esperada: as duas referências são diferentes, e a do ADC tem tolerância.

O número que importa para o aluno é a ordem de grandeza e a estabilidade: se a ponte estiver firme, o número fica parado; se o jumper estiver solto, o número pula.

Atividade

Montagem:

  • MB102 com a entrada 5V ligado ao 5V da placa.
  • Jumper fêmea-fêmea levando 3V3 do MB102 até a trilha + da protoboard.
  • Jumper fêmea-fêmea levando GND do MB102 até a trilha - da protoboard.
  • Resistor de 330 Ω da coluna 1 à coluna 5.
  • Segundo resistor de 330 Ω da coluna 5 à coluna 9.
  • Jumper do GPIO35 para a coluna 5, que é o ponto do meio da ponte.
  • Jumper da coluna 9 para o GND.

Os dois resistores de 330 Ω iguais formam a ponte. O pino mede o ponto do meio, que deve ficar em cerca de metade da tensão da fonte.

  1. Meça com o multímetro a tensão entre 5V e GND, entre 3V3 e GND e entre as colunas 1 e 9. Anote os três valores na folha.
  2. Meça com o multímetro o ponto do meio, na coluna 5. Diga quanto falta para ser exatamente a metade da tensão medida no item 1 entre as colunas 1 e 9, e justifique a diferença.
  3. Grave a resolução e compare o número do mV que aparece no serial com a sua medida do item 2. Diga qual dos dois está mais perto do valor do 3V3 do item 1.
  4. Desconecte apenas o jumper do GND da coluna 9 e observe o serial por dez segundos. Anote o que aconteceu com o número e diga por que.
  5. Troque o resistor da coluna 5 por um de 1 kΩ e grave. Anote o novo valor de mV e calcule, no caderno, quanto vale a soma dos dois resistores e quanto vale a razão entre eles.
  6. Escreva no caderno a linha que converte a tensão do meio da ponte na tensão real da fonte, usando a fórmula do divisor. Diga o que aconteceria se você usasse essa linha com dois resistores de valores muito diferentes.

Nota: 10 pontos. Critério de fim: a ponte está montada, o serial mostra um valor estável de milivolts e os itens 4 e 5 estão medidos e escritos.

Resolucao

// Aula 2 do dia 6: alimentação, MB102, 5 V, 3,3 V e GND.
//
// Último dia do bloco de C++. O sketch não mede nada que a placa não consiga
// medir: ele lê a própria fonte de alimentação pela entrada analógica, que é
// exatamente o que o professor faz com um multímetro. O valor numérico do
// ambiente não importa — o que importa é a diferença entre o que a fonte diz
// e o que a placa leu.

#include <Arduino.h>

const int PINO_MEDICAO = 35;          // GPIO35 é só entrada e não tem pull-up interno
const int LED_5V = 2;
const int LED_3V3 = 4;

// Precisa do divisor de tensão do kit: um resistor de 330 e um de 330, ou
// 10 kΩ e 10 kΩ, formam a ponte que leva 3,3 V para dentro da faixa do ADC.
const float TENSAO_REFERENCIA = 3.3;
const int LEITURA_MAXIMA_ADC = 4095;

unsigned long instanteDaLeitura = 0;

void setup() {
  pinMode(LED_5V, OUTPUT);
  pinMode(LED_3V3, OUTPUT);

  // O GPIO35 não tem resistor de pull-up interno, como o GPIO34. Deixá-lo
  // como INPUT flutuante faz a leitura vir qualquer coisa.
  pinMode(PINO_MEDICAO, INPUT);

  analogReadResolution(12);
  analogSetPinAttenuation(PINO_MEDICAO, ADC_11db);

  Serial.begin(115200);
  Serial.println();
  Serial.println("=== dia 6, aula 2: alimentacao e medicao ===");
  Serial.println();
  Serial.println("Alimente o MB102, faca a ponte de resistores e leia o numero.");
  Serial.println("O valor lido vem da sua bancada, nao de um numero pronto.");
  Serial.println();
  Serial.println("cru | mV");
}

void loop() {
  unsigned long agora = millis();

  if (agora - instanteDaLeitura >= 1000) {
    instanteDaLeitura = agora;

    int cru = analogRead(PINO_MEDICAO);

    // analogReadMilliVolts converte a leitura em milivolts usando a
    // referência interna do ADC. E mais preciso que multiplicar por 3.3 na
    // mão, porque ele usa a referência medida da placa e não um 3.3 fixo.
    int milivolts = analogReadMilliVolts(PINO_MEDICAO);

    Serial.print(cru);
    Serial.print("   |   ");
    Serial.println(milivolts);

    // Os dois LEDs marcam as duas trilhas do MB102. Qualquer um acender
    // prova que a alimentação está chegando na protoboard — e os dois
    // apagados é o sintoma de jumper solto, não de placa queimada.
    digitalWrite(LED_5V, cru > 0 ? HIGH : LOW);
    digitalWrite(LED_3V3, cru > 0 ? HIGH : LOW);
  }

  // Nada de delay aqui: o laço fica livre e o professor pode aproximar a
  // mão da ponte de resistores para ver o número variar na hora.
}

Por que assim e não de outro jeito. O sketch mede a própria fonte de alimentação pela entrada analógica. É a mesma coisa que o professor faz com o multímetro, só que com a placa: o aluno aprende que o analogRead serve para qualquer tensão, inclusive a que alimenta o circuito.

O pino é o GPIO35 e não o GPIO34 por um motivo específico: o GPIO34 tem resistor de pull-up interno, e deixar essa ligação em paralelo com o pull-up carrega a ponte e falseia a leitura. O GPIO35 é entrada pura, sem nada interno, e a ponte manda no número.

A ponte de dois resistores iguais aparece porque é a menor prova de que o ADC mede o ponto que a turma manda medir. Com dois resistores de 330 Ω, o ponto do meio fica em metade da tensão, e o número do serial tem de concordar com o multímetro dentro da tolerância da referência do ADC.

Os dois LEDs não estão ali por decoração: eles são o indicador de "chegou alimentação na protoboard". Os dois apagados é o sintoma de jumper solto, e essa é a primeira coisa que o professor olha antes de suspectar da ponte.

O loop não tem delay. O aluno aproxima a mão dos resistores e o número muda na hora, e essa é a prova de que a medição está lendo de verdade e não repetindo um valor guardado.

Criterios de correcao

CritérioPontos
MB102 com 3V3 e GND distribuídos nas trilhas da protoboard3 pontos
Ponte de dois resistores iguais com leitura no ponto do meio3 pontos
pinMode(PINO_MEDICAO, INPUT) e ADC_11db presentes2 pontos
Itens 4 e 5 medidos e escritos no caderno2 pontos

Erros comuns

ErroComo apareceCorrecao
5V do MB102 ligado no pino de sinalSensor maluco, pino quente ao toque"5V alimenta, 3V3 e sinal. Pino de dado não leva 5 V."
Esquecer de ligar os dois GNDLeitura instavel, sensor respondendo nada"Corrente precisa voltar. Sem GND comum, não ha circuito fechado."
Achar que GND e positivo e 5V e negativoAluno inverte a ponte e a leitura satura"GND e o caminho de volta. Pensa na corrente como agua: sai por um cano e volta pelo outro."
Ler a ponte no lugar erradoNúmero sempre no mesmo valor"A leitura vai no ponto do meio, onde os dois resistores se encontram."
Usar GPIO34 na ponteLeitura mais baixa que a do multímetro"O GPIO34 tem pull-up interno, e ele carrega a ponte. Use o GPIO35 ou outro sem pull-up."
Somar os dois resistores e dividir por um sóTensão calculada maior que a real"No divisor, o denominador e o resistor de baixo. Confira qual esta em cima e qual esta embaixo."
Não usar ADC_11dbLeitura satura em 4095 antes da metade do curso"Sem atenuacao, o ADC ve pouco mais de 1 V. A ponte de 3,3 V precisa de ADC_11db."
Confundir número do serial com valor exatoItem 3 respondido "esta errado""A referência interna do ADC tem tolerancia. Compare a ordem de grandeza e a estabilidade, não o digito."

Desafio extra

Substitua a ponte por uma de três resistores iguais em série, com a leitura na emenda entre o primeiro e o segundo. Meça, calcule a tensão prevista e compare com o serial. Depois escreva no caderno por que a leitura de uma ponte de três resistores iguais é diferente da ponte de dois, e qual delas daria menos erro de leitura na mesma fonte.

>

A resolucao, compilada

// Aula 2 do dia 6: alimentação, MB102, 5 V, 3,3 V e GND.
//
// Último dia do bloco de C++. O sketch não mede nada que a placa não consiga
// medir: ele lê a própria fonte de alimentação pela entrada analógica, que é
// exatamente o que o professor faz com um multímetro. O valor numérico do
// ambiente não importa — o que importa é a diferença entre o que a fonte diz
// e o que a placa leu.

#include <Arduino.h>

const int PINO_MEDICAO = 35;          // GPIO35 é só entrada e não tem pull-up interno
const int LED_5V = 2;
const int LED_3V3 = 4;

// Precisa do divisor de tensão do kit: um resistor de 330 e um de 330, ou
// 10 kΩ e 10 kΩ, formam a ponte que leva 3,3 V para dentro da faixa do ADC.
const float TENSAO_REFERENCIA = 3.3;
const int LEITURA_MAXIMA_ADC = 4095;

unsigned long instanteDaLeitura = 0;

void setup() {
  pinMode(LED_5V, OUTPUT);
  pinMode(LED_3V3, OUTPUT);

  // O GPIO35 não tem resistor de pull-up interno, como o GPIO34. Deixá-lo
  // como INPUT flutuante faz a leitura vir qualquer coisa.
  pinMode(PINO_MEDICAO, INPUT);

  analogReadResolution(12);
  analogSetPinAttenuation(PINO_MEDICAO, ADC_11db);

  Serial.begin(115200);
  Serial.println();
  Serial.println("=== dia 6, aula 2: alimentacao e medicao ===");
  Serial.println();
  Serial.println("Alimente o MB102, faca a ponte de resistores e leia o numero.");
  Serial.println("O valor lido vem da sua bancada, nao de um numero pronto.");
  Serial.println();
  Serial.println("cru | mV");
}

void loop() {
  unsigned long agora = millis();

  if (agora - instanteDaLeitura >= 1000) {
    instanteDaLeitura = agora;

    int cru = analogRead(PINO_MEDICAO);

    // analogReadMilliVolts converte a leitura em milivolts usando a
    // referência interna do ADC. E mais preciso que multiplicar por 3.3 na
    // mão, porque ele usa a referência medida da placa e não um 3.3 fixo.
    int milivolts = analogReadMilliVolts(PINO_MEDICAO);

    Serial.print(cru);
    Serial.print("   |   ");
    Serial.println(milivolts);

    // Os dois LEDs marcam as duas trilhas do MB102. Qualquer um acender
    // prova que a alimentação está chegando na protoboard — e os dois
    // apagados é o sintoma de jumper solto, não de placa queimada.
    digitalWrite(LED_5V, cru > 0 ? HIGH : LOW);
    digitalWrite(LED_3V3, cru > 0 ? HIGH : LOW);
  }

  // Nada de delay aqui: o laço fica livre e o professor pode aproximar a
  // mão da ponte de resistores para ver o número variar na hora.
}

Sem saída de compilação gravada. Rode python3 validar.py -t 1 dia06 aula2.