- Komponenten
- Ultraschallsensormodul
- Funktion des automatischen Wasserstandsreglers
- Schaltplan und Erklärung
- Programmierung
In diesem auf Arduino basierenden Projekt zur automatischen Wasserstandsanzeige und -steuerung werden wir den Wasserstand mithilfe von Ultraschallsensoren messen. Das Grundprinzip der Ultraschall-Entfernungsmessung basiert auf ECHO. Wenn Schallwellen in der Umgebung übertragen werden, kehren sie nach dem Auftreffen auf ein Hindernis als ECHO zum Ursprung zurück. Wir müssen also nur die Reisezeit beider Geräusche berechnen, dh die Ausgangszeit und die Rückkehrzeit zum Ursprung, nachdem wir auf ein Hindernis gestoßen sind. Und nach einiger Berechnung können wir ein Ergebnis erhalten, das der Entfernung entspricht. Dieses Konzept wird in unserem Wasserreglerprojekt verwendet, bei dem die Wassermotorpumpe automatisch eingeschaltet wird, wenn der Wasserstand im Tank niedrig wird. Sie können diese einfache Wasserstandsanzeige auch auf eine einfachere Version dieses Projekts überprüfen.
Komponenten
- Arduino Uno
- Ultraschallsensormodul
- 16x2 LCD
- Relais 6 Volt
- ULN2003
- 7806
- PVT
- Kupferkabel
- 9 Volt Batterie oder 12 Voltadaptor
- Kabel anschließen
Ultraschallsensormodul
Mit dem Ultraschallsensor HC-SR04 wird der Abstand im Bereich von 2 cm bis 400 cm mit einer Genauigkeit von 3 mm gemessen. Das Sensormodul besteht aus Ultraschallsender, Empfänger und Steuerkreis.
Das Ultraschallsensormodul arbeitet mit dem natürlichen Phänomen des ECHO von Schall. Ein Impuls wird für ungefähr 10us gesendet, um das Modul auszulösen. Danach sendet das Modul automatisch 8 Zyklen eines 40-kHz-Ultraschallsignals und überprüft sein Echo. Das Signal nach dem Aufprall auf ein Hindernis kehrt zurück und wird vom Empfänger erfasst. Somit wird der Abstand des Hindernisses vom Sensor einfach nach der Formel berechnet, die als angegeben ist
Entfernung = (Zeit x Geschwindigkeit) / 2.
Hier haben wir das Produkt aus Geschwindigkeit und Zeit durch 2 geteilt, da die Zeit die Gesamtzeit ist, die benötigt wurde, um das Hindernis zu erreichen und zurückzukehren. Somit beträgt die Zeit zum Erreichen des Hindernisses nur die Hälfte der Gesamtzeit.
Funktion des automatischen Wasserstandsreglers
Die Arbeit an diesem Projekt ist sehr einfach. Wir haben ein Ultraschallsensormodul verwendet, das die Schallwellen im Wassertank sendet und die Reflexion von Schallwellen erkennt, die ECHO ist. Zuerst müssen wir das Ultraschallsensormodul auslösen, um mithilfe von Arduino ein Signal zu senden, und dann warten, bis ECHO empfangen wird. Arduino liest die Zeit zwischen dem Auslösen und dem Empfang von ECHO. Wir wissen, dass die Schallgeschwindigkeit bei 340 m / s liegt. So können wir die Entfernung anhand der folgenden Formel berechnen:
Entfernung = (Fahrzeit / 2) * Schallgeschwindigkeit
Bei einer Schallgeschwindigkeit von ca. 340 m pro Sekunde.
Mit diesen Methoden erhalten wir Abstand vom Sensor zur Wasseroberfläche. Danach müssen wir den Wasserstand berechnen.
Jetzt müssen wir die Gesamtlänge des Wassertanks berechnen. Da wir die Länge des Wassertanks kennen, können wir den Wasserstand berechnen, indem wir die resultierende Entfernung vom Ultraschall von der Gesamtlänge des Tanks abziehen. Und wir werden die Wasserstandsentfernung bekommen. Jetzt können wir diesen Wasserstand in Prozent Wasser umrechnen und auf dem LCD anzeigen. Die Funktionsweise des gesamten Projekts zur Wasserstandsanzeige ist im folgenden Blockdiagramm dargestellt.
Schaltplan und Erklärung
Wie in der unten angegebenen Wasserstandsreglerschaltung gezeigt, sind die Trigger- und Echo-Pins des Ultraschallsensormoduls direkt mit Pin 10 und 11 von Arduino verbunden. Ein 16x2 LCD ist im 4-Bit-Modus mit Arduino verbunden. Die Steuerpins RS, RW und En sind direkt mit den Arduino-Pins 7, GND und 6 verbunden. Der Daten-Pin D4-D7 ist mit 5, 4, 3 und 2 des Arduino verbunden, und der Summer ist an Pin 12 angeschlossen. 6-Volt-Relais ist Wird auch an Pin 8 des Arduino über ULN2003 angeschlossen, um die Wassermotorpumpe ein- oder auszuschalten. Ein Spannungsregler 7805 wird auch verwendet, um 5 Volt für das Relais und den verbleibenden Stromkreis bereitzustellen.
In dieser Schaltung wird das Ultraschallsensormodul zur Demonstration oben auf dem Eimer (Wassertank) platziert. Dieses Sensormodul liest den Abstand zwischen Sensormodul und Wasseroberfläche und zeigt den Abstand auf dem LCD-Bildschirm mit der Meldung „Wasserraum im Tank ist:“ an. Dies bedeutet, dass wir hier einen leeren Ort der Entfernung oder des Volumens für Wasser anstelle des Wasserstandes anzeigen. Aufgrund dieser Funktionalität können wir dieses System in jedem Wassertank verwenden. Wenn der leere Wasserstand eine Entfernung von ca. 30 cm erreicht, schaltet Arduino die Wasserpumpe durch Ansteuern des Relais ein. Und jetzt zeigt das LCD „NIEDRIGER Wasserstand“ „Motor eingeschaltet“ an und die Relaisstatus-LED beginnt zu leuchten
Wenn der leere Raum in einer Entfernung von ca. 12 cm erreicht ist, schaltet Arduino das Relais aus und auf dem LCD wird "Tank ist voll" und "Motor ausgeschaltet" angezeigt. Der Summer piept auch einige Zeit und die Relaisstatus-LED erlischt.
Programmierung
Um Arduino für den Wasserstandsregler zu programmieren, definieren wir zunächst alle Pins, die wir im Projekt für die Verbindung externer Geräte wie Relais, LCD, Summer usw. verwenden werden.
# Trigger definieren 10 # Echo definieren 11 # Motor definieren 8 # Summer definieren 12
Anschließend initialisieren wir alle im Projekt verwendeten Geräte.
lcd.begin (16,2); pinMode (Trigger, OUTPUT); pinMode (Echo, INPUT); PinMode (Motor, OUTPUT); pinMode (Summer, OUTPUT); lcd.print ("Wasserstand"); lcd.setCursor (0,1); lcd.print ("Indikator"); Verzögerung (2000);
Initialisieren Sie nun das Ultraschallsensormodul und lesen Sie die Sende- und Empfangszeit von Ultraschallwellen oder Schall mithilfe von pulsIn (Pin). Führen Sie dann Berechnungen durch und zeigen Sie das Ergebnis mit den entsprechenden Funktionen auf einem 16x2-LCD an.
digitalWrite (Trigger, HIGH); delayMicroseconds (10); digitalWrite (Trigger, LOW); delayMicroseconds (2); Zeit = PulsIn (Echo, HIGH); Entfernung = Zeit * 340/20000; lcd.clear (); lcd.print ("Water Space In"); lcd.setCursor (0,1); lcd.print ("Tank is:"); lcd.print (Entfernung); lcd.print ("Cm");
Danach prüfen wir die Bedingungen, ob der Wassertank voll oder der Wasserstand niedrig ist, und ergreifen entsprechende Maßnahmen.
if (Abstand <12 && temp == 0) {digitalWrite (Motor, LOW); digitalWrite (Summer, HIGH); lcd.clear (); lcd.print ("Wassertank voll"); lcd.setCursor (0,1); lcd.print ("Motor ausgeschaltet"); Verzögerung (2000); digitalWrite (Summer, LOW); Verzögerung (3000); Temp = 1; } else if (Abstand <12 && temp == 1) {digitalWrite (Motor, LOW); lcd.clear (); lcd.print ("Wassertank voll"); lcd.setCursor (0,1); lcd.print ("Motor ausgeschaltet"); Verzögerung (5000); }}