🤖 RoboFeed
Explorar aulas Entrar Comece grátis
🤖 Robótica

Robô Seguidor de Linha com 2 Sensores Infravermelhos

Robô autônomo · Sensores IV · Ponte H · Decisão por leitura múltipla

👤 Weslley Barros 🏫 Plataforma RoboFeed 8º ano9º ano 🕐 2h 30min (idealmente em 2 encontros) ⚡ Plugada ❤️ 2
🔧 Modo Bancada · passo a passo, pro aluno no tablet

🎯 Objetivos de aprendizagem

  • Construir um robô móvel autônomo capaz de seguir uma linha preta no chão.
  • Programar a lógica de decisão com base na leitura de 2 sensores simultâneos.
  • Compreender o princípio do sensor TCRT5000 (reflexão de luz infravermelha).
  • Controlar motores DC com a ponte H L298N (sentido + velocidade).

📚 Objetos de conhecimento

Robôs autônomos · Sensores infravermelhos (TCRT5000) · Ponte H (L298N) · Motores DC · PWM pra velocidade · Lógica condicional com múltiplas variáveis · Arquitetura completa: percepção → decisão → ação

🧭 Habilidades BNCC Computação (6)
🧠 Pensamento Computacional
EF89CO01 Desenvolver projetos computacionais que integrem decomposição, abstração, generalização e avaliação crítica da solução proposta.
EF89CO02 Implementar algoritmos com funções/sub-rotinas, listas/arrays e leitura de sensores, em linguagens de blocos ou textuais (C++, Python).
💻 Mundo Digital
EF89CO03 Projetar e construir sistemas integrados que combinem hardware (placa, sensores, atuadores) e software (algoritmo) para resolver problemas reais.
EF89CO04 Avaliar arquiteturas de hardware (processador, memória, periféricos) e modelos de comunicação (cliente-servidor, IoT) em soluções tecnológicas.
🌐 Cultura Digital
EF89CO05 Discutir aspectos éticos do uso de inteligência artificial (viés algorítmico, automação, direitos autorais, deepfakes) e propor princípios de uso responsável.
EF89CO06 Compreender legislações de proteção de dados (LGPD) e aplicar boas práticas de segurança digital, autoria e propriedade intelectual em produções escolares.

Habilidades dos anos selecionados (8º ano, 9º ano) — Resolução CNE/CP nº 1/2022. Em turmas de Ensino Médio, mapear para EM13CO.

🧰 Materiais e componentes

Arduino Uno + cabo USB
Arduino Uno + cabo USB
Sensores infravermelhos TCRT5000 (módulo)
Sensores infravermelhos TCRT5000 (módulo)
Módulo Ponte H L298N
Módulo Ponte H L298N
Motores DC com caixa de redução + rodas
Motores DC com caixa de redução + rodas
Roda boba (3ª roda traseira)
Roda boba (3ª roda traseira)
Chassi (acrílico, MDF ou papelão duro)
Chassi (acrílico, MDF ou papelão duro)
Suporte de 4 pilhas AA (6V) — alimenta a Ponte H
Suporte de 4 pilhas AA (6V) — alimenta a Ponte H
Jumpers macho-macho e macho-fêmea
Jumpers macho-macho e macho-fêmea
Fita isolante PRETA (pra fazer a pista)
Fita isolante PRETA (pra fazer a pista)
Cartolina branca grande (base da pista)
Cartolina branca grande (base da pista)
🪜 Desenvolvimento da aula
Introdução / Contextualização

Mostre vídeos curtos de robôs seguidores de linha em competições e fábricas (AGVs). Discuta a diferença entre 'pré-programado' (faz sempre a mesma coisa) e 'autônomo' (decide em tempo real). Apresente os componentes na bancada: sensor IV (mostra a luz vermelha que ele emite quando ligado), Ponte H (explique a expressão 'ponte' — permite inverter o sentido), motores DC. Princípio do sensor IV: emite luz IV e mede o quanto reflete. Superfície preta absorve → pouco retorna → leitura 0. Superfície branca reflete → muito retorna → leitura 1. Mostre o trimpot do sensor pra calibrar o limiar. Explique a Ponte H: 4 pinos de controle (IN1-IN4) decidem o sentido, 2 pinos PWM (ENA, ENB) decidem a velocidade. Mostre como combinações de HIGH/LOW invertem o motor.

