Hallo an Alle, ich habe schon mehrmals hier einen Tread eröffnet. Ich habe einen Luftdrucksensor MPX4100 an meinem AD-Eingang(10Bit) ATMEGA8535 angeschlossen.Auf dem Display erscheint immer ein falscher Luftdruckwert.Zur Zeit erscheint auf dem Display 1002hPa. In wirklichkeit müssten es so 1020hPa sein.Diesen Luftdrucksensor habe ich schon einemal an einem Siemenscontroller 80C535 angeschlossen. Da hat ja auch alles toll geklappt.Nur bei dem ATMEGA8535 haut es nicht so hin. C-Code: Funktion AD-Wandler: unsigned int readADC_10BIT(unsigned char channel) { unsigned char i; unsigned int result; ADCSRA = 0x86; // Frequenzvorteiler // setzen auf 64 (1) und ADC aktivieren (1) ADMUX = channel; // Kanal waehlen ADMUX |= 0x40; // AVCC als Referenzspannung nutzen /* nach Aktivieren des ADC wird ein "Dummy-Readout" empfohlen, man liest also einen Wert und verwirft diesen, um den ADC "warmlaufen zu lassen" */ ADCSRA |= 0x40; // eine ADC-Wandlung while(!(ADCSRA & 0x10)); // auf Abschluss der Konvertierung warten (ADIF-bit) result = 0; /* Eigentliche Messung - Mittelwert aus 4 aufeinanderfolgenden Wandlungen */ for(i=0;i<4;i++) { ADCSRA |= 0x40; // eine Wandlung "single conversion" while(!(ADCSRA & 0x10)); // auf Abschluss der Konvertierung warten (ADIF-bit) result += (ADCL + (ADCH<<8)); // mit uint16_t x //result += ADC; // Wandlungsergebnisse aufaddieren } ADCSRA &= ~0x80; // ADC deaktivieren (2) result >>= 2; // Summe durch vier teilen = arithm. Mittelwert return result; } Berechnung des Luftdruckes: long_luftdruck = (188.1049927 * (5.02/1024))* readADC_10BIT(0) + 143.3427762; Kann mir jemand sagen woran mein Problem liegen könnte?
An der Messung ist wohl nichts auszusetzen. Aber nimm doch mal ein Multimeter, messe die Spannung vom Sensor und die Referenzspannung. Rechne aus, welcher 10-Bit Wert rauskommen müsste und vergleiche mit dem was der Wandler ermittelt. Dann Kannst Du vielleicht den Wandler als Fehlerquelle ausschliessen. Jetz versuche ich noch, deine Umrechnung zu verstehen... long_luftdruck = (188.1049927 * (5.02/1024))* readADC_10BIT(0) + 143.3427762 Im Datenblatt steht: Vout/Vs = 0.01059*P-0.1518 mit P in kPa oder P= (Vout/Vs+0.1518)/0.01059 oder P= (Vout/Vs+0.1518)*94.4827 oder P= Vout/Vs*94.4827+14.342 oder P= Vout/Vs*944.827+143.42 wenn P in hPa sein soll rechne ich deine 188.1049927*5.02=944.287063354 dann sieht das nach einem Zahlendreher aus, aber selbst damit wird aus 1002 nicht 1020. Hast Du die Abhängigkeit des Drucks von der Höhe berücksichtigt? p(h)=p0*exp(-h/7991m) oder P0=p(h)/exp(-h/7991m) Bei einer Höhe von 150m über NN musst Du den gemessenen absoluten Druck mit 1,0189 multiplizieren, um den Druck auf Meereshöhe zu erhalten, welcher im Wetterbericht angegeben wird. So wird zB. aus 1002hPa 1020hPa. Noch was, das ist mir letztens bei der gleichen Anwendung passiert: Ich habe , wie im MPX-Datenblatt empfohlen, ein RC-Glied zwischen Sensor und AD-Eingang, allerdings mit 10kOhm. Dann versehentlich am Prozessor den Pullup-Widerstand am AD-Wandler Eingang aktiviert. Der wird zwar beim Anwählen des Eingangs abgeschaltet, ist aber aktiv, wenn ein anderer Eingang angewählt ist. Meine 10k und der Pullup bilden einen Spannungsteiler gegen Plus, der den Kondensator auf einen zu hohen Wert auflädt. Während der Wandlung ist nicht genug Zeit, um den Kondensator auf die richtige Spannung zu bringen, der gemessene Wert war daher zu hoch. Aber das ist ja bei Dir nicht der Fall... Uwe
Die Höhenkorrektur ist schon berücksichtigt? Der Sensor liefert ein Signal welches dem absoluten Druck entspricht. Die Wetterdienste messen prinzipiell das gleiche, aber um die Werte vergleichen zu können werden diese mittels der "barometrischen Höhenformel" korrigiert. Meteorologische (Luft)drucksensoren sind somit auf Meereshöhe bezogen. Die Physiker machen das teilweise nicht. Deshalb weichen auch Präzisionsgeräte durchaus mal voneinander ab. http://www.google.de/search?q=%22barometrischen+H%C3%B6henformel%22&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:de-DE:official
Hallo, ja was ist jetzt korrekt? Muss ich jetzt bei meiner Rechnung noch einen Höhenkorrekturfaktor miteinfügen oder nicht?Weil Uwe schrieb was von, Faktor "1,0189".Stimmt dies jetzt zu 100%?Der Andere schrieb was von die Höhenkorrektur ist schon in der Formel mit drin! Hmmm.... Ich verstehe das jetzt so zu meinem errechneten Wert "long_luftdruck" soll ich noch den Faktor "1,0189" dazu multiplizieren.
Hallo, also die Wetterdienste messen ersteinmal den Luftdruck vor Ort. Das ist der sogenannte Luftdruck in Barometerhöhe. Dieser wird entweder elektronisch, mit Aneroidbarometern oder auch mit Hg-Barometern berechnet. Dieser Luftdruck wird bei synoptischen Stationen auch gemeldet. Handelt es sich nun um eine Meldung für den Flugwetterdienst, dann wird der Luftdruck anhand der ICAO-Standardatmosphäre auf NN korrigiert. Bei synoptischen Stationen wird der Luftdruck anhand der aktuellen Temperatur und eines langjährigen Dampfdruckmittels ebenfalls auf NN korrigiert. Dieser Luftdruck wird ebenfalls verbreitet. Der MPX ermittelt den Luftdruck wie er vor Ort herrscht. Daher ist eine Höhenkorrektur nicht erforderlich. Gruß Holger
Hallo, die Wettermeldungen im Fernsehen, Zeitung oder zB. bei Wetter.com geben immer den auf Normal-Null bezogenen Druck an. Dein Sensor misst jedoch den absoluten Druck der bei Dir herrscht, er weis ja auch nichts von seiner Höhe über dem Meeresspiegel. Du musst also den absoluten Druck messen und umrechnen um Deinen Wert mit der Wetterkarte vergleichen zu können. Diese 1,0189 habe ich nach der angegebenen Formel für 150m berechnet, sie würden Deinen Fehler kompensieren. In einem anderen Thread hast Du als Wohnort Bruchsal genannt, das liegt so etwa 120m hoch. @Holger Synoptische Wettermeldungen sind für den Normalbürger eher ungebräuchlich, wo bekommt man diese Meldungen her? Uwe
@Uwe Nagel Die aktuellen gibt es hier: http://www.uradio.ku.dk/%7Ect/aktuelobs.txt 10015 12881 82109 10175 20130 30170 40180 56004 60001 8457/ 333 31/// 55301 84657 87358= Bsp. Helgoland 30170 = 1017,0 hPa korrigierter Luftdruck 40180 = 1018,0 hPa (QFF, NN) Gruß Holger
Hi Uwe, wie kommst du auf diesen Faktor 1,0189? Du hast diese Formel verwendet p(h)=p0*exp(-h/7991m) oder P0=p(h)/exp(-h/7991m). Wenn ich da für h 150 eingebe dann komme ich nicht auf den Faktor
Hallo Michael, der Faktor rechnet absoluten Luftdruck in der Höhe h, also p(h), in den auf Meereshöhe bezogenen, p0, um. Etwas anders geschrieben: p0=p(h) * (1/exp(-h/7991m)) oder p(h) * exp(h/7991m) und dieser Klammerausdruck ist laut meinem Taschenrechner 1,0189 wenn ich für h 150m einsetze. @Holger Diese Synop-Meldungen kannte ich bislang nur von RTTY-Empfangsversuchen mit meinem Weltempfänger. Ich wuste nicht, dass sie ihren Weg ins Internet gefunden haben... Was ich auf die schnelle nicht ergoogeln konnte, ist, wie diese Meldungen verschlüsselt sind. Hast du da auch einen Link? Uwe
Ok jetzt hab ichs verstanden. Also zu meiner Formel müsste ich dann nur noch (1/exp(-h/7991m)) multiplizieren. Bei mir sind es 120m vom Meeresspiegel. Für h muss ich dann 120m einsetzen. Sind diese Angaben auch richtig?
Ach und noch was, woher stammt diese Formel p0=p(h) * (1/exp(-h/7991m)) oder p(h) * exp(h/7991m)???
Abiprüfung Mathe Grundkurs: http://www.bildung-mv.de/download/abitur/abi-05-ma-gk.pdf oder http://www.unibw-muenchen.de/campus/LRT/LRT10/formelsammlung.pdf oder weiter 850 Seiten über Google, wenn man 'Barometrische Höhenformel' eingibt. Für 120m erhalte ich 1,01513. Damit wird aus deinem gemessenen 1002hPa noch nicht ganz 1020 sondern nur 1017, aber vielleicht wohnst du ja doch etwas höher, oder in einem Hochhaus? Der Rest könnte aber auch ein´fach ein Messfehler des Sensors sein. Da steht doch auch was von +-Error im Datenblatt. Ich habe mal einfach über 24 Stunden die Messwerte aufgezeichnet und mit denen von wetter.com verglichen. Dabei ergab sich auch ein Offset-Fehler. Allerdings ist meine Schaltung aufwändiger, um eine höhere Auflösung zu erreichen. Da kommen noch zwei Spannungsteiler vor, davon ein Trimmpoti. Deshalb kann ich gerade nicht genau sagen wie gross die absolute Abweichung war. Uwe
Hallo zusammen, hier gibts ne ganz nette Übersicht über die unterschiedlichen Berechnungsformeln: http://www.explorermagazin.de/service/hoehform.htm und nen passenden Rechner dazu: http://www.explorermagazin.de/suunrech.htm oder hier: http://www.mikrocontroller.net/forum/read-1-212615.html#212615 Viele Grüsse Volker
Vielen Dank für die Infos. In diesem Dokument steht die Formel p(h)=po*e(-(h/b)) po:1013.25hPa h: 120m(Bruchsal) b:Konstante = 7991m Wenn diese Werte einsetze dann komme ich da auf 998.14..hPa. Vorhin hat einer das hier geschrieben: p0=p(h) * (1/exp(-h/7991m)) oder p(h) * exp(h/7991m) Bin jetzt total durcheinander. Kann ich den Faktor (1/exp(-h/7991m)) nicht zu meinem gemessenen Luftdruck hinzu multiplizieren?
Was ist damit gemeint: po:Luftdruck an der Erdoberfläche,po=101325Pa Ist das hier nur ein angenommener Wert oder muss dieser Wert immer hinzugefügt werden?
Ich habe jetzt den Faktor mal angehängt.Auf dem Display erscheint noch immer der gleiche Fehler. Irgendwas stimmt nicht mit der Hoehenkorrekturberechnung.Was mache ich da falsch? //Deklaration long long_luftdruck,long_temperatur,hoehenkorrektur; //Berechnung hoehenkorrektur=exp(120/7991); long_luftdruck = ((188.1049927 * (5.02/1024))* readADC_10BIT(0) + 143.5316336) * hoehenkorrektur;
Hier ist (noch einmal) eine gute Seite mit Grundlagen : http://www.freunde-alter-wetterinstrumente.de/13bartec.htm
Kann mir dazu niemand eine Antwort geben. Es sind so viele Informationen.Bisher konnte mir keiner was zu meinen oben geschrieben beiträge sagen. Mehr will auch auch nicht wissen. Vielen Dank nochmals die mir geholfen haben!
Die 102325 Pa sind der Luftdruckwert der ICAO- Standardatmosphäre mit plus 15°C und 0% Luftfeuchtigkeit auf Meereshöhe. Daraus berechnen alle Flugplätze ihren anhand des örtlichen Luftdrucks und der eigenen Höhe den zugehörigen Luftdruck bezogen auf NN. Da du 120m Höhe über NN angibst, scheint das auch mehr eine Schätzung als das Ergebnis einer zuverlässigen Messung zu sein. Ich wiederhole noch mal meinen Tipp: Geh zum nächsten Flugplatz, dort kannst Du anhand der dort vorhandenen kalibrierten Geräte dein Messinstrument vergleichend überprüfen und einstellen. Zur weiteren Berechnung musst Du dich dann für eine der berechnungsmethoden entscheiden, da eine absolute barometrische Höhenmessung nur beim ständigen Vergleich mit bekannten Höhen überhaupt Sinn macht. Es sei denn, die Wetterlage ist so stabil, dass sich über mehrere Stunden der Luftdruck nicht ändert. Arno
Mit p0 meine ich den Luftdruck auf Normal-Null, den du angezeigt haben möchtest. Mit p(h) den Luftdruck, den du in einer Höhe h gemessen hast. Das mit dem Multiplizieren stimmt schon, jedoch verwendest du in deinem Beispielprogramm für höhenkorrektur einen long Typ. Hier must du wohl oder übel mit float rechnen, den 1,01... wird bei der Umwandlung in einen ganzzahligen Typ zu 1 und dieser Faktor wird dein Problem nicht ändern... Uwe
Hi, also ich an deiner Stelle würde mir das Datenblatt durchlesen, die Formeln aus dem Datenblatt verwenden, und mich damit abfinden, dass der Sensor nur den Absolutdruck vorort misst und nicht irgendwelche sonstigen Werte. Den Drucksensor hängst du an eine konstante Spannungsquelle mit 5V. Wenn du um einige mbar von den Wetterwerten daneben bist, ist das auch egal, denn für eine Wetterstation, die du ja bauen willst, ist die Tendenz und nicht der Absolutwert interessant. Weiters würde ich dir raten, dich etwas in das Thema Messtechnik einzulesen, damit man z.B. die Kennlinie eines PTC kennt. Grüße, Der2te_Michael
Also ich möchte in meiner Wetterstation nicht den Luftdruck auf Meereshöhe berechnen sonder ich will den Luftdruck messen der z.B. bei mir herrscht. In dem Falle tue ich die 120m miteinberechnen. Es muss ja nicht exakt sein. Zur Zeit zeigt mein Display 1022hPa an. Auf der Wetterkarte im Internet steht was von 1023hPa.Dann ist doch meine Messung eigentlich gut oder?
Also ich möchte in meiner Wetterstation nicht den Luftdruck auf Meereshöhe berechnen sonder ich will den Luftdruck messen der z.B. bei mir herrscht. In dem Falle tue ich die 120m miteinberechnen. Es muss ja nicht exakt sein. Zur Zeit zeigt mein Display 1022hPa an. Auf der Wetterkarte im Internet steht was von 1023hPa.Dann ist doch meine Messung eigentlich gut oder?
eigentlich gut... aber schau mal für welche Höhe das Internet den Druck angibt! Wenn Du vergleichen willst, musst du auch die Höhe der beiden Barometer berücksichtigen. Das ist ja gerade der Grund, weshalb man die Messwerte auf NormalNull bezieht. Wie sonst willst du sonst eine Messung in Bruchsal mit einer Messung 5km entfernt auf einem der Hügel hinter Bruchsal vergleichen?
Im Internet bei Google habe ich Luftdruck Bruchsal eingegeben.Da komme ich auf eine Seite "Meteo24.de" da wird alles angezeigt. Sogar die Höhe.Also dann ist doch alles ok oder? So jetzt muss ich nur nochmal schauen wie ich die Temperaturmessung besser hinbekomme. Das ist der Wert bei mir um 3 bis 4 Grad höher.
Diesesmal weicht mein Luftdruck einwenig mehr ab. Im Internet habe ich noch meinem Ort gesucht. Da wurde die Höhe von 110m angegeben und einen Luftdruck von 1014.7hPa.Meine Display zeigt gerade 1016hPa an.Warum drifftet mein Wert so ab? luftdruck = ((188.8574127 * (5.01/1024))* readADC_10BIT(0) + 143.5316336) * 1.015130214;//hoehenkorrektur=exp(110/7991); (hoehenkorrektur=exp(110/7991)=1.015130214) Wie kann ich meine Messung noch genauer machen?
Der Luftdruckwert auf der meteo-Seite wird in Karlsruhe gemessen, also ca. 20km entfernt. Und dazu noch in Abständen von mehreren Stunden!! Je nach Wettersituation sind das mehrere hPa. Deine genaue Höhe ist bis jetzt ebensowenig rübergekommen. Wenn für einen Ort eine Höhe angegeben wird, ist das ein Mittelwert. Der Luftdruck nimmt in niedrigeren Höhen mit ca 1hPa pro 8m ab, das heisst eine Wohnung im 10. Stock hat einen um fast 4hPa niedrigeren Luftdruck als eine im Erdgeschoss. Dabei sind fehler des sensors und der Auswerteelektronik noch nicht berücksichtigt. Begib Dich mit Deinem Messinstrument endlich mal dorthin, wo Dein Referenzwert auch gemessen wird. Kalibrier das Ding dort und begib Dich dann wieder auf Deine Luftdruckinsel. Alles andere ist brotlose Kunst. Grundlagen gibt es auch hier: http://www.meteoschweiz.ch/de/Wissen/Wissenswertes/wetterlexikon.shtml Arno
Hallo Michael, ich weiß nicht, ob's noch interessiert, aber die analogen Eingänge des AVR ziehen meines Wissens zuviel Strom, so daß der Sensor zu stark belastet ist und in die Knie geht. Ich habe zwischen meinem MPX4115 und ATmega8 einen Spannungsfolger als Impedanzwandler gesetzt und nun klappt's wunderbar. Gruss Hans-Christian
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.