Luftdrucksensor für Arduino

Für normale nicht-Weltraum Anwendungen hab ich ganz gute Ergebnisse mit dem BMP085 gehabt.
Gibts bei http://www.adafruit.com/products/391 und nat. bei Ebay/China weit weit günstiger.
Die Lib von Adafruit funzt super und erkennt schon kleine Unterschiede wenn man die Werte etwas glättet.

https://hbe-shop.de/SENSORABS-PRESS-363-PSI-Typ-MPX4250AP
Hier findest du einen Absolutwert Drucksensor. Also hast du immer auch den aktuellen Luftdruck Damit kannst du dann "alles" machen bis zu einem Überdruck von 1,5bar.
Habe selber schonmal mit diesem Sensor hantiert also Handhabung abslout unkompliziert.
Gruß
Der Dani

Ich denke ich suche sowas wie einen differenzial druckmesser.Der sollte aber für millibar ausgelegt sein.
Seine aufgabe ist es den druck zu messen, doch wenn kein druck einwirkt soll ungefähr 0 angezeigt werden.(das ganze geschieht auf der erde ohne vakuum) Und wenn ich reinblasse soll er mir den druck den ich dabei ausübe in millibar anzeigen .(auf einem LCD oder seriel).

strohhirn:
Ich denke ich suche sowas wie einen differenzial druckmesser.Der sollte aber für millibar ausgelegt sein.
Seine aufgabe ist es den druck zu messen, doch wenn kein druck einwirkt soll ungefähr 0 angezeigt werden.(das ganze geschieht auf der erde ohne vakuum) Und wenn ich reinblasse soll er mir den druck den ich dabei ausübe in millibar anzeigen .(auf einem LCD oder seriel).

Dann musst Du Dir jetzt noch den Druckbereich überlegen.

Differenzdrucksensoren gibt es für die Messung winzigster Druckunterschiede, wie z.B. den Sog in einem Kamin, mittlerer Druckunterschiede wie am Saugrohr eines Verbrennungsmotors oder für hohe Drücke wie sie in einer Pressluftleitung herrschen. Besonders gängig sind solche Sensoren nur in Kraftfahrzeugen (dort als Originalersatzteile der Automobilhersteller, keine Datenblätter verfügbar), aber Conrad hat auch einige im Programm für verschiedene Druckbereiche.

Ich brauche einen drucksensor mit einem druckbereich von 0-100 millibar.

Ich glaube bevor wir hier noch weiter empfehlungen aussprechen. Brauchst du einen Sensor der einen Bestimmeten Druck überhalb deines normalen Atmospherendurck (Differenz) misst oder der den Druck absolut misst.
Mit dem Absolut Pressure kannst du z.B. über einen Taster abgleichen auf deinen Umgebungsdruck (sonst misst der ja den Atmospheredruck da er ein "absolutes Vakuum" als Referenz hat) Dann kannst du auch die 100mBar messen.
Der andere Sensor hat zwei Anschlüsse einen für den "zu messenden"Druck und der andere ist Atmosdruck also misst der immer die Differenz.
Gruß
Der Dani

strohhirn:
Ich brauche einen drucksensor mit einem druckbereich von 0-100 millibar.

Dann weißt Du ja jetzt was Du brauchst: Einen Differenzdrucksensor (neudeutsch: differential pressure sensor) mit einem Messbereich bis 100 hPa (Hektopascal, das bar als Druckeinheit ist seit 1970 in Deutschland abgeschafft).

Gängige Sensorenhersteller bieten sowas an, hauptsächlich für medizinische und industrielle Anwendungen, z.B. digitale Sensoren mit I2C und auch analoge mit Spannungsausgang:

Kosten aber eine Stange Geld.

