Inhoudsopgave:

Een waterstroommeter maken: 7 stappen
Een waterstroommeter maken: 7 stappen

Video: Een waterstroommeter maken: 7 stappen

Video: Een waterstroommeter maken: 7 stappen
Video: INTERIOR TOUR of DIY Camper - Ex-Army Unimog Expedition Vehicle Build 2024, September
Anonim
Een waterstroommeter maken
Een waterstroommeter maken

Een nauwkeurige, kleine en goedkope vloeistofstroommeter kan eenvoudig worden gemaakt met behulp van GreenPAK™-componenten. In deze Instructable presenteren we een waterstroommeter die continu de waterstroom meet en deze weergeeft op drie 7-segments displays. Het meetbereik van de flowsensor is van 1 tot 30 liter per minuut. De uitgang van de sensor is een digitaal PWM-signaal met een frequentie die evenredig is met het waterdebiet.

Drie GreenPAK programmeerbare Mixed-signal Matrix SLG46533 IC's tellen het aantal pulsen binnen een basistijd T. Deze basistijd wordt zo berekend dat het aantal pulsen gelijk is aan de stroomsnelheid in die periode, dan wordt dit berekende aantal weergegeven op de 7 -segmentweergaven. De resolutie is 0,1 liter/min.

De uitgang van de sensor is verbonden met een digitale ingang met Schmitt-trigger van een eerste Mixed-signal Matrix die het fractionele getal telt. De chips worden in cascade geschakeld via een digitale uitgang, die is verbonden met een digitale ingang van een bestaande Mixed-signal Matrix. Elk apparaat is via 7 uitgangen aangesloten op een 7-segments gemeenschappelijke kathodedisplay.

Het gebruik van een programmeerbare matrix met gemengd signaal van GreenPAK heeft de voorkeur boven veel andere oplossingen, zoals microcontrollers en discrete componenten. Vergeleken met een microcontroller is een GreenPAK goedkoper, kleiner en gemakkelijker te programmeren. Vergeleken met een ontwerp met discrete logische geïntegreerde schakelingen, is het ook goedkoper, gemakkelijker te bouwen en kleiner.

Om deze oplossing commercieel haalbaar te maken, moet het systeem zo klein mogelijk zijn en worden ingesloten in een waterdichte, harde behuizing die bestand is tegen water, stof, stoom en andere factoren, zodat het onder verschillende omstandigheden kan werken.

Om het ontwerp te testen is een eenvoudige printplaat gebouwd. De GreenPAK-apparaten worden op deze PCB aangesloten met behulp van 20-pins dubbele rij vrouwelijke headerconnectoren.

Tests worden de eerste keer gedaan met behulp van pulsen die worden gegenereerd door een Arduino en in een tweede keer werd de waterstroomsnelheid van een waterbron thuis gemeten. Het systeem heeft een nauwkeurigheid van 99% laten zien.

Ontdek alle benodigde stappen om te begrijpen hoe de GreenPAK-chip is geprogrammeerd om de waterstroommeter te regelen. Als u echter alleen het resultaat van het programmeren wilt hebben, download dan GreenPAK-software om het reeds voltooide GreenPAK-ontwerpbestand te bekijken. Sluit de GreenPAK Development Kit aan op uw computer en druk op het programma om het aangepaste IC te maken om uw waterstroommeter te bedienen. Volg de onderstaande stappen als u geïnteresseerd bent om te begrijpen hoe het circuit werkt.

Stap 1: Algemene beschrijving van het systeem

Algemene beschrijving van het systeem
Algemene beschrijving van het systeem
Algemene beschrijving van het systeem
Algemene beschrijving van het systeem

Een van de meest gebruikelijke manieren om de vloeistofstroomsnelheid te meten, is precies hetzelfde als het principe van het meten van de windsnelheid met een anemometer: de windsnelheid is evenredig met de rotatiesnelheid van de anemometer. Het belangrijkste onderdeel van dit type flowsensor is een soort pinwheel, waarvan de snelheid evenredig is met de vloeistofstroom die er doorheen gaat.

