Forum: Mikrocontroller und Digitale Elektronik Luftdruck bzw. Höhe berechnen


von T. S. (trse)


Lesenswert?

Hallo,
ich habe eine kleine Frage.
Wie kann ich die Höhe messen???
Ich dachte an eine Lösung mit ATMEGA 8 und ZIGBEE-Funkmodulen.
Ich habe gelesen, dass ich zur Berechnung des Höhenunterschieds den 
Druck am Boden und die Temp. in der Luft / 2 brauche.
Die Temp. hab ich ja eh.

Das ganze sollte wenn möglich in C sein,da kann ich es in meinen Code 
einbauen.

<Ich hoffe ihr könnt mir Helfen ;)

von Hannes (Gast)


Lesenswert?

>Wie kann ich die Höhe messen???

>Das ganze sollte wenn möglich in C sein

Die Höhe ist nicht in C. Die ist in m. Oder cm. Oder km.

von T. S. (trse)


Lesenswert?

Hannes wrote:
>>Wie kann ich die Höhe messen???
>
>>Das ganze sollte wenn möglich in C sein
>
> Die Höhe ist nicht in C. Die ist in m. Oder cm. Oder km.

Ich meine in der Programmiersprache "C"
Die Höhe sollte ja auch in m sein.

  Entschuldugung

von Bernhard S. (dk9nw)


Lesenswert?

Hi,

Die Höhe eines Luftfahrzeugs wird üblicherweise über den Luftdruck 
gemessen:

http://www.mikrokopter.de/ucwiki/H%C3%B6hensensor

Alternativ GPS-Modul
http://www.mikrokopter.de/ucwiki/GPS

ciao
Bernhard

von T. S. (trse)


Lesenswert?

Danke für die Links!!!

GPS wollte ich nicht benutzen;klingt aber vielversprechend!!!
Wie mache ich das in "C"(die Berechnungen)? ? ?

von Andreas (Gast)


Lesenswert?

Hallo,

suche nach Barometrischer Höhenformel. Damit kannst Du die Höhe 
berechnen.

Andreas

von Hannes (Gast)


Lesenswert?

Hier steht, wie Du die Höhe bestimmen kannst:

http://www.rubstudent.de/RSV/Forum/thread.php?threadid=7843

von T. S. (trse)


Lesenswert?

Könnt ihr mir ein Beispiel schreiben???
Ich glaube,ich bin irgendwie zu doof |:
Hab hier was(JS):
http://www.wetterochs.de/wetter/baro.html

