Código Arduino e Vídeo: Sensor de Obstáculos Infravermelho de 4 Canais para Carro Inteligente Arduino
Neste tutorial, exploraremos como usar um módulo sensor infravermelho de 4 canais para desvio de obstáculos e criar um carro inteligente. Este módulo é composto por quatro sensores infravermelhos que podem detectar obstáculos em várias direções, permitindo que seu veículo robótico reaja adequadamente. Cada sensor fornece feedback sobre a proximidade, permitindo que você programe respostas com base nos obstáculos detectados.

À medida que avançamos neste projeto, abordaremos os componentes de hardware, as instruções de fiação e o código necessário para operar os sensores de forma eficaz. Você pode encontrar esclarecimentos adicionais no vídeo (em 00:00).
Hardware Explicado
O componente principal deste projeto é o módulo de desvio de obstáculos por infravermelho de 4 canais, que utiliza o comparador diferencial quádruplo LM339. Este CI é capaz de operar entre 2 e 36 volts, mas no nosso caso usaremos 5 volts para compatibilidade com o Arduino. Cada sensor do módulo possui uma entrada inversora e uma entrada não inversora, permitindo comparar a luz infravermelha refletida pelos obstáculos e emitir um sinal correspondente.
O módulo é projetado com resistores de pull-up que mantêm a saída em nível alto quando nenhum obstáculo é detectado. Quando um objeto é detectado, a saída vai para nível baixo, fornecendo um sinal claro ao Arduino. Além disso, o módulo possui LEDs que indicam quando um obstáculo é detectado, melhorando o feedback ao usuário durante a operação.
Detalhes da ficha técnica
| Fabricante | Desconhecido |
|---|---|
| Número da peça | Evitamento de Obstáculos por Infravermelho de 4 Canais |
| Tensão lógica/E/S | 5 V |
| Tensão de alimentação | 2-36 V |
| Corrente de saída (por canal) | 10 mA (típ.) |
| Corrente de pico (por canal) | 20 mA (máx.) |
| Orientação sobre a frequência do PWM | Não aplicável |
| Limiares de entrada lógica | BAIXO < 0.8 V, ALTO > 2.0 V |
| Queda de tensão / RDF(ligado) / saturação | 0.2 V (típ.) |
| Limites térmicos | Temperatura de operação: -40 a 125 °C |
| Pacote | Módulo |
| Notas / variantes | Inclui 4 sensores com sensibilidade ajustável. |
- Use uma massa comum para todos os componentes para evitar entradas flutuantes.
- Ajuste o potenciômetro de sensibilidade para obter o alcance de detecção ideal.
- Garanta a tensão adequada da fonte de alimentação para evitar danificar os sensores.
- Verifique as conexões de fiação para evitar leituras incorretas dos sensores.
- Use capacitores de desacoplamento para estabilizar a alimentação dos sensores.
- Teste cada sensor individualmente antes de integrá-lo ao sistema principal.
Instruções de fiação
Para ligar o módulo de evitamento de obstáculos infravermelho de 4 canais ao Arduino, comece conectando a alimentação e o terra. Conecte o pino VCC do módulo sensor à saída 5V do Arduino. Em seguida, conecte o pino GND do módulo ao terra (GND) do Arduino. Isso fornecerá a energia necessária para que os sensores funcionem.
Em seguida, conecte os pinos de saída dos sensores aos pinos de entrada digitais do Arduino. Por exemplo, conecte a saída do sensor dianteiro-esquerdo (identificado comoN1) para o pino digital 2, o sensor frontal direito (N2) para o pino 3, o sensor traseiro esquerdo (N3) para o pino 4, e o sensor traseiro direito (N4) ao pino 5. Além disso, você pode conectar a saída do freio ao pino 8, o indicador de obstáculo dianteiro ao pino 9 e o indicador de obstáculo traseiro ao pino 10. Certifique-se de que todas as conexões estejam firmes para um funcionamento confiável.
Exemplos de Código e Guia Passo a Passo
O código Arduino começa definindo constantes para cada pino de sensor, para facilitar a referência ao longo do programa. Por exemplo,FRONT_LEFTé definido como pino 2, deixando claro qual sensor corresponde a qual pino.
#define FRONT_LEFT 2 // pin 2 for front-left sensor
#define FRONT_RIGHT 3 // pin 3 for front-right sensor
#define REAR_LEFT 4 // pin 4 for rear-left sensor
#define REAR_RIGHT 5 // pin 5 for rear-right sensor
Nosetup()função, cada pino do sensor é configurado como uma entrada usandopinMode(). Esta configuração permite ao Arduino ler os estados dos sensores durante a operação.
void setup() {
Serial.begin(9600);
pinMode(FRONT_LEFT, INPUT);
pinMode(FRONT_RIGHT, INPUT);
pinMode(REAR_LEFT, INPUT);
pinMode(REAR_RIGHT, INPUT);
}
No loop principal, o estado de cada sensor é lido usandodigitalRead(). Se um obstáculo for detectado (indicado por um sinal LOW), o LED correspondente é ativado e uma mensagem é impressa no monitor serial.
void loop() {
int FR = digitalRead(FRONT_RIGHT);
int FL = digitalRead(FRONT_LEFT);
if( FR == LOW || FL == LOW) {
digitalWrite(FRONT_OB,HIGH);
Serial.println("Front obstacle");
} else {
digitalWrite(FRONT_OB,LOW);
}
}
Esta estrutura de código permite fácil expansão e modificação, possibilitando que você adapte as respostas conforme as necessidades específicas da sua aplicação. Para o código completo, consulte a seção de carregamento abaixo.
Demonstração / O que esperar
Depois que tudo estiver conectado e o código carregado, você deve esperar que os LEDs do módulo acendam sempre que um obstáculo for detectado por qualquer um dos sensores. O monitor serial também exibirá mensagens indicando a presença de obstáculos na frente ou na traseira. Se os sensores estiverem posicionados corretamente, o carro inteligente reagirá parando ou mudando de direção conforme programado (no vídeo em 02:30).
Armadilhas comuns incluem fiação incorreta, que pode levar a entradas flutuantes ou leituras incorretas. Certifique-se de que os sensores estejam devidamente calibrados e que o potenciômetro esteja ajustado para a sensibilidade desejada. Testar cada sensor independentemente pode ajudar a identificar problemas antes da integração completa.
Marcas de tempo do vídeo
- 00:00- Introdução ao projeto
- 01:30- Explicação do hardware
- 02:30- Revisão de código
- 03:45- Instruções de fiação
- 04:50- Demonstração ao vivo
Coisas que você pode precisar
-
Amazonas
Recursos e referências
Ainda não há recursos.
Arquivos📁
Nenhum arquivo disponível.