Innehållsförteckning:

UltraSonic Liquid Level Controller: 6 steg (med bilder)
UltraSonic Liquid Level Controller: 6 steg (med bilder)

Video: UltraSonic Liquid Level Controller: 6 steg (med bilder)

Video: UltraSonic Liquid Level Controller: 6 steg (med bilder)
Video: Delivering MTApex™ bioceramic root canal sealer 2024, November
Anonim
UltraSonic Liquid Level Controller
UltraSonic Liquid Level Controller

Inledning Som ni säkert vet har Iran torrt väder och det råder brist på vatten i mitt land. Ibland, särskilt på sommaren, kan det ses att regeringen skär av vattnet. Så de flesta lägenheterna har en vattentank. Det finns en 1500 liters tank i vår lägenhet som ger vatten. Det finns också 12 bostäder i vår lägenhet. Som ett resultat kan det förväntas att tanken snart blir tom. Det finns en vattenpump ansluten till tanken som skickar vatten in i byggnaden. När tanken är tom fungerar pumpen utan vatten. Denna situation orsakar en ökning av motortemperaturen och under tiden kan det orsaka pumpavbrott. För en tid sedan hände detta pumpfel för andra gången för oss, och efter att ha öppnat motorn såg vi att spoltrådarna var brända. Efter att vi bytt ut pumpen, för att förhindra detta problem igen, bestämde jag mig för att göra en vattennivåkontroll. Jag planerade att göra en krets för att stänga av pumpens strömförsörjning när vattnet kom under den låga gränsen i tanken. Pumpen fungerar inte förrän vattnet stiger till en hög gräns. Efter att ha passerat den höga gränsen, kommer kretsen att ansluta strömförsörjningen igen. I början sökte jag över internet för att se om jag kan hitta en lämplig krets. Jag hittade dock inget lämpligt. Det fanns några Arduino -baserade vattenindikatorer, men det kunde inte lösa mitt problem. Som ett resultat bestämde jag mig för att designa min vattennivåkontroll. Ett allt-i-ett-paket med ett enkelt grafiskt användargränssnitt för att ställa in parametrar. Jag försökte också överväga EMC -standarder för att vara säker på att enheten fungerar giltig i olika situationer.

Steg 1: Princip

Princip
Princip

Du känner säkert till principen innan. När ultraljudspulssignalen avges mot ett objekt reflekteras den av objektet och eko återgår till avsändaren. Om du beräknar den tid som rest med ultraljudspulsen kan du hitta objektets avstånd. I vårt fall är objektet vattnet.

Observera att när du hittar avståndet till vattnet beräknar du volymen tomt utrymme i tanken. För att få volymen vatten måste du subtrahera beräknad volym från den totala tankvolymen.

Steg 2: Sensor, strömförsörjning och styrenhet

Sensor, strömförsörjning och styrenhet
Sensor, strömförsörjning och styrenhet
Sensor, strömförsörjning och styrenhet
Sensor, strömförsörjning och styrenhet
Sensor, strömförsörjning och styrenhet
Sensor, strömförsörjning och styrenhet
Sensor, strömförsörjning och styrenhet
Sensor, strömförsörjning och styrenhet

Hårdvara

För sensorn använde jag JSN-SR04T vattentät ultraljudssensor. Arbetsrutinen är som HC-SR04 (eko och trigpinne).

Specifikationer:

  • Avstånd: 25 cm till 450 cm
  • Arbetsspänning: DC 3.0-5.5V
  • Arbetsström: < 8mA
  • Noggrannhet: ± 1 cm
  • Frekvens: 40khz
  • Arbetstemperatur: -20 ~ 70 ℃

Observera att denna handkontroll har vissa begränsningar. till exempel: 1- JSN-SR04T kan inte mäta avståndet under 25 cm, så du måste installera sensorn minst 25 cm ovanför vattenytan. Dessutom är den maximala avståndsmätningen 4,5 miljoner. Så den här sensorn är inte lämplig för stora tankar. 2- noggrannheten är 1 cm för denna sensor. Som ett resultat, beroende på tankens diameter, kan upplösningen av volym som enheten visar varieras. 3- ljudets hastighet kan variera beroende på temperatur. Som ett resultat kan noggrannheten påverkas av olika regioner. Dessa begränsningar var dock inte avgörande för mig, och noggrannheten var lämplig.

Kontrollen

Jag använde STM32F030K6T6 ARM Cortex M0 från STMicroelectronics. Du hittar specifikationen för denna mikrokontroller här.

Strömförsörjningen