Wenn man das von JS in C wandelt könnte man es doch benutzen???
Ich kann JS nich so wirklich (;

Rauskommen soll die höhe in Metern.

von so nicht (Gast)


Lesenswert?

Nimm einen Drucksensor und einen ADC. Bei einer elektrischen Aufloesung 
von 16bit kommt man auf 10cm Hoehenaufloesung. Die Formel mit dem 
Exponenten sollte doch machbar sein...

von T. S. (trse)


Lesenswert?

>so nicht wrote:
>> Nimm einen Drucksensor und einen ADC. Bei einer elektrischen Aufloesung
>> von 16bit kommt man auf 10cm Hoehenaufloesung. Die Formel mit dem
>> Exponenten sollte doch machbar sein...

 Könnt ihr mir mit dieser Formel helfen?
 Ich habe es irgendwie nicht geschnallt<span></span>

von Michael (Gast)


Lesenswert?

Klar können wir Dir helfen und Dir ein kleines Programm schreiben.
Mein Auto ist kaputt reparierst Du es im Gegenzug??

von T. S. (trse)


Lesenswert?

Ach so:
Ich benutze als Sensor den MPX 4115

von T. S. (trse)


Lesenswert?

Hallo,
Wie mache ich das jetzt???
Kann ich den ADC-Wert direkt in den Druck umwandeln???

von Hugga Bugga (Gast)


Lesenswert?

Steht doch im Datenblatt :

Vout = Vs(0,009xP-0,095)

Und jetzt noch nach P Umstellen

von T. S. (trse)


Lesenswert?

Hugga Bugga wrote:
> Steht doch im Datenblatt :
>
> Vout = Vs(0,009xP-0,095)
>
> Und jetzt noch nach P Umstellen
ungefähr so:
1
HEIGHT = PINA2(0.009xP-0.095)
???

von Hugga Bugga (Gast)


Lesenswert?


von T. S. (trse)


Lesenswert?

Danke Für den Link!!!

von T. S. (trse)


Lesenswert?

geht es denn So:
1
P = 1000;
2
3
ADCSRA |= (1<<ADSC);
4
  while ( !(ADCSRA & (1<<ADIF)) )
5
            ;
6
buffer = ADCL | (ADCH<<8);
7
Vout = buffer;
8
P = 1000 *  Vout  +  95;
9
10
Vout/Vs = 0,009*P-0,095
11
12
Vout/Vs+0,095 = 0,009*P
13
14
(Vout/Vs+0,095)/0,009 = P
???

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

die Umrechnung ist aber immer noch eine lineare Näherung der genannten
http://de.wikipedia.org/wiki/Barometrische_Höhenformel
"In der einfachsten Form kann grob angenommen werden, dass der Luftdruck 
in der Nähe des Meeresspiegels um ein Hektopascal je acht Meter 
Höhenzunahme abnimmt."
(Die komplizierteren Formeln auf dieser Seite sind sehr abschreckend, 
z.B. exponentiell mit Exponent -5,255)
http://de.wikipedia.org/wiki/Barometrische_Höhenmessung
http://de.wikipedia.org/wiki/Barometrische_Höhenmessung_in_der_Luftfahrt

Der Unterschied zwischen Hoch- und Tiefdruckgebiet entspricht leider 
mehreren hundert Metern, die Messung muß daher "zeitnah" kalibriert 
werden.

von T. S. (trse)


Lesenswert?

Danke!

von T. S. (trse)


Lesenswert?

Hier eine kleine Funktion zur Umrechnung:
1
void berechne_hoehe(int press)
2
unsigned int meeresspegel,hoehe,druck_meter
3
{
4
meeresspegel=1013.25;//druck auf dem Meeresspiegel definieren
5
druck_meter=0.12;//druck pro Meter
6
hoehe=press * druck_meter;
7
hoehe=hoehe / meeresspegel;
8
9
return hoehe
10
}

Ist die so richtig?
Die gibt als Rückgabewert die Höhe überm Meeresspiegel aus.

von T. S. (trse)


Lesenswert?

Bitte sagt mir, ob es richtig oder Falsch ist.

von Analog (Gast)


Lesenswert?

es ist falsch.

von DerPhsyiker (Gast)


Lesenswert?

In meiner Formelsammlung steht:

Höhe = 18,4 km * lg ( luftdruck_erde / gemessener_luftdruck)

lg kann man mit der log() funktion aus der math.h berechnen

von jl (Gast)


Lesenswert?

Hast du überhaupt schonmal C programmiert?

So wie du es schreibst geht das nie. Integer sind Ganzzahlen und haben 
mit Kommastellen nichts am Hut. Und wenn du jetzt auf float umstellst 
quällst du den Controller da keine float arithmetik im Controller 
vorhanden ist (es sei denn du nimmst nen pentium :-)).

Solltest du jetzt so clever sein und Festkommaarithmetik nutzten mit 2 
Nachkommastellen so passt das nicht mehr in den integer-Zahlenbereich 
(Annahme AVR - int 16bit). Ebenso solltest du unbedingt prüfen ob es 
nicht einen Overflow beim Multiplizieren gibt.

JL

von T. S. (trse)


Lesenswert?

So???
1
void berechne_hoehe(double press)
2
unsigned double luftdruck_erde,hoehe
3
{
4
luftdruck_erde=1013.25;//druck auf dem Meeresspiegel definieren
5
//druck_meter=0.12;//druck pro Meter
6
hoehe = log(luftdruck_erde / gemessener_luftdruck);
7
//hoehe=press * druck_meter;
8
//hoehe=hoehe / meeresspegel;
9
10
return hoehe
11
}

von ts230 (Gast)


Lesenswert?

Hallo,
ich habe meine Elektor bekommen und in dieser ist ein sehr interesanter 
Beitrag über GPS.
ich werde wohl eher zu GPS neigen.

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
Noch kein Account? Hier anmelden.