Arduino Nano ESP32 - Sensor de Obstáculos

Este tutorial ensina como usar o Arduino Nano ESP32 com o sensor infravermelho de desvio de obstáculos para detectar a presença de um obstáculo.

Sobre o Sensor IR de Desvio de Obstáculos

O sensor de obstáculos IR (infravermelho) é usado para verificar se existe algum obstáculo na frente do módulo sensor, usando o sinal IR. O alcance de detecção vai de 2cm a 30cm e é ajustável por um potenciômetro embutido.

Pinagem

Um sensor IR de desvio de obstáculos tem três pinos:

  • Pino GND: conecte este pino ao GND (0V)
  • Pino VCC: conecte este pino ao VCC (5V ou 3.3v)
  • Pino OUT: é um pino de saída: LOW se há um obstáculo presente, HIGH se não há obstáculo. Este pino precisa ser conectado a um pino de entrada do ESP32.
Pinagem do sensor IR de desvio de obstáculos

Como Funciona

Um módulo sensor de obstáculos infravermelho é formado por um transmissor IR e um receptor IR. O transmissor IR emite o sinal IR, enquanto 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 está presente, o pino OUT do sensor fica em LOW
  • Se o obstáculo NÃO está presente, o pino OUT do sensor fica em HIGH

※ Nota:

Durante o transporte, o sensor pode se deformar, o que pode fazer com que ele funcione mal. Se o sensor não estiver funcionando direito, ajuste o transmissor e o receptor IR para garantir que fiquem paralelos.

Diagrama de Ligação

Diagrama de ligação do sensor IR de desvio de obstáculos com o Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Como Programar o Sensor IR de Desvio de Obstáculos

  • Inicialize o pino do Arduino Nano ESP32 no modo de entrada digital usando a função pinMode(). Por exemplo, o pino D2
pinMode(D2, INPUT_PULLUP);
  • Leia o estado do pino do Arduino Nano ESP32 usando a função digitalRead().
int state = digitalRead(D2);

Código do Arduino Nano ESP32

Existem dois casos de uso para implementar uma aplicação de desvio de obstáculos:

  • Executar ações enquanto o obstáculo está presente ou não está presente
  • Executar ações quando o obstáculo é detectado ou removido

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

/* * Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-obstacle-sensor */ #define SENSOR_PIN D2 // The Arduino Nano ESP32 pin connected to OUT pin of IR obstacle avoidance sensor void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // initialize the Arduino Nano ESP32 pin as an input 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

  • Se esta é a primeira vez que você usa o Arduino Nano ESP32, veja como configurar o ambiente para o Arduino Nano ESP32 no Arduino IDE.
  • Copie o código acima e cole no Arduino IDE.
  • Compile e faça o upload do código para a placa Arduino Nano ESP32 clicando no botão Upload do Arduino IDE
  • Coloque um obstáculo na frente do sensor por um tempo e depois retire-o.
  • Veja o resultado no Serial Monitor. Ele se parece com o abaixo:
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' 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 Nano ESP32 on COM15
2

Código do Arduino Nano ESP32 para detectar obstáculo

/* * Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-obstacle-sensor */ #define SENSOR_PIN D2 // The Arduino Nano ESP32 pin connected to OUT pin of IR obstacle avoidance sensor int prev_state = HIGH; // The previous state from the input pin int obstacle_state; // The current reading from the input pin void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // initialize the ESP32's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the input pin: obstacle_state = digitalRead(SENSOR_PIN); if (prev_state == HIGH && obstacle_state == LOW) Serial.println("The obstacle is detected"); else if (prev_state == LOW && obstacle_state == HIGH) Serial.println("The obstacle is cleared"); delay(50); // save the the last state prev_state = obstacle_state; }

Passos Rápidos

  • Copie o código acima e cole no Arduino IDE.
  • Compile e faça o upload do código para a placa Arduino Nano ESP32 clicando no botão Upload do Arduino IDE
  • Coloque um obstáculo na frente do sensor por um tempo e depois retire-o.
  • Veja o resultado no Serial Monitor. Ele se parece com o abaixo:
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
The obstacle is detected The obstacle is cleared
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

Vídeo

※ 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!