Inhaltsverzeichnis:
Video: Füllstandssensor (mit Ultraschall) - Gunook
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
Der Flüssigkeitsstandsensor erkennt den Flüssigkeitsstand vom Boden aus. Schaltet den Motor unter einem bestimmten Wert ein (erfordert einen Motortreiberverstärker) und schaltet ihn nach dem Einfüllen der Flüssigkeit über einem bestimmten Wert aus
Merkmale dieses Systems:
- Funktioniert mit jeder Flüssigkeit (Wasser, Öl usw.).
- Reichweite bis 250 cm Bodenabstand (auch Höhe des Tanks).
- Präzise Messung (bis 2 cm Fehler) mit HC-SR04, Ping etc.
- Ausgang der Motorsteuerung.
-
Kalibrierung (in Runtime) verfügbar für:
- Bodenniveau: Kann für jeden Tank (bis zu 250 cm Höhe) bei laufendem System mit einem Druckknopf kalibriert werden.
- EIN- und AUS-Stufen des Motors: Die EIN- und AUS-Stufen können mit den mitgelieferten Voreinstellungen und einer Moduswechseltaste eingestellt werden.
- Grenzwertanzeige mit '0 cm'.
- Funktioniert mit 5V DC.
Für den Bau benötigte Teile:
- Arduino (oder ATMega 328 mit Programmierer).
- HC-SR04 oder jedes gängige Ultraschallsensormodul.
- Voreinstellungen (20K oder 10K) - 2 Stück
- Stiftleiste - 6 Pin
- Buchsenleiste 16 Pin
- Push-Click-Mikroschalter
- Mikroschalter drücken
- 10K 1/4 Watt Widerstand
- 1N4007 Diode
- DC-Steckdose
- 220E Widerstand
- Veroboard (oder Breadboard, wenn Sie es vorziehen)
- Anschlussdrähte
- 16 * 2 LCD-Bildschirm mit Stiftleisten angebracht
- Motortreiber und Motor (wenn Sie möchten)
- Grundkenntnisse in Elektronik und Arduino
Schritt 1: Schaltplan
Schritt 2: Arbeiten
In unserer Sensorplatine haben wir Ultraschall-Tx- und -Rx-Teile. Der Sensor misst den Abstand vom Flüssigkeitsspiegel. Der Tx ist im Grunde ein 40-KHz-Lautsprecher, der Impulse von 40-KHz-Ultraschall sendet. Die Impulssendezeit und Impulsempfangszeit wird für jeden Impuls notiert. Diese Impulse werden in der MCU erfasst.
Die MCU merkt sich den Zeitunterschied zwischen und verwendet dann die Schallgeschwindigkeit, um die Entfernung zu berechnen. Die MCU muss vorkalibriert werden, um die Entfernung vom Boden aufzuzeichnen, dh wenn der Tank/Container leer ist. Die Differenz wird berechnet und somit erhalten wir den Füllstand der Flüssigkeit.
Der Füllstand wird im 16x2 LCD-Display angezeigt. Auch andere Details werden auf dem Bildschirm angezeigt.
Es gibt zwei Voreinstellungen für die Maximal- und Minimalwertbegrenzung des Pumpensignalgenerators. Das wird erzeugt, wenn der Flüssigkeitsstand den durch die Voreinstellung eingestellten Höchstwert überschreitet. Das Signal geht wieder auf Low, wenn es unter die durch andere Voreinstellungen festgelegte Mindestgrenze erreicht.
Die Kalibrierung der Bodenentfernung erfolgt über einen Schalter, der ein Signal an den atmega328-Chip sendet und die aktuelle Entfernung aufzeichnet und als Referenzmasse festlegt.
Schritt 3: Programm - Arduino
Das Programm ist in Arduino erstellt. Verwenden Sie dies, um auf Atmega328 (oder nach Ihrem Geschmack) zu brennen.
Programm ist bei git unter GPL-3.0 verfügbar.
Eine kompilierte Hex-Datei wird bereits zum einfachen Hochladen mit arduino-builder bereitgestellt.
Abhängigkeiten:
Neue Bibliothek.
Schritt 4: Kalibrierung und Daten
Der LCD-Bildschirm zeigt den aktuellen Pegel (Differenz) vom kalibrierten Pegel an.
Die beiden Voreinstellungen bestimmen den oberen (max. Pegel), nach dem die Last ausgeschaltet wird, und den unteren (min. Pegel), nach dem die Last eingeschaltet wird. Die hier gemeinte Last ist die Pumpe, da dieses System in einem automatisierten Pumpensystem anwendbar ist. Vier Header sind für Schall-(Ping-)Sensoren. Ich habe HC-SR04 verwendet. Ein Paar Header für Motor (digitaler Pin 9). Erfordert einen externen Pumpentreiber. Es verwendet EEPROM, um Kalibrierungsdaten zu speichern.
Es werden zwei Kalibrierungen bereitgestellt:
- LEVEL_CAL
- MOTOR_TRIGGER_CAL
Schritt 5: Pumpensteuerung
Die Platine hat 2 dedizierte Pins für das Pumpsignal
Einer gibt ein 5V-Signal aus, wenn die Pumpe eingeschaltet werden muss (wenn der Flüssigkeitsstand unter den voreingestellten unteren Grenzwert sinkt) und ein 0V-Signal, wenn die Pumpe ausgeschaltet bleiben soll (der Füllstand geht über den oberen Grenzwert).
Das Signal wird an eine Relaisplatine gesendet, um eine Wechselstrompumpe zu steuern.