Wenn Du insbesondere um den Nullpunkt herum keine besonders hohe Genauigkeit benötigst, kannst Du Dir womöglich aus zwei normalen und billigen barometrischen Sensoren was bauen: Zwei Sensoren, zwei Messungen, selbst die Differenz bilden. Kommt auch drauf an, wie hoch über Meereshöhe Du messen möchtest: Auf Meereshöhe kann der barometrische Luftdruck ja auch leicht mal 1035 hPa betragen und viele Sensoren gehen nur bis 1100 hPa, damit würdest Du eine Differenzmessung dann nur bis +65 hPa Differenzdruck realisieren können (falls gerade eine Hochdruck-Wetterlage herrscht).

Wenn's "für auf'm Berg" ist, wäre es kein großes Problem: Bei 1 hPa Druckabnahme pro 8 Höhenmeter würdest Du für eine Gegend, die mindestens 400 m über Meereshöhe liegt, auch aus zwei barometrischen Sensoren bis 1100 hPa leicht eine Differenzdruckmessung bis 100 hPa Differenzdruck auch bei Hochdruckwetterlagen bauen können. Aber es kommt in dem Fall auf die Höhenlage des Messortes an, und darauf, ob nahe der Nulllage wirklich keine hohe Genauigkeit benötigt wird. Denn exakte Werte nahe dem Nullpunkt können nur Differenzdrucksensoren zuverlässig ermitteln.

dir würde auch ein Relativdrucksensor reichen. Der Fachausdruck im Englischen ist dafür "Gauge", nicht zu verwechseln mit "Sealed Gauge", dies ist ein Absolutdrucksensor. Im Unterschied zum Differenzdrucksensor ist beim Relativdrucksensor ein Druckeingang immer mit dem Umgebungsdruck verbunden. Und misst so den angelegten Druck immer in Relation zum Umgebungsdruck (Luftdruck).

Ein passender Sensor ist der MPX5010DP (Differenzdrucksensor) oder MPX5010GP, MPX5010GS, MPX5010GSX (Relativdrucksensoren) von Freescale.
Datenblatt: http://www.freescale.com/files/sensors/doc/data_sheet/MPX5010.pdf

die von jurs genannte Möglichkeit hat den Nachteil, dass sich die Ungenauigkeit der Messung erhöht. Da du zwei Sensoren verwendest, misst du auch alle Fehler zwei mal (Nullpunktabweichung, Nullpunktdrift, Druckabhängigkeit, Genauigkeit über Temperatur, etc.). In einem Hobbyprojekt mag das nicht von Bedeutung sein, wenn du aber "richtig" messen willst, musst du das beachten. Je nach Wahl der Sensoren kann diese Variante aber erhebliche Vorteile bringen, wenn du z.B. in sehr feuchter / nasser Umgebung messen musst.

thewknd:
dir würde auch ein Relativdrucksensor reichen. Der Fachausdruck im Englischen ist dafür "Gauge", nicht zu verwechseln mit "Sealed Gauge", dies ist ein Absolutdrucksensor. Im Unterschied zum Differenzdrucksensor ist beim Relativdrucksensor ein Druckeingang immer mit dem Umgebungsdruck verbunden. Und misst so den angelegten Druck immer in Relation zum Umgebungsdruck (Luftdruck).

Ein passender Sensor ist der MPX5010DP (Differenzdrucksensor) oder MPX5010GP, MPX5010GS, MPX5010GSX (Relativdrucksensoren) von Freescale.
Datenblatt: http://www.freescale.com/files/sensors/doc/data_sheet/MPX5010.pdf

die von jurs genannte Möglichkeit hat den Nachteil, dass sich die Ungenauigkeit der Messung erhöht. Da du zwei Sensoren verwendest, misst du auch alle Fehler zwei mal (Nullpunktabweichung, Nullpunktdrift, Druckabhängigkeit, Genauigkeit über Temperatur, etc.). In einem Hobbyprojekt mag das nicht von Bedeutung sein, wenn du aber "richtig" messen willst, musst du das beachten. Je nach Wahl der Sensoren kann diese Variante aber erhebliche Vorteile bringen, wenn du z.B. in sehr feuchter / nasser Umgebung messen musst.