We gebruikten de waterstroomsensor YF-S201 van de firma URUK die wordt getoond in figuur 1. In deze sensor geeft een Hall-effectsensor die op het pinwheel is gemonteerd bij elke omwenteling een puls af. De frequentie van het uitgangssignaal wordt weergegeven in formule 1, waarbij Q de waterstroomsnelheid in liters/minuut is.

Als het gemeten debiet bijvoorbeeld 1 liter/minuut is, is de uitgangssignaalfrequentie 7,5 Hz. Om de werkelijke waarde van de stroom in het formaat 1,0 liter/minuut weer te geven, moeten we pulsen tellen gedurende een tijd van 1,333 seconden. In het voorbeeld van 1,0 liter/minuut is het getelde resultaat 10, wat wordt weergegeven als 01,0 op de zevensegmentendisplays. In deze toepassing worden twee taken behandeld: de eerste is het tellen van pulsen en de tweede is het weergeven van het aantal wanneer de teltaak is voltooid. Elke taak duurt 1.333 seconden.

Stap 2: GreenPAK Designer-implementatie

De SLG46533 heeft veel veelzijdige macrocellen voor combinatiefuncties en ze kunnen worden geconfigureerd als opzoektabellen, tellers of D-Flip-Flops. Deze modulariteit maakt GreenPAK geschikt voor de toepassing.

Het programma heeft 3 fasen: fase (1) genereert een periodiek digitaal signaal om te schakelen tussen de 2 taken van het systeem, fase (2) telt flowsensorpulsen en fase (3) geeft het fractionele getal weer.

Stap 3: Eerste fase: schakeling tellen/weergeven

Eerste fase: schakeling tellen/weergeven
Eerste fase: schakeling tellen/weergeven
Eerste fase: schakeling tellen/weergeven
Eerste fase: schakeling tellen/weergeven
Eerste fase: schakeling tellen/weergeven
Eerste fase: schakeling tellen/weergeven

Er is een digitale uitgang "COUNT/DISP-OUT" vereist die de status elke 1.333 seconden tussen hoog en laag verandert. Als het hoog is, telt het systeem de pulsen en als het laag is, wordt het getelde resultaat weergegeven. Dit kan worden bereikt met behulp van DFF0, CNT1 en OSC0 bedraad zoals weergegeven in afbeelding 2.

De frequentie van OSC0 is 25 kHz. CNT1/DLY1/FSM1 is geconfigureerd als een teller en de klokingang is verbonden met CLK/4 zodat de ingangsklokfrequentie van CNT1 6,25 kHz is. Voor de eerste klokperiode die duurt, zoals weergegeven in vergelijking 1, is de CNT1-uitgang hoog en vanaf de stijgende flank van het volgende kloksignaal is de telleruitgang laag en begint CNT1 af te nemen vanaf 8332. Wanneer de CNT1-gegevens 0 bereiken, wordt een nieuwe puls op de CNT1-uitgang gegenereerd. Op elke stijgende flank van de CNT1-uitgang verandert de DFF0-uitgang de status, als deze laag is, schakelt deze over naar hoog en vice versa.

De uitgangspolariteit van DFF0 moet worden geconfigureerd als omgekeerd. CNT1 is ingesteld op 8332 omdat de tel-/weergavetijd T gelijk is aan zoals weergegeven in vergelijking 2.

Stap 4: Tweede fase: ingangspulsen tellen

Tweede fase: ingangspulsen tellen
Tweede fase: ingangspulsen tellen
Tweede fase: ingangspulsen tellen
Tweede fase: ingangspulsen tellen
Tweede fase: ingangspulsen tellen
Tweede fase: ingangspulsen tellen

