Ultraschall-Entfernungsmesser mit LCD-Anzeige auf Arduino UNO

4 Schritt:Schritt 1: Anschließen HC-SR04 Ultraschallmodul zu Arduino Schritt 2: Hinzufügen einer Drucktaste Schritt 3: Anschließen eines LCD-Display und einen piezoelektrischen Summer Schritt 4: Messung Tests


Ultraschall-Entfernungsmesser mit LCD-Anzeige auf Arduino UNO

Ultraschall-Entfernungsmesser mit LCD-Anzeige auf Arduino UNO

In diesem Tutorial werden wir eine andere Verwendung des HC-SR04 Ultraschallmodul finden. Dieses Modul wird oft auf Roboter und Spielzeug-Autos verwendet werden, um Hindernisse zu finden, aber es kann verwendet werden, um Entfernungen und zu messen.
Entfernungen von der HC-SR04 gemessen werden auf unserer geliebten LCD 16x2 Display angezeigt. Werfen Sie einen Blick auf unsere Tutorials, wenn Sie wissen, wie man einen Pin-Header für diese Art von Display löten wollen.
Die maximale Reichweite des HC-SR04 ist 4 Meter, und die kürzeste messbare Distanz ist 2 cm mit einer Genauigkeit von 3 mm. Wir machten einen piezoelektrischen Lautsprecher Ring, wenn der Abstand Meter geht nicht in die Hände.
Andere zwei Dinge sind erforderlich, wenn Sie Ihren Entfernungsmesser, um genauere Messungen ausführen möchten:

    Eine Wasserwaage Ein Laser-Pointer

Leider, während Tests zu machen wir entdeckt, kann diese Vorrichtung nicht von einer 9V-Batterie, weil ein Mangel an Energie (in Bezug auf die zugeführte Ampere) betrieben werden. Also, Sie haben zu Ihrem Entfernungsmesser unter Verwendung eines Computers oder eines Netzteils zu versorgen (ja, es ist nicht praktisch überhaupt, aber das ist nur ein Experiment!)
Einkaufsliste:
Auf Ihrem PC Set von Dupont Kabel Arduino UNO USB-Kabel Das Arduino IDE installiert MB-102 Steckbrett Ein HC-SR04 Ultraschallsensor LCD-Display 16x2 10k Ohm Linearpotentiometer 2N3904 Transistor (oder ein 2N2222) Nummer 2 10k Ohm Widerstand (1/4 Watt) Druckknopf Piezo-Summer
Wie funktioniert es?
Das System überträgt ein Ausbruch von Ultraschallwellen auf das Motiv und erhält dann die entsprechende Echo. Nach dem Reflexionszeit berechnet Arduino die Entfernung durch die folgende Formel:

Test Abstand = (hohe Zeit × Schallgeschwindigkeit *) / 2

* Schallgeschwindigkeit in Luft ist 340m / s

Schritt 1: Anschließen HC-SR04 Ultraschallmodul zu Arduino

  1. Ultraschall-Entfernungsmesser mit LCD-Anzeige auf Arduino UNO

    Ultraschall-Entfernungsmesser mit LCD-Anzeige auf Arduino UNO

    HC-SR04 Verdrahtung

    Die HC-SR04-Modul benötigt keine zusätzliche Bibliothek. Sie müssen es nur eine Verbindung zum Arduino nach dem beigefügten Fritzing Zeichnung oder dem folgenden Schema:

    5V ----> Vcc

    GND ----> GND

    Pin 7 ----> Trig

    Pin 8 ----> Echo

    Hochladen der Code
    Jetzt laden Sie die Datei ultrasonic.ino und doppelklicken Sie darauf. Arduino IDE wird Sie bitten, die neue Skizze in einen Ordner, dessen Name das gleiche für die .ino Datei verwendet werden zu speichern. Speichern Sie die Datei, wenn Sie es vorziehen.

    Setup-Funktion

    Zu Beginn der Skizze definieren wir die zwei Stifte für Trigger und echo verwendet:

      int triggerPort = 7;
     int echoPort = 8; 

    Um, um die HC-SR04 übertragen ein Burst von 8 Ultraschallwellen (40 kHz) sendet Arduino einen Impuls (10us) mit dem Stift 7.

    In die Setup-Funktion, die wir richtig eingestellt sie als Ausgang und Eingang:

      pinMode (triggerPort, OUTPUT);
     pinMode (echoPort, INPUT); 

    Loop-Funktion

    Die ersten vier Befehle in die Schleife kann der HC-SR04 mit Mikrowellen auf ein Objekt zu übertragen:

      digital (triggerPort, LOW);  // Ausgabe LOW-Trigger eingestellt
     digital (triggerPort, HIGH);  // Ein 10us Impuls an den Trigger senden
     delayMicroseconds (10);
     digital (triggerPort, LOW); 

    Durch das Senden einer 10us Impuls an den triggerPort setzt Arduino den Stift 7 auf HIGH. Nach diesem Befehl wartet der Skizze 10us, bevor Sie den Stift 7 LOW wieder.

    In der ersten Zeile der folgenden Anweisungen, erhält Arduino die Reflexionszeit von Ultraschallwellen aus dem HR-SR04. Diese Zeit wird benötigt, um den Abstand unter Verwendung der Formel berechnet Abstand = (hohe Zeit × Schallgeschwindigkeit *) / 2 in der zweiten Zeile angezeigt.

      lange Laufzeit = pulseIn (echoPort, HIGH);
     
     Lang r = 3,4 * Dauer / 2;  // Hier berechnen wir den Abstand
    
     float Abstand = r / 100.00; 

    Die letzten Zeilen zu bestimmen, ob das Objekt zu weit zu erkennen, ob die Reflexionszeit größer als 38ms.

      if (Dauer> 38000) Serial.println ("außer Reichweite");		
     else {Serial.print (Dauer);  Serial.println ("cm");} 

    Sie können die Ausgabe dieser Skizze in der Screenshot oben gebunden sehen.

