Innholdsfortegnelse:
Video: Væskenivåsensor (ved bruk av ultralyd): 5 trinn
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Væskenivåsensor registrerer væskenivået fra bakkenivå. Slår på motoren (krever motordriverforsterker) under en gitt verdi og slår den av over en gitt verdi etter å ha fylt væsken
Funksjoner i dette systemet:
- Fungerer med hvilken som helst væske (vann, olje osv.).
- Rekkevidde opp til 250 cm bakkenavstand (også tankens høyde).
- Presis måling (opptil 2 cm feil) med HC-SR04, Ping etc.
- Motorstyring utgang.
-
Kalibrering (i kjøretid) tilgjengelig for:
- Bakkenivå: Kan kalibreres for hvilken som helst tank (opptil 250 cm høy) mens systemet er i gang, med en trykknapp.
- Motorens PÅ- og AV -nivå: PÅ- og AV -nivåene kan settes med forhåndsinnstillinger og en modusendringsknapp.
- Ubegrenset indikasjon med '0 cm'.
- Fungerer på 5V DC.
Deler som kreves for å bygge:
- Arduino (eller ATMega 328 med programmerer).
- HC-SR04 eller en hvilken som helst vanlig ultralydsensormodul.
- Forhåndsinnstillinger (20K eller 10K) - 2 stk
- Mannlig overskrift - 6 pins
- Kvinneoverskrift 16 Pin
- Trykk -klikk -mikrobryter
- Trykk på mikrobryteren
- 10K 1/4 watt motstand
- 1N4007 Diode
- DC -strømkontakt
- 220E motstand
- Veroboard (eller Breadboard hvis du foretrekker det)
- Tilkoblingskabler
- 16*2 LCD -skjerm med pin -hannhoder festet
- Motordriver og motor (hvis du vil)
- Grunnleggende kunnskap om elektronikk og Arduino
Trinn 1: Kretsdiagram
Trinn 2: Arbeid
I vårt sensorbord har vi ultralyd Tx og Rx deler. Sensoren leser avstanden fra væskenivå. Tx er i utgangspunktet en 40KHz høyttaler, som sender pulser på 40KHz ultralyd. Pulssendingstiden og pulsmottakstiden er notert for hver puls. Denne pulsen blir registrert i MCU.
MCU noterer tidsforskjellen mellom og deretter brukte den lydhastighet til å beregne avstand. MCU skal forhåndskalibreres for å registrere avstand fra bakkenivå, det vil si når tanken/beholderen er tom. Differansen beregnes og dermed får vi væskenivået.
Nivået vises på 16x2 LCD -skjerm. Andre detaljer vises også på skjermen.
Det er to forhåndsinnstillinger for maksimums- og minimumsverdigrense for pumpesignalgeneratoren. Den genereres når væskenivået når over maksimumsgrensen som er angitt av forhåndsinnstillingen. Signalet går igjen lavt når det når under minimumsgrensen som er angitt av en annen forhåndsinnstilling.
Jordavstandskalibreringen utføres av en bryter, som sender et signal til atmega328 -brikken, og den registrerer gjeldende avstand og angir den som referansejord.
Trinn 3: Program - Arduino
Programmet er laget i Arduino. Bruk dette til å brenne til Atmega328 (eller noe du liker).
Programmet er tilgjengelig på git under GPL-3.0.
En kompilert hex-fil er allerede gitt for enkel opplasting med arduino-builder.
Avhengigheter:
Newping bibliotek.
Trinn 4: Kalibrering og data
LCD -skjermen viser gjeldende nivå (forskjell) fra det kalibrerte nivået.
De to forhåndsinnstillingene bestemmer det øvre (maks. Nivået), hvoretter lasten slås av og senker (min. Nivå), hvoretter lasten slås på. Lasten som er beregnet her er pumpe, ettersom dette systemet kan brukes i automatisert pumpesystem. Fire overskrifter er for sonisk (ping) sensor. Jeg brukte HC-SR04. Ett topptekst for motor (digital pin 9). Krever en ekstern pumpedriver. Den brukte EEPROM til å lagre kalibreringsdata.
Det er to kalibreringer:
- LEVEL_CAL
- MOTOR_TRIGGER_CAL
Trinn 5: Pumpekontroll
Brettet har 2 dedikerte pinner for pumpesignal
Den ene gir ut 5V signal når pumpen må slås på (når væskenivået går under forhåndsinnstilt lav grenseverdi) og gir 0V signal når pumpen skal holdes av (nivået går over øvre grense).
Signalet sendes et relékort for å kontrollere en vekselstrømspumpe.