Er wordt een 4-bits teller gemaakt met behulp van DFF3/4/5/6, zoals weergegeven in afbeelding 4. Deze teller wordt alleen bij elke puls verhoogd als "COUNT/DISP-IN", dat is PIN 9, hoog is. De EN-poort 2-L2-ingangen zijn "COUNT/DISP-IN" en de PWM-ingang. De teller wordt gereset wanneer deze 10 bereikt of wanneer de telfase begint. De 4-bits teller wordt gereset wanneer DFF's RESET-pinnen, die zijn aangesloten op hetzelfde netwerk "RESET", laag zijn.

4-bit LUT2 wordt gebruikt om de teller te resetten wanneer deze 10 bereikt. Aangezien DFF-uitgangen worden geïnverteerd, worden getallen gedefinieerd door alle bits van hun binaire representaties om te keren: 0s voor 1s en vice versa. Deze representatie wordt 1's complement van binair getal genoemd. 4-bit LUT2-ingangen IN0, IN1, IN2 en IN3 zijn respectievelijk verbonden met a0, a1, a2, a3 en a3. De waarheidstabel voor 4-LUT2 wordt getoond in Tabel 1.

Wanneer 10 pulsen worden geregistreerd, schakelt de uitgang van 4-LUT0 van hoog naar laag. Op dit punt schakelt de uitgang van CNT6/DLY6, geconfigureerd om in de one-shot-modus te werken, over naar laag voor een periode van 90 ns en wordt dan weer ingeschakeld. Evenzo, wanneer "COUNT/DISP-IN" overschakelt van laag naar hoog, tenminste. het systeem begint pulsen te tellen. De uitgang van CNT5/DLY5, geconfigureerd om te werken in de one-shot-modus, schakelt te laag voor een periode van 90 ns en schakelt vervolgens weer in. Het is van cruciaal belang om de RESET-knop een tijdje op een laag niveau te houden en deze weer aan te zetten met CNT5 en CNT6 om alle DFF's de tijd te geven om te resetten. Een vertraging van 90 ns heeft geen invloed op de systeemnauwkeurigheid aangezien de maximale frequentie van het PWM-signaal 225 Hz is. De CNT5- en CNT6-uitgangen zijn verbonden met de ingangen van de EN-poort die het RESET-signaal afgeeft.

De uitgang van 4-LUT2 is ook verbonden met pin 4, gelabeld "F/10-OUT", die zal worden verbonden met de PWM-ingang van de teltrap van de volgende chip. Als bijvoorbeeld "PWM-IN" van het fractionele telapparaat is aangesloten op de PWM-uitgang van de sensor en de "F/10-OUT" is aangesloten op de "PWM-IN" van het telapparaat en de " F/10-OUT" van deze laatste is verbonden met de "PWM-IN" van het tientallen-telapparaat enzovoort. "COUNT/DISP-IN" van al deze fasen moet worden aangesloten op dezelfde "COUNT/DISP-OUT" van een van de 3 apparaten voor het fractionele telapparaat.

Figuur 5 legt in detail uit hoe deze fase werkt door te laten zien hoe een debiet van 1,5 liter/minuut gemeten kan worden.

Stap 5: Derde fase: meetwaarde weergeven

Derde fase: meetwaarde weergeven
Derde fase: meetwaarde weergeven
Derde fase: meetwaarde weergeven
Derde fase: meetwaarde weergeven
Derde fase: meetwaarde weergeven
Derde fase: meetwaarde weergeven

Deze trap heeft als ingangen: a0, a1, a2 en a3 (omgekeerd), en zal worden uitgevoerd naar de pinnen die zijn aangesloten op het 7-segments display. Elk segment heeft een logische functie die moet worden gemaakt door beschikbare LUT's. 4-bit LUT's kunnen het werk heel gemakkelijk doen, maar helaas is er maar 1 beschikbaar. 4-bits LUT0 wordt gebruikt voor segment G, maar voor de andere segmenten gebruikten we een paar 3-bits LUT's zoals weergegeven in figuur 6. De meest linkse 3-bits LUT's hebben a2/a1/a0 aangesloten op hun ingangen, terwijl de meest rechtse 3-bit LUT's hebben a3 aangesloten op hun ingangen.

