Besucher seit 10/07/2004

kostenlose counter
   

Im WWW Suchen

Benutzerdefinierte Suche
   


 Digitales Druckmessgerät (Manometer)

Druckmessgerät

Das Digitale Druckmessgerät (Digitalmanometer, im weiteren Text als "DMM" abgekürzt) ist in ein handliches Kunststoffgehäuse (sp2000sw/Reichelt) eingebaut und kann, dank des auf der Platine befindlichen Spannungsregler, mit einem Handelsüblichen Steckernetzteil mit 9VAC/250mA versorgt werden. Die Genauigkeit von +/- 2,5%  ist hauptsächlich dem verwendete Drucksensor MPX5700GS von Freescale zu verdanken. Ich habe den MPX5700 schon zur Steuerung meines Selbstbau-Kompressor verwendet,  wollte damals aber schnell zum Ziel kommen und habe deshalb anstatt einer ordentlichen Berechnung (ADC-Wert -> Bar), einfach eine Tabelle (LUT) zur Umrechnung benutzt. Da man sich ja weiterentwickeln möchte, habe ich beim DMM die Umrechnung (10-Bit) im Programm gemacht und gleich noch PSI und Kilopascal hinzugefügt.

Das wesentliche:

Die hohe Auflösung von 1/100 Bar (2 Stellen hinter dem Komma) ist besonders von nutzen, wenn man ein Drucksystem wie z.B. einen Kompressor auf Dichtheit prüfen will. Hier sieht man sofort, gegenüber einem herkömmlichen Zeigerinstrument, (wenn wenn auch noch so wenig) Luft entweicht und so der Druck sinkt. Meine anfänglichen Befürchtungen, das bei dieser Auflösung das letzte Digit etwas "zappelt" waren unbegründet. Die Anzeige bleibt recht stabil und lässt sich gut ablesen.

Die Schaltung

Manometer Schaltung

Die Rechnerei übernimmt ein ATmega48 der intern mit 8 MHz getaktet wird. An Pin 23 (ADC0) ist der Ausgang des Drucksensor MPX5700 angeschlossen, der mit den im Datenblatt empfohlenen  Kondensatoren (Seite 4, unten) beschaltet ist. Die 3 grünen  Siebensegmentanzeigen werden an den gemeinsamen Anoden über die 3 PNP Transistoren BC557 im Multiplexverfahren angesteuert. Die Taster S1 und S2 für Moduswechsel und Nullabgleich, sind gegen GND geschaltet. Es werden die internen Pullups des ATmega48 verwendet. Die beiden LEDs zeigen hierbei den gewählten Modus (Bar, PSI oder kPa) an. Das Netzteil besteht aus einer einfachen Standardschaltung mit dem Festspannungsregler 7805 und ein paar Kondensatoren. Der Dil-Gleichrichter  dient als Verpolungsschutz. Wollte man das Netzteil mit Wechselspannung betreiben, müsste C8 grösser dimensioniert werden. Mindestens 220µF besser 470µF/25V müssten es dann schon sein.

Wissenswertes über den Drucksensor MPX5700GS*

*Soll die Schaltung nur nachgebaut werden, kann dieser Teil übersprungen werden

Der Drucksensor MPX5700 von Freescale ist zwar etwas teuer, dafür aber für einen AVR mit A/D- Wandler einfach zu handhaben. Der Sensor hat eine Genauigkeit von +/- 2,5% und eine Range von 0..700 kPa (Kilopascal). Wikipedia verrät, das dies einem Druck von 0..7 Bar entspricht. Am Ausgang des MPX5700 steigt die Spannung von 0,2 - 4,7 Volt proportional mit dem Druck von 0..7 Bar. Liegen also am Ausgang 4,7 Volt an, ist am Sensor ein Druck von 7 Bar. Bei 0,2V sind es 0 Bar. Zieht man den Offset von 0,2 Volt von den 4,7 Volt ab, bleiben 4,5 Volt für den kompletten Messbereich von 0..7 Bar.

Berechnung

