Vloeistof niveaumeter versie 2


 


De vloeistof niveaumeter eerder beschreven op deze website, bleek een aantal gebreken te vertonen. De gemeenschappelijke draad van de sensor ligt in het schema niet aan massa, terwijl het in de praktijk goed mogelijk is dat het water wel aan massa ligt, bvb. in het watersysteem van een mobilhome kan de metalen boiler het water aan de massa leggen. Dit zorgde voor ernstige meetstoornissen op het meetapparaat, waardoor een software aanpassing noodzakelijk was. Deze software aanpassing bestond er hoofdzakelijk in de vorm van het signaal te veranderen, en wat trager de sensoren af te tasten. Dit leidde dan weer tot het feit dat de gegenereerde meetspanningen niet echt meer op een wisselstroom gingen lijken, maar meer op een pulserende gelijkstroom. Dit had een nefast gevolg op de sensoren: na verloop van tijd werden deze "opgevreten" door elektrolyse- en andere effecten.

In de Elektuur jaargang 1995 staat een goede schakeling beschreven voor vloeistofnivo meting, zonder microcontroller, en met een "LED-array" als display. Ik besloot deze schakeling lichtjes aan te passen en als "voorzet" te gebruiken voor de hier beschreven microcontroller schakeling. De Elektuur schakeling zet een nagenoeg perfecte wisselspanning met hoge frekwentie (meerdere kHz) op de meet-elektroden en de gemeenschappelijke geleider ligt netjes aan de massa. De LEDs werden verwijderd, connectoren (headers) in de plaats gezet en deze werd met een flat-cable naar de PIC16F873 gevoerd.

In het betreffende Elektuurnummer wordt ook een printje voor het apparaat voorgesteld. Je kan dit printje perfekt blijven gebruiken mits een aantal aanpassingen (baantje voor 5V voeding doorsnijden). Op de plaats waar de LEDs zouden komen kan je "header" printconnectoren plaatsen voor aansluiting van de flat-kabel. Er is ook een (blauwe) LED toegevoegd (met serie weerstand) op de +5V leiding zodat je goed kan zien wanneer de PIC het apparaat aan- en uitschakelt. De hier beschreven PIC vloeistof nivo meter extensie controleert de hele zaak: hij voorziet de Elektuur schakeling van voeding (via poort RA0), schakelt niet alleen zichzelf uit maar ook de Elektuur schakeling enz. Bovendien hoeft er aan de PIC-hardware van "versie 1" (zie: vloeistof niveau meter) niets gewijzigd te worden. Alleen de software wijzigt (lichtjes). Poort RA0 wordt nu niet meer gebruikt als analoge ingangspoort maar als digitale uitgangspoort om de andere hardware aan en uit te zetten, en POORTC wordt constant als ingang gebruikt om de uitgang van de Elektuur schakeling te lezen. De andere funkties blijven ongewijzigd: tonen van het nivo op het LCD display als bar-graph of als een getal, instellen van de hoeveelheid liter per nivo in EEPROM, automatisch uitschakelen na bepaalde tijd, achtergrond verlichting (eveneens automatisch uit), automatisch aanschakelen enz.

Het gemeten resultaat wordt op het LCD display getoond in de vorm van een bar grafiek, die niveaus 1/8 tot en met 8/8 van het tankvolume representeert. In een andere view can het resterende volume in liters worden afgelezen. Het aantal liters dat in 1 niveau 'past', kan ingesteld worden. Deze waarde wordt bovendien vastgelegd in EEPROM zodat deze niet telkens opnieuw ingebracht moet worden bij uitvallen van de voedingsspanning. Voor andere eigenschappen, zie de readme file elders op deze pagina.

Opmerkingen betreffende de bouw:

Aansluiting 'to waterpump' kan gebruikt worden om het apparaat automatisch in te schakelen als bvb. een pomp gaat draaien. Deze aansluiting komt in dit geval parallel op de pomp. Als men geen gebruik wenst te maken van deze mogelijkheid is het beter deze aansluiting aan massa te leggen om zo storingen te vermijden.

De LCD display module, de standaard Hitachi compatibele module die overal verkrijgbaar is (16 chars x 2 lijnen met achtergrondverlichting), is een printje op zichzelf en wordt hier met het PIC printje (experimenteer board) via een soort sandwich constructie tot 1 module gemaakt, de uiteindelijke display module (met PIC).

Vergeet de draadbrug niet (punten gemarkeerd met * moeten verbonden worden).

In het schema voor de sensor module zijn de verbindingen naar + en massa van de 5 IC's niet getoond om het schema ietwat overzichtelijk te houden. Deze mogen eveneens niet vergeten worden.

Afregeling: leg 4 van de 8 sensoren (en tevens de gemeenschappelijke draad) in een glas water. Regel P1 zo af dat er op het LCD 4 blokjes te zien zijn.


