www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Vario mit MP3H6115A und Pic


Autor: Stefan Rau (stefanrau)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin neu in der Picentwicklung.

Ich möchte gerne den Höhensensor MP3H6115A mit einem Pic ansteuern.
Ich benötige nur die Höhenveränderung in einem Bereich von max. 1000m, 
dies aber in einer hohen Auflösung, also bestmöglich im cm Bereich.

Ich möchte ungern einen anderen Chip vorschalten, normalerweise macht 
man das mit einem LTC2400. 24bit ADC.

Nun meine Fragen:
Gibt es einen Pic mit 24 bit ADC? Wie findet man soetwas? Was wäre das 
Maximum und welche Auflösung bekomme ich da hin?

Alles in 3V.

Viele Grüße

Stefan

Autor: Pete K. (pete77)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal bei www.mikrocopter.net.

Hier ein Auszug, ein 24bit ADC ist nicht notwendig.
Der atmosphärische Luftdruck P nimmt auf grund der Gravitation kontinuierlich mit steigender Höhe h ab. Der Zusammenhang wird näherungsweise durch die barometrische Höhenformel beschrieben.

P(h)[kPa] = 101.325 kPa * EXP(-1.29 kg/m3 * 9.81m/s2 * h[m] /101.325kPa / 1000)

Dies ermöglicht durch die Messung des Luftdrucks eine Umrechnung in eine Höhe über N.N. Von Meereshöhe bis ca. 1500 Meter kann man diese Formel sehr gut linearisieren und erhält eine Abnahme des Luftdrucks von 1.2kPa/100 m.

Die FlightControl verwendet den Effekt für eine relative Höhenmessung bzgl. der Starthöhe. Die Skalierung ergibt sich wie folgt:

Im Datenblatt des MPXAZ4115A ist die Empfindlichkeit mit 46 mV/kPa angegeben. Auf der FC ist zwischen dem Ausgang des Sensors und dem Eingang des ADC ein nichtinvertierender Operationsverstärker mit einem Verstärkungsfaktor von 1 + 18k*(1/6k8 +1/680) = 30.12 aufgebaut. Der Offset des Verstärkers lässt sich durch den Atmega644 verandern, sodass die Ausgangsspannung des Verstärkers in den Messbereich des ADC von 0 bis 3V geschoben werden kann. Der ADC des Atmega644 verwendet eine externe Referenzspannung von 3V mit 10Bit Auflösung was 0.3413 Steps/mV enstpricht.

Das ergibt zusammen eine Empfindlichkeit von 0.3413 Steps/mV * 30.12 * 46 mV / kPa = 472.84 Steps/kPa.

In der Software der FlightControl wird der Wandlerwert aufaddiert und gemittelt, sodass sich ein Skalierungsfaktor zur internen Luftdruckwert von 10/3 ergibt und man erhält 472.84 Steps/kPa * 10/3 = 1576.13 Steps/kPa. Berücksichtigt man noch die Höhenabhängigkeit des Luftdrucks so ergibt sich für den Höhenwert eine Skalierung von 1576.13 Steps/kPa * 1.2kPa / 100 m = 18.91 Steps/m was einer unglaublichen Auflösung von 5.26 cm pro Step entspricht.

Autor: Stefan Rau (stefanrau)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, vielen Dank für die Ausführung, ich stehe zwar immer noch auf dem 
Schlauch, aber das wird noch....
Ich habe die 3 Volt Variante vom Druckmesser.

http://www.freescale.com/files/sensors/doc/data_sh...

Ich arbeite mit dem  Pic24HJ12GP201 ich glaube der hat keinen 
Operationsverstärker, dafür aber einen 12 Bit ADC. Kannst Du mir dazu 
helfen?

Autor: Dieter Werner (dds5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um die Auflösung zu erhöhen kann man das Analogsignal auf mehrere OPs 
mit unterschiedlich hoher Verstärkung legen und die Signale vom Ausgang 
der OPs dann auf je einen Analogeingang des Controllers.

Ich habe im Moment so eine Schaltung mit 4 Kanälen am Wickel mit 
Verstärkungen von 1, etwa 8,5 , 70 und 500.  Dadurch kann ich in 
Verbindung mit 32-fach Oversampling gut 24 Bit auflösen.

Das ganze schafft auf einem PIC24HJ64... mit A/D autoscan und  DMA 
Unterstützung rund 1200 Messungen pro Sekunde.

Autor: Stefan Rau (stefanrau)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ich glaube ich nicht erwähnt habe,
es sollen so wenig wie möglich Bauteile verwendet werden (PIC, Sensor, 
Sender und Spannungsregler)
Die Platine soll so klein und leicht wie möglich werden.

Autor: Dieter Werner (dds5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Von Sendemodulen hab ich keine Ahnung aber die beschriebene Schaltung 
ist dank Multilayer Platine und doppelseitiger SMD Bestückung etwa 20 x 
50 mm groß.

Edit: Den Spannungsregler müsste man wohl überarbeiten, der ist von 10 
bis 30V ausgelegt.

Autor: Stefan Rau (stefanrau)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Dieter,

als Sendermodul nehme ich das RFM12, das ist 15*15 und separat.
Aber die Vorgabe für die Platine, es muss kleiner gleich 20*20 sein.
Doppelseitig, smd.

Autor: Stefan Rau (stefanrau)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also um den Sender muss man sich nicht kümmern.
Noch eine Überlegung:
Der Höhenmesser geht von 15 kPa bis 115 kPa.
Da der Luftdruck auf NN etwa 101kPa sind und 10.000m -68 kPa sind, dann
habe ich ein Spektrum , das ich nicht benötige. Mir reicht eigentlich 
0-1500m aus.

Ich kann nun bei dem Pic die ADC-Obergrenze bei 1 Volt oder größer 
einstellen. Das gibt umgerechnet ca. 63 kPa was einer Höhe von ca. 3700m 
entspricht. Wenn ich nun die 3700m durch meine 4095 Schritte des 12Bit 
ADC teile, habe ich eine Auflösung von 90cm, das ist definitiv zu wenig.

Oder habe ich einen Denk- oder Rechenfehler?

Als Pic würde ich gerne den Pic24HJ12gp201 nehmen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.