Der A/D Wandler wird mit 10 Bit und die Referenzspannung mit 5 Volt konfiguriert. Da die 5 Volt am Eingang des A/D-Wandlers nicht ganz erreicht werden und ausserdem die (ca.) 0,2 Volt Offsetspannung subtrahiert werden, muss zuerst der ADC-Wert bekannt sein, der sich bei Maximaldruck einstellt. Da +5V am Eingang des A/D-Wandlers 1023 entspricht, rechnen ich 1024 * 4,5 / 5 und erhalte einen ADC-Wert von 921,6 für einen Wert von 4,5 Volt (=7 Bar). Die Anzeige soll später 2 Stellen nach dem Komma anzeigen, deshalb muss bei einem A/D-Wert von 921,6 (gerundet wird zum Schluss) der Wert 700 berechnet werden. Der Dezimalpunkt der ersten Anzeige wird eingeschaltet und man erhält 7.00 Bar. Das ganze nennt sich Festkommaarithmetik.
Teilt man die 700 auf die 921,6 auf, erhält man 0,7592. Der ausgelesene A/D-Wert muss also immer mit 0,7592 multipliziert werden um den momentanen Druck zu berechnen. Da man in Assembler nur schwer mit Kommazahlen multiplizieren kann, benutze ich folgenden Trick. Die 0,7592 werden zuerst mit 0x10000 (65536 dez.) multipliziert und man erhält 49778 als Konstante. Dieser 16-Bit Wert kann leicht mit dem ausgelesenen A/D-Wert multipliziert werden. Das 32-Bit Ergebnis wird dann wieder durch 0x10000 geteilt. Das geht einfach, indem man die beiden untersten Bytes (Byte0 und Byte1) des 32-Bit Wert verwirft. Byte2 und Byte3 ist also das 16-Bit Ergebnis.

Die Berechnung sieht also im Wesentlichen wie folgt aus:

  • A/D Wandler auslesen
  • Offset 0,2V abziehen
  • mit 49778 multiplizieren
  • die beiden unteren LSBs verwerfen (Durch 0x10000 teilen)
  • In Dezimal wandeln
  • Dezimalpunkt der ersten Anzeige einschalten


Platinenlayout

Digitales Druckmessgerät Layout

Die Platine ist einseitig und wie oben schon erwähnt, den maßen des SP2000sw Gehäuse angepasst. Bevor man jedoch mit der Bestückung beginnt, sollte die gebohrte Platine in das Gehäuseunterteil gelegt werden um die 4 Bohrungen (Durchmesser 3mm) rund um den MPX5700 durch das Gehäuseunterteil fortzuführen. Die Leiterplatte dient also erst einmal als Bohrschablone. Danach kann mit der Bestückung begonnen werden.
Bedingt durch den einseitigen Aufbau, sind ein paar Drahtbrücken erforderlich, die zuerst bestückt werden sollten. S2 und den Drucksensor sollten erst zum Schluss bestückt werden, da hier etwas Bastelarbeit in Verbindung mit dem Gehäuse erforderlich sind. Für die LEDs empfield es sich gedrehte Fassungen zu verwenden, da man sich so, Schrittweise der Einbauhöhe zur Gehäuseoberseite annähern kann. Der µA7805 Spannungsregler wird (bei 9V am Eingang) nicht sonderlich gefordert, trotzdem habe ich einen kleinen Kühlkörper aus einem Aluminiumreststück angefertigt, welchen ich auf der Unterseite des Spannungsregler montiert habe. Der kleine Kühlkörper ragt etwa 2mm rings um das TO220 Gehäuse hervor. Eine passende Unterlegscheibe würde wohl auch genügen. Eine M3 Mutter wird als Abstandshalter zur Platine verwendet. Im Eagle Brd-File sind noch 3 kleine Platinen enthalten, von denen 2 Stück zur Montage des MPX5700 benötigt werden. Die Maße der Montageplatten entsprechen dem gestricheltem Rechteck um den Sensor. 

Stückliste:

Platine:



R1 10k Alle Widerstände bedrahtet, 1/4 Watt
R2 47Ohm
R3-R10 150Ohm
R11-R13 1k
R14, R15 330Ohm
C1, C3,C4,C9,C10 100nF Keramikkondensator
C6 10nF Keramikkondensator
C5 470pF Keramikkondensator
C2 10µF Elko
C7 1µF Elko
C8 100µF Elko
Q1-Q3 BC557B oder ähnlichen PNP Transistor
IC1 ATMega48 Mikrocontroller (DIL Bauform) + evtl. 28 pol. DIL  Fassung schmal
IC2 7805 Spannungsregler, TO220 + evtl. kleinen Kühlkörper (siehe Text)
1 MPX5700GS Drucksensor Freescale, 0..700 kPa
B1 DB107 DIL Gleichrichter
D1-D3 SA52-11GWA Siebensegmentanzeigen grün, gem. Anode (Kingbright)
LED1, LED2 2 LEDs Standardleds 3mm, Farbe nach Geschmack
S1, S2 Taster 3301 D Kurzhubtaster 6*6mm 12,5mm hoch /Reichelt
J1 Hohlstecker HEBW21/Reichelt
JP1 Pinheader ISP Stecker, 2*3 polige Leiste RM2,54mm

Sonstiges:



4 Schraube M3 Senkkopf L=6mm
4 Schraube M3 Senkkopf L=16mm
6 Abstandsrolle Messing vernickelt, D=5mm, Innen= 3,2mm, H=8mm
2 Abstandsrolle Kunststoff D=8mm, Innen= 3,6mm, H=8mm
4 Abstandsbolzen M3 Sechskant, mit Innengewinde, H=8mm
1 Filterscheibe grün Plexiglas, (ich glaube meins war von Conrad)
1 Taster Zum Basteln der Tasterkappe
1 Gehäuse SP2000

 Mechanischer Aufbau


Platine

Druckmessgerät offen

Es ist einiges an Bastelarbeit nötig, um die Platine mit dem Gehäuse zu vereinen. Damit der Sensor genügend aus dem Gehäuse ragen kann, wurde die Platine nicht direkt mit den im Gehäuse vorhandenen Abstandshalter verschraubt, sondern um 8mm erhöht eingebaut.
Da das auf und abstecken eines Pneumatikschlauchs schon einiges an Kraft erfordert, muss der Sensor mechanisch stabil auf der Platine und im Gehäuse befestigt sein, um die Lötstellen nicht zu belasten.
Ich weiss, das der Sensor lt. Datenblatt auch mit Montagelöchern erhältlich ist, jedoch fand ich zum Zeitpunkt keinen Händler der mir den Sensor zu einem humanen Preis liefern konnte. Auf den MPX5700 kann, (wie im Bild  links zu sehen) direkt ein Kunststoffschlauch (Innendurchmesser=4mm) aufgesteckt werden. Bei mir hält das ohne Schlauchschelle o.Ä. den 7 Bar Maximaldruck und rutscht dabei nicht ab.

MPX5700 Montage

Der Drucksensor wird, wie auf den Bildern zu sehen ist, im Sandwichverfahren zwischen 2 kleine Platinen montiert. Die Bohrungen der obere Platte, müssen für die M3 Senkkopfschrauben entsprechend abgesenkt werden, da Zylinderkopfschrauben an das Gehäuseoberteil ragen würden.mpx5700 montage skizze Den MPX5700 sollte man erst verlöten, wenn der mechanische Aufbau fertig ist. Nach der Montage, sollte der Sensor fest zwischen den beiden Platinen sitzen. Sollte er sich noch bewegen lassen, kann man noch eine (sehr flache) Unterlegscheibe oder Dichtung aus der Bastelkiste zwischen den Anschlussnippel und der oberen Platine legen. Auch könnte man die Abstandsrollen etwas abfeilen. Im Bild rechts (vergrößern möglich) ist zu erkennen wie die Platine mit dem Sensor und dem Gehäuse verschraubt sind.
Für die beiden Mountholes rechts und links vom Display, sind 2 weitere 8mm Abstandsrollen nötig. Diese lassen sich nach dem vorsichtigem aufbohren (nicht durchbohren) auf 5mm, einfach auf die im SP2000sw Gehäuse vorhandenen Abstandshalter  aufstecken und die Platine dann mit passenden Blechschrauben befestigen. Die beiden vorderen Mountholes können frei bleiben.

Taster

Da ich für den verwendeten Taster keine passende Kappe fand, entschied ich mich auch hier für eine Bastellösung.
Dazu habe ich einen 2. Taster (Bild1, links) aus der Bastelkiste etwas unsanft in seine Bestandteile zerlegt, sodass ich den roten Knopf für meine Zwecke benutzen konnte. Der Knopf passt fast in eine Distanzrolle aus Kunststoff (8mm, D=3,6mm). Wenn man die Distanzrolle innen mit einer kleinen Rundfeile etwas erweitert, kann der rote Knopf mit etwas Druck bis zum Anschlag in die Rolle gepresst werden (Bild 4) und muss noch nicht einmal eingeklebt werden. Die selbstgemachte Tastkappe kann einfach auf den Taster gesteckt werden und hat auf diesem etwas (0,2mm) Spiel. Wird das Gehäuse geschlossen, wird der Knopf durch die Bohrung im Gehäuseoberteil zentriert und durch die Distanzrolle (die ja etwas grösser vom Durchmesser ist) in Position gehalten. Um die richtige Höhe zu erreichen, muss der Taster etwas gekürzt werden. Ich habe den Taster Schritt für Schritt gekürzt und immer wieder zur Kontrolle das Gehäuseoberteil aufgelegt. Natürlich war der Taster zu diesem Zeitpunkt noch nicht eingelötet. 

Kappe für Taster

Das Endergebnis ist in Bild 5 zu sehen. Wichtig, bei aufgesteckter Kappe, ist der Abstand zwischen Taster und Abstandsrolle.

Frontfolie

Gehäuseoberteil

Zum bohren des Oberteils, habe ich im Eaglefile eine Bohrschablone im Layer 100 erstellt, die man 1:1 ausdruckt und auf dem Gehäuse befestigt. Natürlich kann man auch die Frontfolie als Bohrschablone nutzen, dazu benötigt man allerdings den Frontdesigner von ABACOM, oder man bringt die JPG (Bild rechts vergrössern, Bild speichern unter) auf das passende Maß. Im Download unten ist die Fpl-Datei für den Frontdesigner enthalten.
Den Ausbruch für die grüne Plexiglasscheibe, macht man am besten 1-2 mm breiter, so werden später, durch den Frontplattenaufkleber kleine Unregelmäßigkeiten verdeckt. Die Bohrungen der LEDs, Taster und Sensor, habe ich etwas mit einem Senker bearbeitet, dadurch müssen die entsprechenden Aussparungen in der Frontfolie etwas grösser  als die Bohrungen ausgestanzt werden. Wie ich meine Frontfolien herstelle, habe ich hier etwas ausführlicher beschrieben.

Nullabgleich

Ein Nullabgleich muss immer dann ausgeführt werden, wenn sich der Umgebungsdruck ändert. Das macht sich dadurch bemerkbar, das bei offenem Druckeingang ein Wert ungleich Null auf dem Display angezeigt wird. Auf jeden Fall muss bei der ersten Inbetriebnahme des DMM der Nullabgleich durchgeführt werden. 
Dazu muss bei offenem Druckeingang der Taster für Nullabgleich kurz gedrückt werden, der mit einem kleinen Schraubenzieher o.Ä.  durch die Bohrung im Gehäuse erreichbar ist.
Die beiden LEDs beginnen nun abwechselnd zu blinken. Auf dem Display erscheint "CAL" und kurz darauf der dezimale ADC-Wert, der bei 0 Bar ausgelesen wird. Dieser Wert wird nun im internen EEprom des Mega48 gespeichert und es erscheint "End" auf dem Display. Danach zeigt das DMM Null auf dem Display und ist Betriebsbereit.

 Download

Das komplette Projekt gezippt herunterladen.

Beim brennen des ATmega48, die Fusebits auf 8MHz intern einstellen. Wie das geht erfahrt ihr hier.

Viel Spass beim basteln, Jürgen.

PS. Bitte überprüft euren Reifendruck weiterhin an der Tankstelle. Diese Geräte werden regelmäßig überprüft und kalibriert.