Verstehe ich nicht was für einen Unterschied es macht bei obigem genannten Fall. Auch ein "Relativdrucksensor" ist ein Differenzdrucksensor :slight_smile:
Er will den Luftdruck (Atmospähre) der ja Schwankungen unterliegt ( Hoch- und Tiefdruckgebiete) als normalnull (Relativdruck) verwenden. Absolutdruck geht immer vom Vakuum aus, also -1bar absolut. <-- und der ist fest, weniger geht nicht.
Auch der Luftdruck wird als Absolutdruck angegeben.

und Physikalische größen im µC umzurechen dürfte ja nicht allzuschwer sein,1 bar entspricht dabei 100.000 Pa.

PS: "Pascal" ist vielleicht die offizielle SI-Einheit, "bar" ist in der Industrie und auch privat überall immer noch gängig und keinesfalls abgeschafft. Das trifft auf "atü" schon eher zu.

Ich habe den Relativdrucksensor nur erwähnt, weil er
a) in desem Fall auch den Anforderungen genügt
b) dadurch strohhirn aus einer grösseren Menge Sensoren den passenden auswählen kann

Warum man jetzt einen Prozeßdruck im Verhälniss zu einem relativen Umgebungsdruck verrechnen will erschließt sich mir nicht.

z.B. um den Füllstand einer Flüssigkeit in einem Behälter zu messen.

Warum man jetzt einen Prozeßdruck im Verhälniss zu einem relativen Umgebungsdruck verrechnen will erschließt sich mir nicht.

z.B. um den Füllstand einer Flüssigkeit in einem Behälter zu messen.
[/quote]

Ja der Satz war reichlich unüberlegt sorry. Habe ihn aus meinem Post rausgenommen :blush:

Kann ich auch den MPX5050DP verwenden?
Ich verwende ihn mit folgendem sketchteil:

include <LiquidCrystal.h>   

LiquidCrystal lcd(22, 23, 24, 25, 26, 27, 28);

int backLight = 29;
int   mpxPin = 5;
int   mpx;                
      
float pkPa;             

void setup() {
  lcd.begin(20, 4);
pinMode(backLight, OUTPUT);
digitalWrite(backLight, HIGH); 
}

void loop() {
    mpx = (float)analogRead(mpxPin);
    pkPa = (mpx/(float)1023-0.04)/0.0018;
    
    lcd.setCursor(0, 0);
    lcd.print("mb ");
    lcd.print(pkPa);
    delay(1000);
  }

Das klappt prima( um den nullpunkt hüppft der wert ein bisschen), doch wenn sich in der nähe des sensors relais anschalten sringt der wert um min. 3mbar hoch.
Ich habe wie im datasheet gezeichnet kondensatoren angeschlossen. Doch statt des 470 pF kondensators habe ich einen 4700 pF verwendet. Ist das schlimm?
http://www.freescale.com/files/sensors/doc/data_sheet/MPX5050.pdf
Ohne die kondensatoren ist der wert noch höher gesprungen.
Deswegen wollte ich einen neuen ordentlichen sensor.
Aber kann ich denn auch meinen verwenden?
Verwende ich ihn falsch?

Der MPX5050 ist für Drücke von bis zu 50kPa brauchbar und ist in dem von dir verwendeten Druckbereich etwas weniger genau als der MPX5010 (bis 10kPa).

Im Datenblatt wird für die Umrechnung 0.018 verwendet und nicht 0.0018

Ich habe wie im datasheet gezeichnet kondensatoren angeschlossen. Doch statt des 470 pF kondensators habe ich einen 4700 pF verwendet. Ist das schlimm?

Nein, nicht schlimm, auf jeden Fall nicht in deinem delay(1000)-Test. Ein 4.7nF Keramik-Kondensator ist immer noch recht klein, und du hast ja keine Anforderung bezüglich der Response-Zeit im Datenblatt (1ms).

Ich würde eher die Kondensatoren auf der 5V Versorgungsseite vergrößern. Was aber auch nichts helfen wird, wenn die Messung konstant anders ist ( mehrere Sekundenzyklen ), solange das Relais angezogen ist.
Hängen die Relais an den gleichen 5V ? (die dann evtl um ein paar mV kleiner sind, wenn ein Relais angezogen ist) ?
Sind diese "ca. 5V" auch die Vref für den Arduino - ADC?

Im Datenblatt wird für die Umrechnung 0.018 verwendet und nicht 0.0018

Der im datenblatt genannte wert rechnet in kPa um, aber ich brauche es mbar ,also habe ich eine null rangehängt.

Hängen die Relais an den gleichen 5V ?

Ja alle teile (relais, LCD, sensoren, ...) sind mit den 5V des arduino verbunden.

Kann mir den jemand einen geigneteren mpx sensor empfehlen?

Sind diese "ca. 5V" auch die Vref für den Arduino - ADC?

Was ist Vref, ADC? Ist das der stromanschluss des arduino?
Wenn ich den arduino per usb mit strom versorge wird das LCD ganz dunkel wenn 3 relais angehen. Wenn ich ihn mit einem Netzkabel mit 12V betreibe(ziehmlich dickes ding) ist das nicht der fall, aber der schwarze chip neben dem stromeingang wird denn heiß.
Ich hab auch schon versucht die relais extern mit strom zu versorgen(VCC und GND am netzteil, IN1,2,3,4 am arduino) aber denn konnte ich die relais nicht bedienen, sie waren einfach an.

Was ist Vref, ADC?

Sorry1: ADC = AnalogDigitalConverter
Sorry2: Vref heisst eigentlich AREF

Schau mal nach AnalogReference
und beliebig viele Diskussionen zu diesem Thema...

Das Problem ist nicht dein MXP Sensor, sondern das Messen selbst.
Wenn du Wert auf mehr Genauigkeit legst, ist das nicht so einfach, mit deinen dicken Relais im gleichen Stromkreis wie der Fühler und die Arduino Versorgungs- und Referenzspannung.

Wenn du einen Spannungsteiler baust und dessen Mitte misst, kriegst du vermutlich auch einen Sprung, sobald ein Relais schaltet.
Ob du diese Information verwenden kannst, um den Sprung des MXP Sensors wegzubügeln, ist allerdings fraglich.
Ich meine, der MXP versucht selbst, eine Kalibrierung zu machen und so Schwankungen in Vcc auszugleichen...

Was kann ich den dagegen tun, dass der wert nicht so hochspringt wenn die relais angehen ?
Was ein Spannungsteiler ist weiß ich leider auch nich.

Hallo Zusammen

ich habe ein paar Fragen :
auf dem Oben gegebenen Code:

mpx = (float)analogRead(mpxPin);

pkPa = (mpx/(float)1023-0.04)/0.0018;

Kam mir jemandem bitte erklären was 1023 ist ? die 0,04 was ist das und die 0, 0018 ?

Danke im Voraus?

1023 ist der max gemessene Wert in ADC des AD/Wandlers im Arduino UNO. Dieser Wert entspricht der ausgewählten Referenzspannung bzw angelegten Referenzspannung an AREF.
-004 ist ein Offset und 0,0018 ein Slope des verwendeten Sensors. Die sind werte die vom verwendeten Sensor abhängen.
Grüße Uwe

ich würde mich freuen wenn, nur eine hier mir helfen könnten?

Also mein Problem ist folgendes: Ich hätte gerne einen Durchflussmesser oder Durchfluss Sensor.
es soll die Strömende Luft messen. Also ich möchte damit kein Wasser sondern Luftdruck messen. (Luft-Durchflusssensor).
Also ich habe einen Behälter und zwar wird im Behälter Wasser gekocht dadurch entsteht Wasserdampf , dieser Wasserdampf sollte aus dem Behälter durch den Durchflussmesser fliessen. der druck bzw Volumen strom sollte auch während des Prozess gemessen werden.
Noch wichtig zu erwähnen es gibt auch auf einer Seite des Behälters eine pumpe ,die frische Luft im Behälter pumpt. die frische Luft mischt sich mit dem Wasserdampf und soll über den Durchflusssensor raus fließen.

über jegliche Hilfe freue ich mich sehr.

Gruß.