Arduino - Sensor de evitación de obstáculos por infrarrojos

En este tutorial, vamos a aprender cómo usar Arduino y el sensor infrarrojo de evitación de obstáculos para detectar la presencia del obstáculo.

Sensor de evitación de obstáculos de Arduino

Acerca del Sensor de Evitación de Obstáculos por Infrarrojos

El sensor de obstáculos por infrarrojos (IR) se utiliza para detectar la presencia de cualquier obstáculo frente al módulo del sensor mediante la señal infrarroja.

El rango de detección es de 2 cm a 30 cm.

El rango de detección se puede ajustar mediante un potenciómetro integrado.

Diagrama de pines

El sensor de evitación de obstáculos por infrarrojos incluye tres pines:

  • Pin GND: debe conectarse a GND (0V)
  • Pin VCC: debe conectarse a VCC (5V o 3.3V)
  • Pin OUT: es un pin de salida: BAJO cuando hay un obstáculo, ALTO cuando no hay obstáculo. Este pin debe conectarse al pin de entrada del Arduino.
Pinout del sensor de evitación de obstáculos por infrarrojos
image source: diyables.io

Cómo funciona

Un módulo sensor de obstáculos por infrarrojos tiene un transmisor IR incorporado y un receptor IR. El transmisor IR emite la señal IR. El receptor IR busca la señal IR reflejada para determinar si el objeto está presente o no. La presencia de un obstáculo se refleja en el pin OUT:

  • Si el obstáculo está presente delante del sensor, el pin de salida del sensor está en nivel bajo
  • Si el obstáculo no está presente delante del sensor, el pin de salida del sensor está en nivel alto

※ Nota:

Durante el envío, es posible que el sensor se deforme, lo que puede causar un mal funcionamiento. Si el sensor no funciona correctamente, ajuste el transmisor IR y el receptor para que queden paralelos.

Diagrama de Cableado

Diagrama de cableado del sensor de evitación de obstáculos por infrarrojos para Arduino

This image is created using Fritzing. Click to enlarge image

Cómo programar para un sensor de evitación de obstáculos por infrarrojos

  • Inicializa el pin de Arduino en el modo de entrada digital utilizando la función pinMode(). Por ejemplo, el pin GIOP18.
pinMode(18, INPUT_PULLUP);
  • Lee el estado del pin de Arduino usando la función digitalRead().
int state = digitalRead(18);

Código de Arduino

Hay dos maneras de programar para una aplicación de evitación de obstáculos:

  • Haz o no hagas algo mientras el obstáculo esté presente o ausente
  • Haz o no hagas algo cuando se detecte el obstáculo o cuando se despeje

Código de Arduino para verificar si hay un obstáculo

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.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); }

Pasos R\u00e1pidos

  • Copie el código anterior y ábralo con el IDE de Arduino
  • Haga clic en el botón Subir en el IDE de Arduino para cargar el código en Arduino
  • Coloque un obstáculo delante del sensor por un rato, y luego retírelo
  • Vea el resultado en el Monitor Serial.
COM6
Send
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
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Código de Arduino para detectar obstáculos

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.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; }

Pasos R\u00e1pidos

  • Copia el código anterior y ábrelo con el IDE de Arduino
  • Haz clic en el botón Subir en el IDE de Arduino para subir el código a Arduino
  • Coloca un obstáculo delante del sensor durante un rato y luego retíralo.
  • Consulta el resultado en el Monitor Serial.
COM6
Send
The obstacle is detected The obstacle is cleared
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

Referencias de Funciones

Tutoriales Relacionados

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!