Alle opzoektabellen kunnen worden afgeleid uit de 7-segments decoder waarheidstabel weergegeven in Tabel 2. Ze worden weergegeven in Tabel 3, Tabel 4, Tabel 5, Tabel 6, Tabel 7, Tabel 8, Tabel 9.

Besturingspinnen van GPIO's die het 7-segmentsdisplay besturen, zijn via een omvormer verbonden met "COUNT/DISP-IN" als uitgangen wanneer "COUNT/DISP-IN" laag is, wat betekent dat het display alleen tijdens de weergavetaak wordt gewijzigd. Daarom zijn tijdens de teltaak de displays UIT en tijdens de weergavetaak geven ze de getelde pulsen weer.

Ergens in het 7-segments display kan een decimale puntindicator nodig zijn. Om deze reden is PIN5, met het label "DP-OUT", verbonden met het omgekeerde "COUNT/DISP"-netwerk en verbinden we het met de DP van het bijbehorende display. In onze toepassing moeten we de decimale punt van het apparaat voor het tellen van eenheden weergeven om getallen in het formaat "xx.x" weer te geven, dan zullen we "DP-OUT" van het apparaat voor het tellen van eenheden verbinden met de DP-ingang van de 7- segmentweergave en we laten de andere los.

Stap 6: Hardware-implementatie

Hardware-implementatie
Hardware-implementatie

Afbeelding 7 toont de onderlinge verbinding tussen de 3 GreenPAK-chips en de verbindingen van elke chip met het bijbehorende display. De decimale puntuitgang van de GreenPAK is aangesloten op de DP-ingang van het 7-segments display om de stroomsnelheid in het juiste formaat weer te geven, met een resolutie van 0,1 liter/minuut. De PWM-ingang van de LSB-chip is verbonden met de PWM-uitgang van de waterstroomsensor. De F/10-uitgangen van de schakelingen zijn verbonden met de PWM-ingangen van de volgende chip. Voor sensoren met hogere stroomsnelheden en/of grotere nauwkeurigheid kunnen meer chips in cascade worden geplaatst om meer cijfers toe te voegen.

Stap 7: Resultaten

Resultaten
Resultaten
Resultaten
Resultaten
Resultaten
Resultaten

Om het systeem te testen, hebben we een eenvoudige PCB gebouwd met connectoren om GreenPAK-sockets in te pluggen met behulp van 20-pins dubbele rij vrouwelijke headers. Het schema en de lay-out van deze print evenals foto's worden gepresenteerd in de bijlage.

Het systeem is eerst getest met een Arduino die een stroomsnelheidssensor en een waterbron simuleert met een constante, bekende stroomsnelheid door pulsen te genereren bij 225 Hz, wat overeenkomt met een stroomsnelheid van respectievelijk 30 liter/minuut. Het resultaat van de meting was gelijk aan 29,7 liter/minuut, de fout is ongeveer 1%.

De tweede test is uitgevoerd met de waterstroomsensor en een waterbron thuis. Metingen bij verschillende stroomsnelheden waren 4,5 en 12,4.

Conclusie

Deze Instructable laat zien hoe u een kleine, goedkope en nauwkeurige flowmeter kunt bouwen met behulp van een Dialog SLG46533. Dankzij GreenPAK is dit ontwerp kleiner, eenvoudiger en gemakkelijker te maken dan vergelijkbare oplossingen.

Ons systeem kan een stroomsnelheid tot 30 liter/minuut meten met een resolutie van 0,1 liter, maar we kunnen meer GreenPAK's gebruiken om hogere stroomsnelheden met een hogere nauwkeurigheid te meten, afhankelijk van de stroomsensor. Een op Dialog GreenPAK gebaseerd systeem kan werken met een breed scala aan turbinestroommeters.

De voorgestelde oplossing is ontworpen om de stroomsnelheid van water te meten, maar kan worden aangepast voor gebruik met elke sensor die een PWM-signaal afgeeft, zoals een gasstroomsnelheidssensor.

Aanbevolen: