Code de recherche

Code Arduino et vidéo pour le module de distance IR Sharp avec écran LCD1602

Code Arduino et vidéo pour le module de distance IR Sharp avec écran LCD1602

Dans ce tutoriel, nous apprendrons comment utiliser le module de distance infrarouge Sharp conjointement avec un écran LCD1602 pour mesurer des distances avec précision. Le capteur IR Sharp fournira la distance mesurée, qui sera ensuite affichée sur le LCD, permettant un retour en temps réel. À la fin de ce projet, vous disposerez d'un montage fonctionnel capable de mesurer des distances de 4 à 30 centimètres (dans la vidéo à 00:30).

Modules de sortie analogiques Sharp :
2 à 15 cm GP2Y0A51SK0F
4 à 30 cm série GP2Y0A41SK0F / GP2Y0AF30
de 10 à 80 cm GP2Y0A21YK0F
10 à 150 cm GP2Y0A60SZLF
20 à 150 cm GP2Y0A02YK0F
100 à 550 cm GP2Y0A710K0F

Sharpt IR distance sensor

Le capteur de distance infrarouge Sharp fonctionne en émettant de la lumière infrarouge et en mesurant le temps nécessaire pour que la lumière soit réfléchie. Cela permet au capteur de calculer la distance en fonction de la quantité de lumière reçue. L'écran LCD1602 est utilisé pour présenter ces informations dans un format lisible. L'ensemble est compact, ce qui le rend adapté à diverses applications, notamment la robotique et les systèmes de mesure de distance.

Le matériel expliqué

Pour ce projet, nous utiliserons le capteur de distance infrarouge Sharp et l'afficheur LCD1602. Le capteur Sharp IR a trois fils : le fil rouge se connecte à l'alimentation 5V, le fil noir à la masse (GND) et le fil jaune est le signal de sortie qui se branche sur une broche analogique de l'Arduino. L'afficheur LCD1602 nécessite plusieurs broches pour la communication, qui seront elles aussi connectées à l'Arduino.

L'afficheur LCD1602 utilise la bibliothèque LiquidCrystal pour gérer les données qui lui sont envoyées, ce qui permet de contrôler facilement ce qui s'affiche. Cette bibliothèque gère la communication entre l'Arduino et l'écran LCD, facilitant l'affichage de texte et de nombres.

Détails de la fiche technique

FabricantTranchant
Numéro de pièceGP2Y0A41SK0F
Tension logique / E/S5 V
Tension d'alimentation4,5 - 5,5 V
Plage de distance de fonctionnement4 à 30 cm
Tension de sortie (à 30 cm)0,4 V
Tension de sortie (à 4 cm)3 V
Temps de réponse30 ms
PaquetModule compact
Notes / variantesDifférents modèles disponibles pour des portées variables.

  • Assurez-vous que le capteur est alimenté correctement à 5 V.
  • Utilisez une masse commune pour tous les composants.
  • Faites attention à la tension de sortie, qui varie en fonction de la distance.
  • Envisagez d'utiliser un filtre pour le signal de sortie afin de stabiliser les mesures.
  • Gardez le capteur propre et dégagé de toute obstruction pour des mesures précises.

Instructions de câblage

Arduino Wiring Diagram of Sharp distance sensor with LCD1602-2
Schéma de câblage Arduino du capteur de distance Sharp avec LCD1602-2 — Arduino Wiring Diagram of Sharp distance sensor with LCD1602-2

Pour câbler le module de distance Sharp IR, connectez le fil rouge à la broche 5V de l'Arduino. Ensuite, connectez le fil noir à l'une des broches de masse (GND) de l'Arduino. Le fil jaune, qui fournit la mesure de distance, doit être connecté à la broche analogiqueA0sur l'Arduino. Pour l'écran LCD1602, connectez les broches comme suit :rssur la broche 12,enà la broche 11,d4à la broche 5,d5vers la broche 4,d6à la broche 3, etd7sur la broche 2. Assurez-vous que toutes les connexions sont bien fixées pour éviter tout problème lié à des fils desserrés (dans la vidéo à 02:15).

Exemples de code et tutoriel pas à pas

Le code Arduino pour ce projet initialise l'écran LCD et le capteur infrarouge Sharp. Les identifiants clés incluentIR, qui est définie comme la broche analogique utilisée pour la sortie IR de Sharp, etmodel, qui spécifie le type de capteur Sharp utilisé. Dans la fonction setup, l'écran LCD est initialisé pour afficher du contenu.

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

Cet extrait montre comment la bibliothèque LiquidCrystal est initialisée et comment la broche et le modèle du capteur IR sont définis. Le modèle est essentiel pour garantir que la bibliothèque fonctionne correctement avec le type spécifique de capteur utilisé.

Dans la fonction loop, la distance est mesurée en continu et affichée sur l'écran LCD. La fonctionSharpIR.distance()récupère la distance en centimètres, qui est ensuite convertie en une chaîne de caractères et affichée sur l'écran LCD.

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

Cet extrait de code récupère la mesure de distance du capteur et la met en forme pour l'affichage. La mise à jour continue de l'affichage fournit un retour en temps réel sur la distance mesurée par le capteur Sharp IR.

Démonstration / À quoi s'attendre

Une fois le câblage terminé et le code téléversé, vous devriez voir l'écran LCD afficher la distance mesurée par le capteur IR Sharp. Vous pouvez tester le montage en plaçant un obstacle à différentes distances. Les mesures devraient être précises dans la plage spécifiée de 4 à 30 centimètres. Sachez que les mesures peuvent devenir moins fiables aux extrémités de cette plage (dans la vidéo à 04:50).

Horodatages vidéo

  • 00:00Introduction
  • 02:15Instructions de câblage
  • 04:50Démonstration de l'installation

Images

Schéma de câblage Arduino du capteur de distance Sharp avec LCD1602-2
Schéma de câblage Arduino du capteur de distance Sharp avec 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.
Langue: 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  
}

Ressources et références

Fichiers📁

Bibliothèques Arduino (zip)

Fichier Fritzing