Código de búsqueda

Código de Arduino y vídeo para el módulo de distancia IR Sharp con pantalla LCD1602

Código de Arduino y vídeo para el módulo de distancia IR Sharp con pantalla LCD1602

En este tutorial aprenderemos cómo usar el módulo de distancia infrarrojo Sharp junto con una pantalla LCD1602 para medir distancias con precisión. El sensor IR Sharp emitirá la distancia medida, que luego se mostrará en la LCD, permitiendo retroalimentación en tiempo real. Al final de este proyecto tendrás una configuración funcional que puede medir distancias de 4 a 30 centímetros (en el video a 00:30).

Módulos de salida analógica Sharp:
de 2 a 15 cm GP2Y0A51SK0F
4 a 30 cm GP2Y0A41SK0F / serie GP2Y0AF30
10 a 80 cm GP2Y0A21YK0F
De 10 a 150 cm GP2Y0A60SZLF
20 a 150 cm GP2Y0A02YK0F
100 a 550 cm GP2Y0A710K0F

Sharpt IR distance sensor

El sensor de distancia Sharp IR funciona emitiendo luz infrarroja y midiendo el tiempo que tarda en reflejarse. Esto permite que el sensor calcule la distancia basándose en la cantidad de luz recibida. La pantalla LCD1602 se utiliza para presentar esta información en un formato legible. La configuración es compacta, lo que la hace adecuada para diversas aplicaciones, incluyendo la robótica y los sistemas de medición de distancia.

Hardware explicado

Para este proyecto utilizaremos el sensor de distancia Sharp IR y la pantalla LCD1602. El sensor Sharp IR tiene tres cables: el cable rojo se conecta a la alimentación de 5 V, el cable negro se conecta a tierra y el cable amarillo es la señal de salida que se conecta a un pin analógico del Arduino. La pantalla LCD1602 requiere varios pines para la comunicación, que también se conectarán al Arduino.

La pantalla LCD1602 utiliza la biblioteca LiquidCrystal para gestionar los datos que se le envían, lo que permite un control sencillo de su salida. Esta biblioteca gestiona la comunicación entre el Arduino y la LCD, facilitando la impresión de texto y números.

Detalles de la ficha técnica

Fabricanteafilado
Número de piezaGP2Y0A41SK0F
Voltaje lógico/E/S5 V
Tensión de alimentación4.5 - 5.5 V
Rango de distancia de operación4 - 30 cm
Voltaje de salida (a 30 cm)0.4 V
Tensión de salida (a 4 cm)3 V
Tiempo de respuesta30 ms
PaqueteMódulo compacto
Notas / variantesDiferentes modelos disponibles para distintos rangos

  • Asegúrese de que el sensor esté alimentado correctamente a 5 V.
  • Utilice una masa común para todos los componentes.
  • Tenga cuidado con la tensión de salida, que varía con la distancia.
  • Considere usar un filtro en la señal de salida para estabilizar las lecturas.
  • Mantenga el sensor limpio y libre de obstrucciones para obtener mediciones precisas.

Instrucciones de cableado

Arduino Wiring Diagram of Sharp distance sensor with LCD1602-2
Diagrama de cableado de Arduino del sensor de distancia Sharp con LCD1602-2 — Arduino Wiring Diagram of Sharp distance sensor with LCD1602-2

Para cablear el módulo de distancia IR Sharp, conecte el cable rojo al pin de 5V del Arduino. A continuación, conecte el cable negro a uno de los pines de tierra (GND) del Arduino. El cable amarillo, que suministra la medición de distancia, debe conectarse al pin analógico.A0En el Arduino. Para la pantalla LCD1602, conecte los pines de la siguiente manera:rsal pin 12,enal pin 11,d4al pin 5,d5al pin 4,d6al pin 3, yd7al pin 2. Asegúrese de que todas las conexiones estén firmes para evitar problemas por cables sueltos (en el video a las 02:15).

Ejemplos de código y guía paso a paso

El código de Arduino para este proyecto inicializa la pantalla LCD y el sensor de infrarrojos Sharp. Los identificadores clave incluyenIR, que se define como el pin analógico utilizado para la salida del Sharp IR, ymodel, que especifica el tipo de sensor Sharp que se está utilizando. En la función setup, la pantalla LCD se inicializa para mostrar contenido.

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

#define IR A0 // define Sharp IR signal pin
#define model 430 // the model of the IR module

Este fragmento muestra cómo se inicializa la biblioteca LiquidCrystal y cómo se definen el pin y el modelo del sensor IR. El modelo es crucial para garantizar que la biblioteca funcione correctamente con el tipo específico de sensor que se está utilizando.

En la función loop, la distancia se mide y se muestra continuamente en la LCD. La funciónSharpIR.distance()recupera la distancia en centímetros, que luego se formatea en una cadena y se imprime en la LCD.

int dis = SharpIR.distance(); // gets the distance in cm
String distance = String(dis);
distance = "Distance: " + distance + "cm";
lcd.print(distance);

Este fragmento de código obtiene la lectura de distancia del sensor y la formatea para su visualización. La actualización continua de la pantalla proporciona retroalimentación en tiempo real sobre la distancia medida por el sensor Sharp IR.

Demostración / Qué esperar

Al completar el cableado y subir el código, debería ver que la pantalla LCD muestra la distancia medida por el sensor IR Sharp. Puede probar la configuración colocando un obstáculo a distintas distancias. Las lecturas deberían ser precisas dentro del rango especificado de 4 a 30 centímetros. Tenga en cuenta que las lecturas pueden volverse menos fiables en los extremos de este rango (en el video a las 04:50).

Marcas de tiempo del vídeo

  • 00:00Introducción
  • 02:15Instrucciones de cableado
  • 04:50Demostración de la configuración

Imágenes

Diagrama de cableado de Arduino del sensor de distancia Sharp con LCD1602-2
Diagrama de cableado de Arduino del sensor de distancia Sharp con LCD1602-2
LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
Sharpt IR distance sensor
Sharpt IR distance sensor GP2Y0A21YK0F
71-This is the Arduino code and video for a Sharp Infrared Sensor Module with LCD1602.
Idioma: C++
/*
 * Sharp IR (infrared) distance measurement module for Arduino
 * Measures the distance in cm and displays it on LCD1602 (without the I2C module)

 * Original library: https://github.com/guillaume-rico/SharpIR
 
 * Watch video instructions for this code: https://youtu.be/NjUOEAoKY7A
 * 
 * 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/>.

*/



// original source https://www.arduino.cc/en/Tutorial/HelloWorld
// include the library code:
#include <LiquidCrystal.h>

// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

///////////////////***** start of Sharp IR
//Sharp IR library source: https://github.com/guillaume-rico/SharpIR
#include <SharpIR.h>

#define IR A0 // define Sharp IR signal pin
#define model 430 // the model of the IR module
// Sharp IR code for Robojax.com
// ir: the pin where your sensor is attached
// model: an int that determines your sensor:
/*
 * GP2Y0A02YK0F --> "20150"
 GP2Y0A21YK --> "1080"
 GP2Y0A710K0F --> "100500"
  GP2YA41SK0F --> "430"
 */
 
 

SharpIR SharpIR(IR, model);
/////////////////////**** end of Sharp IR

void setup() {
  // Robojax LCD1602 Test 
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  // Robojax Sharp IR with LCD1602 Test 
}

void loop() {
   lcd.clear();
  // Robojax.com Sharp IR Test 
    lcd.setCursor(0, 0);
    lcd.print("Robojax IR Test");
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
 int dis=SharpIR.distance();// gets the distance in cm
 String distance = String(dis);
 distance ="Distance: "+distance+"cm";
 lcd.print(distance); 



  delay(500);
  // Robojax.com Sharp IR Test  
}

Recursos y referencias

Archivos📁

Bibliotecas de Arduino (zip)

Archivo de Fritzing