Den första delen är att konvertera 220V/50Hz (Iran Electricity) till 12VDC. För detta ändamål använde jag HLK-PM12 buck step down strömförsörjningsmodul. Denna AC/DC -omvandlare kan konvertera 90 ~ 264 VAC till 12VDC med 0,25A utström.

Som du säkert vet kan den induktiva belastningen på reläet orsaka flera problem på kretsen och strömförsörjningen, och svårigheter i strömförsörjningen kan leda till inkonstans, särskilt i mikrokontrollern. Lösningen är att isolera strömförsörjningen. Du måste också använda en snubberkrets på reläkontakter. Det finns flera metoder för att isolera strömförsörjningar. Till exempel kan du använda en transformator med två utgångar. Dessutom finns det isolerade DC/DC -omvandlare där ute i en liten storlek som kan isolera utsignalen från ingången. Jag använde MINMAX MA03-12S09 för detta ändamål. Det är en 3W DC/DC -omvandlare med isolering.

Steg 3: Supervisor IC

Handledarens IC
Handledarens IC

Enligt TI App -notering: En spänningsövervakare (även känd som en återställd integrerad krets [IC]) är en typ av spänningsmonitor som övervakar ett systems strömförsörjning. Spänningsövervakare används ofta med processorer, spänningsregulatorer och sekvenserare - i allmänhet där spänning eller strömavkänning krävs. Övervakare övervakar spänningsskenor för att säkerställa att strömmen slås på, upptäcker fel och kommunicerar med inbyggda processorer för att säkerställa systemets hälsa. du kan hitta denna app anteckning här. Även om STM32-mikrokontroller har inbyggda övervakare som till exempel strömförsörjningsmonitor, använde jag ett externt övervakarchip för att säkerställa att allt fungerar bra. I mitt fall använde jag TL7705 från TI. Du kan se beskrivningen från Texas Instruments webbplats för denna IC nedan: TL77xxA-familjen med integrerade kretsar för matningsspänning är speciellt utformad för användning som återställningskontroller i mikrodatorn och mikroprocessorsystem. Matningsspänningsövervakaren övervakar matningen för underspänningsförhållanden vid SENSE-ingången. Under uppstart blir RESET-utgången aktiv (låg) när VCC uppnår ett värde som närmar sig 3,6 V. Vid denna tidpunkt (förutsatt att SENSE är över VIT+) aktiverar fördröjningstimern en tidsfördröjning, varefter utmatningen RESET och RESET (NOT) gå inaktiva (hög respektive låg). När ett underspänningstillstånd uppstår under normal drift, aktiveras RESET och RESET (NOT).

Steg 4: kretskortet (PCB)

Kretskortet (PCB)
Kretskortet (PCB)
Kretskortet (PCB)
Kretskortet (PCB)
Kretskortet (PCB)
Kretskortet (PCB)
Kretskortet (PCB)
Kretskortet (PCB)

Jag konstruerade kretskortet i två delar. Den första är LCD -kretskortet som är anslutet till moderkortet med band/platt kabel. Den andra delen är styrkortet. På detta kretskort placerade jag strömförsörjning, mikrokontroller, ultraljudssensor och relaterade komponenter. Och även kraftdelen som är relä-, varistor- och snubberkretsen. Som du säkert vet kan mekaniska reläer som ett relä som jag använde i min krets gå sönder om de alltid fungerar. För att lösa detta problem använde jag reläet normalt nära kontakt (NC). Så i en normal situation är reläet inte aktivt och normalt kan nära kontakt leda pumpen. När vattnet kommer under den låga gränsen slås reläet på och detta kommer att bryta strömmen. Med detta sagt, Det här är anledningen till att jag använde snubberkretsen på NC- och COM -kontakter. När det gäller att pumpen hade hög effekt använde jag det andra 220 -reläet för det, och jag kör det med reläet på kretskort.

Du kan ladda ner PCB -filer som Altium PCB -filer och Gerber -filer från min GitHub här.

Steg 5: Kod

Image
Image
Installation på tank
Installation på tank

Jag använde STM32Cube IDE, som är en allt-i-ett-lösning för kodutveckling från STMicroelectronics. Den är baserad på Eclipse IDE med GCC ARM -kompilator. Den har också STM32CubeMX i den. Du hittar mer information här. Först skrev jag en kod som inkluderade vår tankspecifikation (höjd och diameter). Jag bestämde mig dock för att ändra det till GUI för inställning av parametrar baserat på olika specifikationer.

Steg 6: Installation på tank

Installation på tank
Installation på tank
Installation på tank
Installation på tank

Till slut gjorde jag en enkel låda för att skydda kretskortet från vatten. Jag gjorde också ett hål på toppen av tanken för att sätta sensorn på den.

Rekommenderad: