Código de búsqueda

Código Arduino y video para el módulo de distancia IR Sharp

Código Arduino y video para el módulo de distancia IR Sharp

En este tutorial exploraremos cómo utilizar el módulo de distancia Sharp IR para medir distancias y activar acciones en función de la distancia detectada. Este proyecto demostrará cómo configurar el hardware y escribir el código para Arduino para leer las mediciones de distancia y activar un zumbador cuando se detecte un objeto dentro de un determinado rango. Aprenderás a cablear los componentes y a comprender los identificadores clave en el código.

Sharpt IR distance sensor

Para este proyecto utilizaremos un sensor Sharp IR que emite luz infrarroja y mide la distancia a un objeto en función de la luz reflejada. Cuando se detecte un objeto dentro del alcance, se activará el zumbador, proporcionando una forma simple pero eficaz de demostrar las capacidades del módulo Sharp IR. Asegúrate de consultar el video para una guía visual sobre la configuración y el código (en el video a las 00:00).

Hardware explicado

Los componentes principales de este proyecto incluyen un sensor de distancia infrarrojo Sharp, una placa Arduino y un zumbador. El sensor infrarrojo Sharp consta de un transmisor y un receptor que trabajan juntos para medir distancias. Cuando la luz infrarroja del transmisor incide en un objeto, se refleja de vuelta hacia el receptor, lo que le permite calcular la distancia en función del tiempo que tarda la luz en regresar.

El Arduino actúa como controlador, leyendo las mediciones de distancia del sensor IR y controlando el zumbador según las lecturas. El zumbador sonará cuando se detecte un objeto dentro de un rango especificado, lo que hace que esta configuración sea útil para aplicaciones como la detección de obstáculos en robótica.

Detalles de la hoja de datos

FabricanteAfilado
Número de piezaGP2Y0A21YK0F
Voltaje lógico/E/S5 V
Tensión de alimentación4.5 - 5.5 V
Tensión de salida0.4 - 2.5 V
Rango de medición10 - 80 cm
Tiempo de respuesta50 ms
Corriente de salida20 mA
PaqueteMódulo
Notas / variantesDisponible en múltiples rangos de distancia

  • Asegúrese de una fuente de alimentación adecuada (4.5 - 5.5 V) para evitar daños.
  • Use una resistencia para limitar la corriente si es necesario.
  • Mantenga el sensor limpio para lecturas precisas.
  • Tenga en cuenta la interferencia de la luz ambiental.
  • El cableado debe estar asegurado para evitar conexiones intermitentes.

Instrucciones de cableado

Arduino wiring for Sharf IR distance sensor
Arduino wiring for Sharf IR distance sensor

Para cablear el módulo de distancia IR Sharp, conecta el pin de tierra (GND) del módulo al pin GND del Arduino. Luego, conecta el pin VCC del módulo al pin 5V del Arduino. El pin de salida de señal del módulo Sharp IR debe conectarse al pin 2 del Arduino, que leerá los datos de distancia.

Para el zumbador, conecta el pin más largo (positivo) al pin 8 del Arduino y el pin más corto (negativo) al GND. Asegúrate de que todas las conexiones estén seguras y de que los componentes estén alimentados correctamente para garantizar un funcionamiento adecuado.

Ejemplos de código y tutorial

A continuación se muestra un breve extracto del código de Arduino donde definimos los pines y configuramos el sensor. El identificadorIRse define como el pin analógico utilizado para la señal del sensor.

#define IR A0 // define signal pin
SharpIR SharpIR(IR, model); // Initialize SharpIR with the defined pin

Este código inicializa el sensor IR Sharp en el pin analógico especificado. El identificadormodelespecifica el tipo de sensor que se está utilizando, que en este caso está establecido en 1080 para el modelo GP2Y0A21YK0F.

En la función setup, iniciamos la comunicación serial para supervisar las lecturas de distancia:

void setup() {
    Serial.begin(9600); // Initialize serial communication
    Serial.println("Robojax Sharp IR  "); // Print message to serial monitor
}

La función setup inicializa la comunicación serie a 9600 baudios, permitiendo que el Arduino envíe datos de distancia al Monitor serie para su observación.

Dentro de la función loop, leemos la distancia del sensor y la imprimimos:

void loop() {
    int dis = SharpIR.distance(); // Read the distance
    Serial.print("Mean distance: "); // Print distance to serial monitor
    Serial.println(dis); // Output the distance measurement
}

Este fragmento muestra cómo leer continuamente la distancia e imprimirla en el Monitor serie. La variabledisalmacena el valor de distancia medido por el sensor infrarrojo Sharp.

Demostración / Qué esperar

Cuando la configuración esté completa, puedes esperar que el zumbador suene cada vez que se detecte un objeto dentro del rango especificado del sensor IR Sharp. El Monitor Serial mostrará "Mean distance" junto con la distancia medida en centímetros. Si no hay objetos dentro del rango, el monitor también lo indicará (en el video a las 02:30).

Los problemas comunes incluyen asegurarse de que el sensor esté alineado correctamente y de que no haya obstrucciones que bloqueen la señal infrarroja. Además, compruebe que la fuente de alimentación sea estable para evitar lecturas erráticas.

Marcas de tiempo del vídeo

  • 00:00- Introducción al proyecto
  • 02:30- Demostración de la funcionalidad del sensor
  • 03:45- Explicación del cableado
  • 05:00- Recorrido por el código

Imágenes

Sharpt IR distance sensor GP2Y0A21YK0F
Sharpt IR distance sensor GP2Y0A21YK0F
Arduino wiring for Sharf IR distance sensor
Arduino wiring for Sharf IR distance sensor
Sharpt IR distance sensor
Sharpt IR distance sensor GP2Y0A21YK0F
69-This is the Arduino code and video for a Sharp Infrared Sensor Module
Idioma: C++
/*
 * Sharp IR (infrared) distance measurement module for Arduino
 * Measures the distance in cm.

 * Original library: https://github.com/guillaume-rico/SharpIR

 * Watch video instruction for this code: https://youtu.be/GL8dkw1NbMc
 *
 * Full explanation of this code and wiring diagram is available at
 * my Arduino Course at Udemy.com here: http://robojax.com/L/?id=62

 * Written by Ahmad Shamshiri on Feb 03, 2018 at 07:34
 * in Ajax, Ontario, Canada. www.robojax.com
 *

 * Get this code and other Arduino codes from Robojax.com
 Learn Arduino step by step in a structured course with all material, wiring diagrams, and libraries
 all in one place. 

 If you found this tutorial helpful, please support me so I can continue creating
 content like this. 

 or make a donation using PayPal http://robojax.com/L/?id=64

 *  * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.*
 * This code has been downloaded from Robojax.com
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.

*/




 */
  // Sharp IR code for Robojax.com
#include <SharpIR.h>

#define IR A0 // define signal pin
#define model 1080 // used 1080 because model GP2Y0A21YK0F is used
// Sharp IR code for Robojax.com
// ir: the pin where your sensor is attached
// model: an int that determines your sensor:  1080 for GP2Y0A21Y
//                                            20150 for GP2Y0A02Y
//                                            430 for GP2Y0A41SK
/*
2 to 15 cm GP2Y0A51SK0F	use 1080
4 to 30 cm GP2Y0A41SK0F / GP2Y0AF30 series	use 430
10 to 80 cm GP2Y0A21YK0F	use 1080
10 to 150 cm GP2Y0A60SZLF	use 10150
20 to 150 cm GP2Y0A02YK0F	use 20150
100 to 550 cm GP2Y0A710K0F	use 100550

 */

SharpIR SharpIR(IR, model);
void setup() {
    // Sharp IR code for Robojax.com
 Serial.begin(9600);
 Serial.println("Robojax Sharp IR  ");
}

void loop() {
    // Sharp IR code for Robojax.com
    delay(500);

  unsigned long startTime=millis();  // takes the time before the loop on the library begins

  int dis=SharpIR.distance();  // this returns the distance to the object you're measuring

  // Sharp IR code for Robojax.com

  Serial.print("Mean distance: ");  // returns it to the serial monitor
  Serial.println(dis);
  //Serial.println(analogRead(A0));
  unsigned long endTime=millis()-startTime;  // the following gives you the time taken to get the measurement
 Serial.print("Time taken (ms): ");
 Serial.println(endTime);
     // Sharp IR code for Robojax.com

}

Cosas que podrías necesitar

Recursos y referencias

Archivos📁

Bibliotecas de Arduino (zip)

Archivo de Fritzing