Montagem do Circuito / Hardware

AULA 1 (sem sensores ainda): 1. Monte o chassi com os 2 motores e a roda boba. 2. Conecte os motores aos terminais OUT1/OUT2 e OUT3/OUT4 da Ponte H. 3. Ligue o suporte de pilhas (6V) na entrada VCC da Ponte H, e a chave de alimentação. 4. Ligue GND da Ponte H ao GND do Arduino. 5. Conecte IN1, IN2, IN3, IN4, ENA, ENB nos pinos do Arduino conforme código. AULA 2 (sensores): 6. Fixe os 2 sensores na FRENTE do chassi, a ~1 cm do chão, separados por ~3 cm. 7. VCC dos sensores → 5V do Arduino. GND → GND. OUT esquerdo → A0. OUT direito → A1.

Programação / Codificação

1. Compile o código. 2. Antes de enviar, eleve o robô do chão (rodas no ar) — vai ser teste. 3. Envie pro Arduino. 4. Com o robô no ar, abra o Monitor Serial pra ver as leituras dos sensores. 5. Passe fita preta na frente de um sensor de cada vez — confira se a roda do lado certo para. 6. Ajuste o limiar dos sensores girando o trimpot até funcionar bem.

Teste, Depuração e Ajustes

1. Construa a pista: fita isolante PRETA sobre cartolina BRANCA, com curvas suaves. 2. Coloque o robô na pista com os sensores sobre a linha. 3. Espera-se que ele siga a linha — corrigindo quando sai pra um lado. 4. Erros comuns: sensores muito altos (não detectam), motores invertidos (anda pra trás), velocidade muito alta (ele 'pula' a linha). Diminua VELOCIDADE pra 100 pra estabilizar. 5. Variação: faça curvas em zigue-zague e cruzamentos.

Encerramento / Socialização

Competição: cada equipe corre seu robô na mesma pista. Cronometre. Discussão final: 'O que faria seu robô melhor?'. Anotem ideias: mais sensores, PWM dinâmico, PID. Conexão com a realidade: AGVs em armazéns Amazon, robôs Mars Rover, Roomba — todos usam o mesmo princípio (sensor → decisão → atuador), só com sensores mais sofisticados.

🔌 Montagem do robô

Placa: Arduino Nano

⬇ baixar SVG
🧰 Montagem do robôPlaca: Arduino Nano · 4 componentes · 4 ligações detectadas do códigoNANO133V3AREFA0A1A2A3A4A5A6A75VRSTGNDVIN12111098765432GNDRST10Arduino NanoA0 · leitura da linhaSeguidor de Linha(TCRT5000) esquerdoA1 · leitura da linhaSeguidor de Linha(TCRT5000) direitoD2, D3, D5 · velocidade e sent…Motor DC esquerdoD4, D7, D6 · velocidade e sent…Motor DC direitoLEGENDA DOS FIOSAnalógico (leitura)Outro / dados
🧰 Montagem do robôArduino Nanoplaca controladoraSeguidor de Linha…A0Seguidor de Linha…A1Motor DC esquerdoD2, D3, D5Motor DC direitoD4, D7, D6
as peças reagem: LED acende, botão é clicável, serial abaixo
🖥️ Monitor serial

📋 Tabela de ligações (fio a fio)
Sistema motor
Motor DC esquerdo
fio D2, D3, D5 velocidade e sentido
Motor DC direito
fio D4, D7, D6 velocidade e sentido
Outros
Seguidor de Linha (TCRT5000) esquerdo
fio A0 leitura da linha
Seguidor de Linha (TCRT5000) direito
fio A1 leitura da linha

💻 Código

aula.ino
// Robô seguidor de linha
// 2 sensores IV: pinos A0 (esquerdo) e A1 (direito)
// Ponte H L298N: motor esquerdo (IN1=2, IN2=3, ENA=5)
//                motor direito  (IN3=4, IN4=7, ENB=6)

// Sensores: leitura digital — 0 = linha preta, 1 = fora da linha
const int SENSOR_ESQ = A0;
const int SENSOR_DIR = A1;

// Motor esquerdo
const int M_ESQ_IN1 = 2;
const int M_ESQ_IN2 = 3;
const int M_ESQ_PWM = 5;  // ENA

// Motor direito
const int M_DIR_IN3 = 4;
const int M_DIR_IN4 = 7;
const int M_DIR_PWM = 6;  // ENB