Schritt 2: Hinzufügen einer Drucktaste

  1. Ultraschall-Entfernungsmesser mit LCD-Anzeige auf Arduino UNO

    Ultraschall-Entfernungsmesser mit LCD-Anzeige auf Arduino UNO

    Natürlich wollen wir unsere Distanzmesser, Messungen nur tun, wenn wir brauchen. Wir können einfach implementieren diese Funktion Hinzufügen eines Druckknopfes. So, das Drücken einer Busch Taste, Arduino und HC-SR04 tun eine Messung.

    Siehe die beigefügten Fritzing Schema, um zu sehen, wie Sie den Druckknopf verbinden. Denken Sie daran, dass ein 10k Ohm Widerstand für diese Verkabelung erforderlich.

    Der erste Schritt ist es, die verwendet wird, um die Taste zu verbinden (wir entschieden uns für den Stift 10) pin erklären:

      #define BUTTON 10 

    Dann, in der Setup-Funktion, setzen wir diesen Stift als Eingang:

      pinMode (Button, INPUT); 

    Der letzte Befehl muss in die Loop-Funktion gesetzt werden:

      while (digitalRead (BUTTON) == LOW); 

    Was bedeutet die vorherige Anweisung zu tun?

    Wenn der Druckknopf nicht gedrückt wird, ist die logische Bedingung innerhalb der while-Zyklus TRUE, so dass die Skizze bleibt endlos im Inneren und nicht die nächsten Zeilen auszuführen.

    Im Gegenteil, wenn die Drucktaste betätigt wird, wird die logische Bedingung FALSE und der Skizze geht aus der while-Schleife und führt die folgenden Zeilen dabei eine Messung.

    Wie immer man die bereit sind, Skizze verwenden können.

    Wie Sie sehen können, wenn Sie diesen Schritt zu testen, wird der serielle Monitor Messungen nur zu zeigen, wenn der Druckknopf gedrückt wird.