Schema van de sensor-schakeling (Elektuur aug. 95)


Componenten lijst sensor-schakeling

PCB layout voor de sensor-schakeling

Componenten opstelling voor de sensor-schakeling

Verklaring van de werking:


IC4 is een teller/oscillator combinatie en fungeert als centraal stuurelement van de schakeling. De oscillator uitgang is beschikbaar op pin 7 van dit IC en dit is een AC spanning, dewelke (via spanningsdeler R3/R4) naar de als ingang gebruikte pin 3 van IC5 geleid wordt (multiplexer IC) en tevens naar een gelijkrichter/demodulator bestaande uit D1/R1/R5. Het resultaat, een soort omhullende, wordt met comparator IC2 vergeleken met een constante. Als een bepaalde elektrode in het water ligt, ontstaat er een extra belasting op de wisselspanning, waardoor tevens de uitgang van de demodulator zal zakken en het comparator IC zal van niveau veranderen aan zijn uitgang. Nu duurt dit alles maar heel even, want de multiplexer legt slechts 1 van de 8 elektroden, ieder om beurt, aan de wisselspanning.
De multiplexer selekteert echter niet alleen de meetelektroden, maar ook (via IC3 BCD naar decimaal decoder) de acht uitgangen van de schakeling (pin 0 t/m 7 van IC3). Via de 'enable' ingang van IC3, die gestuurd wordt door de comparator, wordt voor iedere elektrode de status doorgegeven.
De twee NAND poorten (IC6) aan de uitgang van de comparator en aan de "enable" ingang van IC3 dienen ter compensatie van het feit dat de meetwaarde van elke elektrode wordt vastgehouden tot iets na het omschakelpunt (omdat er enige vertraging optreedt door C1/R5).
Op de uitgangen verschijnt een constant hoog niveau wanneer de desbetreffende meetelektrode droog is, en kortstondige pulsjes met een laag niveau wanneer de desbetreffende meetelektrode onder water ligt. Het stroomverbruik van deze schakeling alleen, zonder LEDs, is ongeveer 0.660 mA.


Schema van de display-schakeling


Componenten lijst display-schakeling

Verklaring van de werking:


De connector gemarkeerd met "+-12345678" is verbonden met de andere schakeling (de Elektuur schakeling). Op de "+" wordt een plus 5 volt spanning gezet via poort RA0 van de PIC16F873 microcontroller. Dit gebeurt alleen maar als het apparaat aangezet wordt (of automatisch aanslaat) en nadat de LCD module en de processor zelf gestabiliseerd is (zie source code). Anders staat hier 0 volt. De "-" is gewoon om de massa's van beide schakelingen door te verbinden. De "1" t/m "8" gaan via een flatcable naar de uitgang van de Elektuur schakeling. Hier, op deze schakeling, zijn ze dan weer verbonden met poort C van de processor, dewelke als ingang geconfigureerd is. De software in de microcontroller zorgt ervoor dat poort C constant "gepolled" wordt, t.t.z. er wordt getest of er binnen een tijdsbestek van ca. 5 ms (per electrode) minstens 1 keer een bepaalde elektrode op laag is komen te staan (= elektrode onder water).
Het LCD display is een klassiek LCD display volgens de Hitachi specificaties en wordt in 4 bit mode gestuurd door de processor.
Spanningsdeler R13/R14 zorgt ervoor dat er een externe sturing kan gebeuren om het apparaat aan te zetten. Deze sturing mag tot 15 volt bedragen.
De transistor TR1 is noodzakelijk voor het besturen van de achtergrond verlichting van het LCD display omdat dit toch wel wat stroom vergt (zo'n 110 mA) en dit zou de PIC niet rechtstreeks aan kunnen.
Instelpotentiometer VR1 dient om het contrast van het LCD display te regelen.
De schakeling is bedoeld voor gebruik in mobilhomes (en wordt aangesloten op de lichtbatterij, 12 V) en mag dus niet teveel stroom vergen. Door toepassing van een zuinige spanningsregelaar (IC1) bedraagt het stroomverbruik in rust (wanneer de PIC in sleep mode is en bijgevolg het LCD display, achtergrondverlichting en de andere schakeling uitgeschakeld zijn) slechts ca. 1 mA. Wanneer alles aan is kan dit oplopen tot zo'n 120 mA. Als na een tijdje (ca. 5 minuten) de achtergrondverlichting door de software wordt uitgeschakeld is maar de LCD nog niet, bedraagt het verbruik ca. 9 mA (beide schakelingen samen).


Bron code voor dit project

Eigenschappen

Enkele fotos

Beide apparaten samen.

Beide apparaten worden verbonden met een flat cable.

Vertikale display.

Verticale display met achtergrondverlichting.

De bar graph toont het water niveau.

Bar graph display.

De display schakeling als sandwich-constructie.

LCD module en PIC schakeling "gesandwiched".

  Home         Terug naar Electronica projecten