const int VELOCIDADE = 150;  // 0–255 (PWM)

void setup() {
  pinMode(SENSOR_ESQ, INPUT);
  pinMode(SENSOR_DIR, INPUT);
  pinMode(M_ESQ_IN1, OUTPUT);
  pinMode(M_ESQ_IN2, OUTPUT);
  pinMode(M_DIR_IN3, OUTPUT);
  pinMode(M_DIR_IN4, OUTPUT);
  Serial.begin(9600);
}

void frente() {
  digitalWrite(M_ESQ_IN1, HIGH); digitalWrite(M_ESQ_IN2, LOW);
  digitalWrite(M_DIR_IN3, HIGH); digitalWrite(M_DIR_IN4, LOW);
  analogWrite(M_ESQ_PWM, VELOCIDADE);
  analogWrite(M_DIR_PWM, VELOCIDADE);
}

void viraEsquerda() {
  digitalWrite(M_ESQ_IN1, LOW);  digitalWrite(M_ESQ_IN2, LOW);  // para esq
  digitalWrite(M_DIR_IN3, HIGH); digitalWrite(M_DIR_IN4, LOW);  // dir frente
  analogWrite(M_DIR_PWM, VELOCIDADE);
}

void viraDireita() {
  digitalWrite(M_ESQ_IN1, HIGH); digitalWrite(M_ESQ_IN2, LOW);  // esq frente
  digitalWrite(M_DIR_IN3, LOW);  digitalWrite(M_DIR_IN4, LOW);  // para dir
  analogWrite(M_ESQ_PWM, VELOCIDADE);
}

void parar() {
  analogWrite(M_ESQ_PWM, 0);
  analogWrite(M_DIR_PWM, 0);
}

void loop() {
  int esq = digitalRead(SENSOR_ESQ);
  int dir = digitalRead(SENSOR_DIR);

  // Lógica:
  // Ambos brancos (1,1) → reta → frente
  // Esq preto, dir branco (0,1) → desviou pra direita → vira esquerda
  // Esq branco, dir preto (1,0) → desviou pra esquerda → vira direita
  // Ambos pretos (0,0) → cruzamento ou fim → para

  if (esq == 1 && dir == 1) frente();
  else if (esq == 0 && dir == 1) viraEsquerda();
  else if (esq == 1 && dir == 0) viraDireita();
  else parar();

  delay(20);
}

🔀 Fluxograma do algoritmo

flowchart TD A(["Início"]) --> B{"Sensor esquerdo na linha?"} B -->|Sim| C{"Sensor direito na linha?"} C -->|Sim| D["Seguir em frente"] C -->|Não| E["Virar à direita"] B -->|Não| F{"Sensor direito na linha?"} F -->|Sim| G["Virar à esquerda"] F -->|Não| H["Parar"] D --> A E --> A G --> A H --> A

🧱 Algoritmo em blocos

quando @greenFlag for clicado
sempre
  se <ambos os sensores livres> então
    seguir em frente
  senão
    se <sensor esquerdo na linha> então
      virar à esquerda
    senão
      se <sensor direito na linha> então
        virar à direita
      senão
        parar
      end
    end
  end
end

✅ Avaliação

Esta é a aula MAIS COMPLEXA do trilho. Avalie em 3 dimensões: (1) Montagem física (chassi correto, fiação organizada); (2) Programação (entendeu PWM, condicionais com 2 variáveis); (3) Calibração e debug (conseguiu ajustar o trimpot e mudar valores). Trabalho em equipe é crítico — observe quem dirige o grupo e quem fica passivo. A competição final é evidência rica do que cada grupo dominou.

🤖 Quer essa aula do SEU jeito?

O Co-professor adapta esta aula pro seu ano e contexto — ou a estica numa sequência didática de 2 a 4 encontros — e gera um PDF pronto pra você. A estrutura da aula é preservada. Cadastre-se grátis pra usar.

✨ Adaptar e gerar PDF

💬 Comentários

Entre na sua conta ou crie uma grátis pra comentar.

Seja o primeiro a comentar.

Gostou desta aula?

Monte aulas como esta em minutos, com ajuda da IA — e compartilhe com professores do Brasil todo. É grátis.

Criar minha conta grátis
📲 Compartilhar no WhatsApp

Explorar mais aulas · RoboFeed — robótica e computação na escola, alinhado à BNCC.