top of page

Explorando o Sensor de Obstáculos Reflexivo Infravermelho na Robótica Educacional

Neste exercício, vamos explorar como o Sensor de Obstáculos Reflexivo Infravermelho funciona e como ele pode ser integrado com microcontroladores como o Arduino para detectar objetos e acionar LEDs indicadores. O objetivo é utilizar o sensor para identificar a presença de um obstáculo e, com isso, ativar um LED verde ou vermelho, criando uma interação visual entre o sistema e o usuário.

Mecânica por trás do Sensor de Obstáculos Reflexivo Infravermelho

Os sensores infravermelhos de obstáculos operam com o princípio da reflexão da luz infravermelha. Eles possuem um emissor (LED infravermelho) e um receptor (fototransistor ou fotodiodo). Quando um objeto entra no alcance do sensor, a luz infravermelha emitida é refletida de volta e detectada pelo receptor, acionando a saída do sensor.

Funcionamento básico:

  • O LED infravermelho emite uma luz invisível ao olho humano.

  • Se um objeto estiver dentro do alcance do sensor, ele reflete essa luz de volta ao receptor.

  • O receptor detecta essa reflexão e altera o estado do sinal de saída.

  • A maioria dos sensores de obstáculos retorna LOW (0 lógico) quando detecta um objeto e HIGH (1 lógico) quando não há obstáculo.

Como interpretar os sinais digitais do sensor?

  • LOW (0 lógico) → Obstáculo detectado.

  • HIGH (1 lógico) → Nenhum obstáculo detectado.

Como programá-lo para ativar os LEDs?

Quando o sensor detecta um obstáculo, ele envia um sinal digital para o microcontrolador (Arduino). O código programado no Arduino lê esse sinal e acende um LED verde para indicar que há um obstáculo, ou um LED vermelho para indicar que a área está livre.

Componentes

  • Arduino UNO

  • Protoboard

  • Jumpers

  • Led Verde

  • Led Vermelho

  • Resistores 220 Ω

  • Sensor de Obstáculos Reflexivo Infravermelho

Conexões

Sensor de Obstáculos Reflexivo Infravermelho:

  • VCC (pino de alimentação) -> Conectar ao pino 5V do Arduino.

  • GND (pino de terra) -> Conectar ao pino GND do Arduino.

  • OUT (pino de sinal) → Conectar ao pino 2 do Arduino (para leitura do sensor)

LED Verde:

  • Ânodo (perna longa) → Conectar ao pino 8 do Arduino.

  • Cátodo (perna curta) → Conectar ao GND do Arduino através de um resistor de 220Ω.

 

LED Vermelho:

  • Ânodo (perna longa) → Conectar ao pino 9 do Arduino.

  • Cátodo (perna curta) → Conectar ao GND do Arduino através de um resistor de 220Ω.

Sobre o Código:

  • pinMode(SENSOR, INPUT); → Configura o pino do sensor como entrada para ler os sinais.

  • pinMode(LED_VD, OUTPUT); → Configura o LED verde como saída.

  • pinMode(LED_VM, OUTPUT); → Configura o LED vermelho como saída.

  • digitalRead(SENSOR); → Lê o estado atual do sensor.

  • Condicional if (estado == LOW):

    • Se houver um obstáculo: Acende o LED verde e apaga o vermelho.​

    • Se não houver obstáculo: Acende o LED vermelho e apaga o verde.

  • delay(100); → Pequeno atraso para estabilizar a leitura do sensor.​

Diagrama

Protótipo de um sensor de Obstáculos

Programa

#define SENSOR 2   // Pino de saída do sensor

#define LED_VD 8   // LED verde (indica passagem livre)

#define LED_VM 9   // LED vermelho (indica obstáculo)

 

void setup() {

  pinMode(SENSOR, INPUT);    // Define o sensor como entrada

  pinMode(LED_VD, OUTPUT);   // Define o LED verde como saída

  pinMode(LED_VM, OUTPUT);   // Define o LED vermelho como saída

  Serial.begin(9600);        // Inicializa a comunicação serial

}

 

void loop() {

  int estado = digitalRead(SENSOR);  // Lê o estado do sensor

 

  if (estado == LOW) {  // Se detectar um obstáculo (a maioria dos sensores retorna LOW quando detecta)

    digitalWrite(LED_VD, HIGH);  // Acende o LED verde (passagem liberada)

    digitalWrite(LED_VM, LOW);   // Apaga o LED vermelho

    Serial.println("🔴 Obstáculo detectado!");

  } else {

    digitalWrite(LED_VD, LOW);   // Apaga o LED verde

    digitalWrite(LED_VM, HIGH);  // Acende o LED vermelho (alerta)

    Serial.println("🟢 Sem obstáculo.");

  }

 

  delay(100); // Pequeno atraso para evitar leituras muito rápidas

}

bottom of page