Suchcode

Arduino-Code und Video für Sharp-IR-Abstandsmessmodul mit LCD1602-Display

Arduino-Code und Video für Sharp-IR-Abstandsmessmodul mit LCD1602-Display

In diesem Tutorial lernen wir, wie man den Sharp-Infrarot-Abstandssensor zusammen mit einem LCD1602-Display verwendet, um Entfernungen genau zu messen. Der Sharp-Infrarot-Abstandssensor gibt die gemessene Entfernung aus, die dann auf dem LCD angezeigt wird und eine Rückmeldung in Echtzeit ermöglicht. Am Ende dieses Projekts haben wir einen funktionierenden Aufbau, der Entfernungen von 4 bis 30 Zentimetern messen kann (im Video bei 00:30).

Sharp analoge Ausgangsmodule:
2 bis 15 cm GP2Y0A51SK0F
4 bis 30 cm GP2Y0A41SK0F / GP2Y0AF30-Serie
10 bis 80 cm GP2Y0A21YK0F
10 bis 150 cm GP2Y0A60SZLF
20 bis 150 cm GP2Y0A02YK0F
100 bis 550 cm GP2Y0A710K0F

Sharpt IR distance sensor

Der Sharp-IR-Abstandssensor arbeitet, indem er Infrarotlicht aussendet und die Zeit misst, die das Licht für die Rückreflexion benötigt. Dadurch kann der Sensor die Entfernung anhand der empfangenen Lichtmenge berechnen. Das LCD1602-Display wird verwendet, um diese Informationen in lesbarer Form darzustellen. Der Aufbau ist kompakt, wodurch er für verschiedene Anwendungen geeignet ist, einschließlich Robotik und Entfernungsmesssystemen.

Hardware erklärt

Für dieses Projekt verwenden wir den Sharp-IR-Abstandssensor und das LCD1602-Display. Der Sharp-IR-Sensor hat drei Drähte: der rote Draht wird mit 5 V Versorgungsspannung verbunden, der schwarze Draht mit Masse (GND) und der gelbe Draht ist das Ausgangssignal, das an einen analogen Pin des Arduino angeschlossen wird. Das LCD1602-Display benötigt mehrere Pins für die Kommunikation, die ebenfalls mit dem Arduino verbunden werden.

Das LCD1602-Display verwendet die LiquidCrystal-Bibliothek, um die an es gesendeten Daten zu verwalten und so die Steuerung der Anzeigeausgabe zu vereinfachen. Diese Bibliothek übernimmt die Kommunikation zwischen dem Arduino und dem LCD, wodurch es einfach wird, Text und Zahlen auszugeben.

Details zum Datenblatt

HerstellerScharf
TeilenummerGP2Y0A41SK0F
Logik-/I/O-Spannung5 V
Versorgungsspannung4.5 - 5.5 V
Betriebsreichweite4 - 30 cm
Ausgangsspannung (bei 30 cm)0,4 V
Ausgangsspannung (bei 4 cm)3 V
Antwortzeit30 ms
PaketKompaktmodul
Notizen / VariantenVerschiedene Modelle für unterschiedliche Reichweiten erhältlich.

  • Stellen Sie sicher, dass der Sensor korrekt mit 5 V versorgt wird.
  • Verwenden Sie eine gemeinsame Masse für alle Komponenten.
  • Seien Sie vorsichtig mit der Ausgangsspannung, die mit der Entfernung variiert.
  • Erwägen Sie, einen Filter für das Ausgangssignal zu verwenden, um die Messwerte zu stabilisieren.
  • Halten Sie den Sensor sauber und frei von Hindernissen, um genaue Messungen zu gewährleisten.

Verdrahtungsanleitung

Arduino Wiring Diagram of Sharp distance sensor with LCD1602-2
Arduino-Schaltplan des Sharp-Abstandssensors mit LCD1602-2 — Arduino Wiring Diagram of Sharp distance sensor with LCD1602-2

Zum Anschluss des Sharp-IR-Abstandssensors verbinden Sie den roten Draht mit dem 5V-Pin des Arduino. Verbinden Sie als Nächstes den schwarzen Draht mit einem der Masse- (GND-)Pins am Arduino. Der gelbe Draht, der die Distanzmessung ausgibt, sollte mit dem analogen Pin verbunden werden.A0am Arduino. Für das LCD1602-Display verbinden Sie die Pins wie folgt:rsan Pin 12,enan Pin 11,d4an Pin 5,d5an Pin 4,d6an Pin 3 undd7an Pin 2. Stellen Sie sicher, dass alle Verbindungen fest sitzen, um Probleme durch lockere Kabelverbindungen zu vermeiden (im Video bei 02:15).

Codebeispiele & Schritt-für-Schritt-Anleitung

Der Arduino-Code für dieses Projekt initialisiert das LCD und den Sharp-IR-Sensor. Zu den wichtigsten Bezeichnern gehörenIR, der als analoger Pin definiert ist und für den Sharp-IR-Ausgang verwendet wird, undmodel, das den Typ des verwendeten Sharp-Sensors angibt. In der Setup-Funktion wird das LCD initialisiert, um Inhalte anzuzeigen.

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

Dieser Ausschnitt zeigt, wie die LiquidCrystal-Bibliothek initialisiert wird und wie der Pin des IR-Sensors und das Modell definiert werden. Das Modell ist entscheidend, damit die Bibliothek mit dem jeweils verwendeten Sensortyp korrekt funktioniert.

In der Loop-Funktion wird die Entfernung kontinuierlich gemessen und auf dem LCD angezeigt. Die FunktionSharpIR.distance()ruft die Entfernung in Zentimetern ab, die dann als String formatiert und auf dem LCD ausgegeben wird.

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

Dieser Codeausschnitt liest den Abstandswert vom Sensor aus und formatiert ihn zur Anzeige. Die kontinuierliche Aktualisierung der Anzeige liefert eine Echtzeitrückmeldung über den vom Sharp-IR-Sensor gemessenen Abstand.

Demonstration / Was Sie erwartet

Nach Abschluss der Verkabelung und dem Hochladen des Codes sollte das LCD die vom Sharp-IR-Sensor gemessene Entfernung anzeigen. Sie können die Einrichtung testen, indem Sie ein Hindernis in verschiedenen Abständen platzieren. Die Messwerte sollten im angegebenen Bereich von 4 bis 30 Zentimetern genau sein. Beachten Sie, dass die Messwerte an den Rändern dieses Bereichs unzuverlässiger werden können (im Video bei 04:50).

Video-Zeitstempel

  • 00:00Einleitung
  • 02:15Verdrahtungsanleitung
  • 04:50Demonstration des Aufbaus

Bilder

Arduino-Schaltplan des Sharp-Abstandssensors mit LCD1602-2
Arduino-Schaltplan des Sharp-Abstandssensors mit 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.
Sprache: 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  
}

Ressourcen & Referenzen

Dateien📁

Arduino-Bibliotheken (zip)

Fritzing-Datei