Schritt 3: Anschließen eines LCD-Display und einen piezoelektrischen Summer

  1. Ultraschall-Entfernungsmesser mit LCD-Anzeige auf Arduino UNO

    Jetzt ist es Zeit, um die LCD-Anzeige, um unsere Arduino verbinden. Wie in der Einleitung zu sehen, müssen Sie auch ein paar andere Dinge, um diese Schaltung zu machen: eine 2N3904-Transistor (oder alternativ eine 2N2222), ein 10k-Ohm-Widerstand, ein 10k Ohm lineares Potentiometer zur Einstellung des Kontrasts. Diese Komponenten sind erforderlich, um die LCD-Anzeige schalten Sie beim Drücken der Drucktaste während der Messungen zu machen.

    Darüber hinaus das Hinzufügen eines piezoelektrischen Lautsprechers kann eine kluge Wahl sein, wenn Sie möchten informiert werden, wenn der Entfernungsmesser geht nicht in die Hände.

    HINWEIS: Wir sind nicht zu erklären, wie ein LCD-Display, um Arduino sowie eine Verbindung, wie man seine Hintergrundbeleuchtung steuern, da diese Verfahren wurden bereits in der fünften und sechsten Schritte unserer vorherigen Tutorial jeweils erläutert.
    wie ein LCD-Display, um Arduino verbinden ... ... und wie man seine Hintergrundbeleuchtung steuern

    Aber wenn Sie nur für die Ausführung der Anschlüsse sind, nur der beiliegenden Fritzing Schema.

    HINWEIS: Da der Stift 7 wird nun von der Anzeige verwendet wird, den Stift durch die HC-SR04 verwendet Verschieben nach Pin 9 änderten wir.
    Die Skizze

    Lassen Sie passen die Skizze nach den Veränderungen, die wir machen wollen.

    Im ersten Teil der Skizze, müssen wir zwei Konstanten und eine Variable deklarieren. Die erste Konstante ist die PWM-Pin verwendet werden, um Ein- und Ausschalten der Display-Hintergrundbeleuchtung und zweite ist die Frequenz von der Mitteilung des Piezo-Lautsprecher wiedergegeben, wenn der Entfernungsmesser geht nicht in die Hände.
    Die Variable wird benötigt, um die Hintergrundbeleuchtung Helligkeit bis zu dem maximalen Wert zu setzen.

      #define LUMIN 11
    
     #define NOTE_A4 440
    
     int l = 255; 

    Dann sind wir die Liquid Bibliothek und initialisieren Sie die LCD-Display-Bibliothek:
      // Gehören die Bibliothekscode:
     #include <LiquidCrystal.h>
    
     // Initialisierung der Bibliothek mit den Nummern der Schnittstellen-Pins
     Liquid lcd (2, 3, 4, 5, 6, 7); 

    Setup-Funktion
    In die Setup-Funktion die wir brauchen, um den Stift 11 als Ausgang deklariert und initialisiert die LCD-Anzeige (16 Spalten und 2 Zeilen):
      pinMode (LUMIN, OUTPUT);
     // Bis die LCD-Reihe von Spalten und Zeilen ein: 
     lcd.begin (16, 2); 

    In der Loop-Funktion haben wir einige Änderungen vornehmen. Zunächst einmal sind wir die while-Schleife ändern, wie unten dargestellt:
      while (digitalRead (BUTTON) == LOW) {             
       analogWrite (LUMIN, 0);  // LED aus abbiegen 
       lcd.clear ();
       noTone (12);
     } 

    Wenn die Taste nicht gedrückt, ist die logische Bedingung TRUE, als Folge der Skizze wartet in diese while-Schleife. In dieser Situation stellt sich die erste Zeile in dem Block die Hintergrundbeleuchtung aus, die zweite Zeile löscht die Anzeige und der dritte macht die Klangerzeuger ab.

    Wenn der Druckknopf betätigt wird, wird die logische Bedingung FALSE und Arduino überspringt diese while-Schleife und fährt die Ausführung der folgenden Zeile ...

      analogWrite (LUMIN, l);  // LED einzuschalten 

    ... Was macht die Hintergrundbeleuchtung ein.
    Da wir nicht mehr über die serielle Monitor, müssen wir die Funktionen Serial.print verändern lcd.print.
      lcd.setCursor (0, 0);
     lcd.print ("Zeit:");
     lcd.print (Dauer);
     lcd.print ("uns");
     lcd.setCursor (0, 1); 
    
     if (Dauer> 38000) {lcd.println ("außer Reichweite");  Ton (12, NOTE_A4);}		
     else {lcd.print ("dist:");  lcd.print (Entfernung);  lcd.println ("cm");  noTone (12);} 

    In der ersten Zeile der Anzeige druckt es die Reflexion der Zeit und den Abstand in der zweiten. Wenn Reflexionszeit größer als 38ms ist das Hindernis aus Reichweite und der Piezo-Summer einen Ton zu spielen und auf dem Display erscheint die Meldung "außer Reichweite", sonst wird die Skizze wird die gemessene Distanz zu drucken.

    Wie üblich, ist die Skizze zum Download bereit.

Schritt 4: Messung Tests

  1. Ultraschall-Entfernungsmesser mit LCD-Anzeige auf Arduino UNO

    Ultraschall-Entfernungsmesser mit LCD-Anzeige auf Arduino UNO

    Ultraschall-Entfernungsmesser mit LCD-Anzeige auf Arduino UNO

    Ultraschall-Entfernungsmesser mit LCD-Anzeige auf Arduino UNO

    Ultraschall-Entfernungsmesser mit LCD-Anzeige auf Arduino UNO

    Ultraschall-Entfernungsmesser mit LCD-Anzeige auf Arduino UNO

    Alle 8 Artikel anzeigen

    Um sicherzustellen, das Gerät einfacher zu bedienen, haben wir auf einer 24x8cm Holzbrett platziert die Komponenten. Wir haben auch zwei unterschiedliche Montageplatten: ein Mini-Steckbrett für das Ultraschallmodul und dem Druckknopf, und eine mittelgroße Steckbrett für die anderen Komponenten.

    Darüber hinaus haben wir zwei wichtige Dinge installiert werden, um genauere Messungen zu tun: einen einfachen Laserpointer und eine Röhrenlibelle.
    Das letzte, was nützlich ist ein paar Papierrohre (unsere sind 7,5 cm lang), die vor den beiden Lautsprechern des Ultraschallmodul platziert werden müssen. Sie werden, um die Ultraschallimpulse von den Ultraschallmodul Lautsprechern, die sonst übermäßig auseinander herauskommt konzentrieren erforderlich. In der Tat, nach dem Datenblatt, ist die Messwinkel 15 Grad.
    Dabei Messungen haben wir entdeckt, dass die Rohre für "lange Strecken" (grßer als 1 m) und irreführend Kurzen erforderlich.
    Die längste Strecke, die wir taten war 418cm.