Arduino - Sensor Infravermelho de Desvio de Obstáculos

Neste tutorial, vamos aprender a usar o Arduino e o sensor infravermelho de desvio de obstáculos para detectar a presença de um obstáculo.

Sensor de Desvio de Obstáculos com Arduino

Sobre o Sensor IR de Desvio de Obstáculos

O sensor de obstáculos infravermelho (IR) é usado para detectar a presença de qualquer obstáculo na frente do módulo sensor, usando o sinal infravermelho. O alcance de detecção vai de 2cm a 30cm. O alcance de detecção pode ser ajustado por um potenciômetro embutido.

Pinagem

O sensor IR de desvio de obstáculos possui três pinos:

  • Pino GND: precisa ser conectado ao GND (0V)
  • Pino VCC: precisa ser conectado ao VCC (5V ou 3.3v)
  • Pino OUT: é um pino de saída: LOW quando há um obstáculo, HIGH quando não há obstáculo. Este pino precisa ser conectado a um pino de entrada do Arduino.
Pinagem do Sensor IR de Desvio de Obstáculos
image source: diyables.io

Como Funciona

Um módulo sensor de obstáculos infravermelho possui um transmissor IR e um receptor IR embutidos. O transmissor IR emite o sinal IR. O receptor IR procura o sinal IR refletido para determinar se o objeto está presente ou não. A presença do obstáculo é refletida no pino OUT:

  • Se o obstáculo estiver presente na frente do sensor, o pino OUT do sensor fica em LOW
  • Se o obstáculo NÃO estiver presente na frente do sensor, o pino OUT do sensor fica em HIGH

※ Nota:

Durante o transporte, o sensor pode ficar deformado, o que pode causar mau funcionamento. Se o sensor não estiver funcionando corretamente, ajuste o transmissor e o receptor IR para deixá-los paralelos.

Diagrama de Ligação

Diagrama de Ligação do Arduino com Sensor IR de Desvio de Obstáculos

This image is created using Fritzing. Click to enlarge image

Como Programar o Sensor IR de Desvio de Obstáculos

  • Inicializa o pino do Arduino no modo de entrada digital usando a função pinMode(). Por exemplo, o pino 18
pinMode(18, INPUT_PULLUP);
  • Lê o estado do pino do Arduino usando a função digitalRead().
int state = digitalRead(18);

Código Arduino

Existem duas formas de programar uma aplicação de desvio de obstáculos:

  • Fazer ou não fazer algo enquanto o obstáculo está presente ou ausente
  • Fazer ou não fazer algo quando o obstáculo é detectado ou removido

Código Arduino para verificar se o obstáculo está presente

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-infrared-obstacle-avoidance-sensor */ // Arduino's pin connected to OUT pin of IR obstacle avoidance sensor const int SENSOR_PIN = 8; void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // initialize the Arduino's pin as aninput pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the input pin: int state = digitalRead(SENSOR_PIN); if (state == LOW) Serial.println("The obstacle is present"); else Serial.println("The obstacle is NOT present"); delay(100); }

Passos Rápidos

  • Copie o código acima e abra-o no Arduino IDE
  • Clique no botão Upload no Arduino IDE para carregar o código no Arduino
  • Coloque um obstáculo na frente do sensor por um tempo e depois remova-o.
  • Veja o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
The obstacle is NOT present The obstacle is NOT present The obstacle is NOT present The obstacle is NOT present The obstacle is NOT present The obstacle is present The obstacle is present The obstacle is present The obstacle is present The obstacle is NOT present The obstacle is NOT present
Ln 11, Col 1
Arduino Uno on COM15
2

Código Arduino para detectar obstáculo

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-infrared-obstacle-avoidance-sensor */ // Arduino's pin connected to OUT pin of IR obstacle avoidance sensor const int SENSOR_PIN = 8; int lastState = HIGH; // the previous state from the input pin int currentState; // the current reading from the input pin void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // initialize the Arduino's pin as aninput pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the input pin: currentState = digitalRead(SENSOR_PIN); if (lastState == HIGH && currentState == LOW) Serial.println("The obstacle is detected"); else if (lastState == LOW && currentState == HIGH) Serial.println("The obstacle is cleared"); delay(50); // save the the last state lastState = currentState; }

Passos Rápidos

  • Copie o código acima e abra-o no Arduino IDE
  • Clique no botão Upload no Arduino IDE para carregar o código no Arduino
  • Coloque um obstáculo na frente do sensor por um tempo e depois remova-o.
  • Veja o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
The obstacle is detected The obstacle is cleared
Ln 11, Col 1
Arduino Uno on COM15
2

Vídeo

Referências de Funções

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!