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.
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
}

