www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Idiot will Spannungen kontinuierlich wandeln


Autor: fuzzifikation (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Servus,

der Idiot bin ich. Ich bin kein Elektronikier und werde es sobald auch 
nicht. Aber vielleicht mögt ihr mir bei diesen für euch bestimmt super 
einfachem Problem helfen:

Ich habe eine ständig verändernde Spannung eines Sensors zwischen u_ein 
= 0-5V. Diese Eingangsspannung möchte ich über eine Funktion in eine 
Ausgangsspannung u_aus (zw. 0-5V) ausgeben. Die Funktion ist ein Polynom 
4ten Grades, also

u_aus = p0 + p1 u_ein + p2 u_ein^2 + ... etc.

Das ist auch schon alles. Randbedingung wäre dann nur dass das 
temperaturspabil bis 100°C funktioniert.

Wie würdet ihr das kostengünstig und platzsparend (soll in den 
Motorraum) lösen?

Hintergrund:
Ich möchte bei einem alten Auto einen Sensor durch eine 
moderne/zuverlässigere Variante ersetzen. Der neue Sensor hat aber eine 
andere Kennlinie (Messwert zu Volt). Also muss ich, beim einsetzen des 
neuen Sensors, dessen Ausgangswert so umrechnen, dass das Steuergerät 
genkt, es wäre der alte Sensor dran.

Vielen Dank im Voraus - und ihr dürft gern lachen.. aber ich weiß echt 
nicht wie's geht!

Gruß.

Autor: +++++ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie kommst du auf dieses Polynom?

Autor: Jemand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit AVR und Widerstands-DAC kein Problem

Autor: Johnny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja was Du machen willst ist auf einem Mikrocontroller ziemlich einfach 
umzusetzen, sofern man sich bereits damit auskennt.
Da Du mit 5V arbeiten möchtest, sollte der Mikrocontroller am besten 
auch gleich mit 5V arbeiten, das vereinfacht die Schaltung.

Du hängst also den Sensor (falls nötig mit dessen Beschaltung) an den 
Mikrocontroller, dieser wandelt kontinuierlich (per Timerinterrupt 
beispielsweise) und gibt das Resultat kontinuierlich als PWM Signal 
(auch mit einem Timer realisiert) aus, welches dann allenfalls noch mit 
einem RC-Glied geglättet wird.

Autor: Иван S. (ivan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo fuzzifikation,

Du schriebst ueber eine Temperaturmessung mit einem ominoesen Sensor...

> Die Funktion ist ein Polynom 4ten Grades...

...was sich für mich bis hierher nach Platinsensor angehorcht hatte.

> Das ist auch schon alles. Randbedingung wäre dann nur dass das
> temperaturspabil bis 100°C funktioniert. Wie würdet ihr das kostengünstig
> und platzsparend (soll in den Motorraum) lösen?

Hier wird es etwas abstrakter, denn du schreibst vom Motorraum. In 
diesem Bereich betragen die Temperaturen selten unter Null Grad Celsius, 
in diesen seltenen Faellen jedoch sind die Temperaturwerte irrelevant. 
Fuer den Platinsensor gaebe es naemlich ein Polynom ersten Grades fuer 
Temperaturen zwischen Null und Hundert Grad Celsius, bzw. eine 
quadratische Funktion fuer erhoehte Genauigkeit in diesem gewuenschtem 
Temperaturintervall.

> Hintergrund:

So hintergruendig wie sie sein koennten sind deine Hintergruende 
nicht...

> Ich möchte bei einem alten Auto einen Sensor durch eine
> moderne/zuverlässigere Variante ersetzen. Der neue Sensor hat aber eine
> andere Kennlinie (Messwert zu Volt).

..., denn um welchen Wundersensor es sich denn nun konkret handelt 
laesst Du auch hier im spekulativen Raum des Moeglichen offen.

> Also muss ich, beim einsetzen des neuen Sensors, dessen Ausgangswert so
> umrechnen, dass das Steuergerät genkt, es wäre der alte Sensor dran.

Leyder kann der geneigte Leser auch hier nur ueber die Funktionsweise 
des zu ersetzenden, hier als "alt" betitelten Sensors mutmaßen.

> ...ich weiß echt nicht wie's geht!

Ich wuerde folgenden Aufbau Vorschlagen: Sensor -> MCU -> Steuergeraet.
Dazu zwei moegliche Behandlungsweysen des technischen Problems:

a) Deine MCU ist rechentechnisch fit im Schritt: Direkte Berechnung des
   Ausgabepegels aus den eingelesenen Sensordaten mit anschließender
   Spannungsausgabe an das Steuergeraet.
b) Dein Kontrolleur verfügt nicht über die entsprechden mathematischen
   Fähigkeiten bzw. deine Kuenste der Programmierung erlauben nicht die
   Implementation der fortlaufenden Berechnung aus den Sensordaten:
   Einmalige Vorberechnung und Speicherung der Ausgangsspannung fuer
   plausible Sensordaten unter Zuhilfenahme einer elektronischen
   DV-Anlage. Kontrolleur liest Sensordatum ein und vergleicht mit
   gespeycherten Werten. Passendes Ausgabedatum finden. Sodann Ausgabe
   an das Steuergeraet.

Beide Behandlungsweysen lassen sich einfachst auf verschiedensten 
Controllerfamilien implementieren, sowohl a) als auch b) ist z.ß. auf
den PMS/MSP430 von TI moeglich und wurde von mir auch schon gemacht.

> Gruß.

Selbiges zurueck, hth, Иван

Autor: Anselm 68 (anselm68)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ivan, Klasse Text.
in Foren liest man selten so komplizierte Texte **kicher**

Anselm

p.S.: Tolle Sprache ;)

Autor: fuzzifikation (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zu den Hintergründen (wenn's denn hylft)..

Die Hintergründe dachte ich als ausreichend, da damit die Specs geklärt 
wurden. Aber gut: Es handelt sich um sog. Luftmassenmesser, in beiden 
Fällen (alt wie neu). Beide liefern einen Spannungswert von 0V-5V in 
Abhängigkeit des Luftmassenstroms (kg/h).

Der alte wird nur nicht mehr gefertigt und ist als aufbereitete Variante 
selten und dann teuer (wir sprechen von 800EUR alt gegen 400EUR neu).

Zu mir: ich kann durchaus programmieren. Das sollte die Schwachstelle 
nicht sein. Mein fehlendes Wissen dreht sich um Platinenentwicklung. 
D.h.: Hätte ich eine Platine mit DAC, Mikrocontroller und ADC, die mit 
BAtteriespannung (zw. 10-15V, schwankend) auskommt, dann ist die 
Programmierung kein Problem mehr.

Zu der Hilfe:
Gibt es denn solch fertige Platinen (mit Betriebstemp von -10°C..+100°C) 
und solcher Bestückung? Die würde ich sofort kaufen!

Autor: Tobias G. (tgg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klugscheißmodus an

Nur so zur Info: im automotiv-Bereich ist die Temperturanforderung im 
Motorraum -45°C bis +150°C spezifiziert.

Klugscheißmodus aus


Was mich nun stutzig macht ist
1. dass der LMM nicht mehr gefertigt wird. Mein Auto wird jetzt 18 Jahre 
und das Teil ist nach wie vor erhältlich.
2. wieso der LMM so teuer ist. Meiner kostet bei Audi als Neutteil 230€ 
und der ist schätzungsweise sogar größer wie dein Luftmassenmesser


Was immer noch sehr hilfreich wäre ist, wie du an dein Polynom 4. Grades 
gekommen bist. Darüberhinaus kann ich mir nicht vorstellen dass das 
wirklch stimmen kann

Autor: Sebastian B. (mircobolle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur eine kurze Bemerkung zur Berechnung:
Wie schon erwähnt wurde, würde ich auch zu einer Look-Up-Table raten. 
Also passende Ausgangswerte zu den entsprechenden Eingangsdaten zuvor 
berechnen und dann ggf. inter- bzw. extrapolieren.

Von Polynomfunktionen (4. Grades) während des Betriebs zu berechnen 
würde ich aus Performanz-technischen Gründen abraten, wenn nicht ein 
entsprechend schneller DSP eingesetzt wird.

Zum Controller,
würde auch nach einem Controller mit der passenden Eingangsspannung und 
DAC / ADC als Peripherie suchen. Auf Auflösung und 
Wandlungsgeschwindigkeit achten.

MFG

Autor: Sebastian B. (mircobolle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zusatz: Manche Controller bezeichnen sich als automotive-tauglich. 
(kleiner tipp)

Autor: Bernd Rüter (Firma: Promaxx.net) (bigwumpus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe so eine Schaltung fertig hier.
Die Eingangsspannung 0-5V wird mit einem OP gepuffert, von einem PIC 
gelesen, die 5V Versorgung können auch aus der Bordspannung generiert 
werden, eine 2,5V-Referenz wird für Vergleichsmessungen herangezogen und 
ein 10-Bit-DA-Wandler ist auch drauf, dessen Wert dann über einen OP 
gepuffert ausgegeben wird.

Der PIC (28 Pin) kann einfach sein (16F872) oder rattenschnell 
(18F2431).

Die Schaltung wird schon hundertfach in Fahrzeugen/Maschinen eingesetzt 
und sollte die Temperaturen abkönnen.

Mail mich mal an !

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Manche Controller bezeichnen sich als automotive-tauglich.
Das würden vernünftige Controller nie von sich selbst behaupten...;-)

Sie können sich selbst besser einschätzen als ihre 
Entwicklungs-Ingenieure.

MfG Paul

Autor: Иван S. (ivan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo fuzzifikation, Du schriebst:

> Es handelt sich um sog. Luftmassenmesser, in beiden  Fällen (alt wie
> neu). > Beide liefern einen Spannungswert von 0V-5V in Abhängigkeit des
> Luftmassenstroms (kg/h).

Ich kenn mich mit der Autoelektronik nicht so aus, aber irgendwo im 
Luftmassennmesser muesste doch die Kennlinie (eventuell in einem EPROM) 
gespeychert sein. Sind die verschiedenen LMM kompatibel koennte man sich 
den ganzen Aufwand durch Kopieren dieses Speychers ersparen. Inwieweyt 
dies moeglich ist entzieht sich jedoch meyner Kenntnis.

> Zu mir: ich kann durchaus programmieren. Das sollte die Schwachstelle
> nicht sein.

Wunderbar, das sind die besten Voraussetzungen zum basteln :-)

> Mein fehlendes Wissen dreht sich um Platinenentwicklung.

Das soll Dir keyn Hinderungsgrund seyn.

> D.h.: Hätte ich eine Platine mit DAC, Mikrocontroller und ADC, die mit
> Batteriespannung (zw. 10-15V, schwankend) auskommt, dann ist die
> Programmierung kein Problem mehr.

Welchen Controller wuerdest Du denn gerne verwenden? Traust Du Dir zu, 
die Platine zumindest in einem dafuer phorgesehenen Programm zu 
"layouten"?

> Zu der Hilfe:  Gibt es denn solch fertige Platinen (mit Betriebstemp von
> -10°C..+100°C) und solcher Bestückung? Die würde ich sofort kaufen!

Klar gibts sowas, jedes beliebige Demoboard eines Controllers mit 
integriertem ADC/DAC und einer halbwegs brauchbaren Spannungsregelung 
sollte das eigentlich hinbekommen. Die Platine selbst wuerde ich Dir 
sogar machen wenn mein Equiptment nicht die nächsten Wochen nicht 
erreichbar für mich waere. Ich bin mir sicher, daß sich hier in 
Forum/Platinen eventuell jemand findet, der Dir solch eine Platine 
belichtet und aetzt. Falls Du Glueck haben solltest findet sich 
vielleicht sogar jemand, der Dir dein Einzelstueck bestueckt, falls er 
die notwendigen Bauteile hat.

Irgendwie kriegen wir das schon gedeichselt,
viel Glueck wuenscht Иван

Autor: fuzzifikation (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank Iwan und Bernd, und die anderen hier,

ich hab mich jetzt mal angemeldet und werde mich dann per mail an Bernd 
wenden.

Wäre super, wenn eine fertige Platine da wäre, denn ich traue mir nicht 
zu, eine vernünftige Platine selbst zu layouten! Der Controller wäre mir 
- insofern ich ihn mit C per PC (Windows - leider) programmieren kann - 
egal. Das Programmiergerät kann ich mir kaufen..

Zum HFM: meine Angaben zu Preisen und keine Neuteilfertigung stimmen so 
schon. Das Polynom habe ich per pseudoinverse Alte/Neue Kennlinie 
gefittet. Ein Lookup-Table ist natürlich auch kein Problem!

Danke erstmal - schön, dass ihr ein Herz für Nicht-Elektroniker habt ;-)

Gruß

Autor: Dieter Schwarzmann (fuzzifikation)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

leider hat Bernd bisher keine Zeit dafür gefunden.. ich stehe noch immer 
vor dem Problem. Jederlei Hilfe ist nach wie vor sehr willkommen..!

Gerne übrigens auch Buchvorschläge, damit ich mich selbst einlernen 
versuchen könnte..

Vielen Dank!!

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn der eingebaute 10 Bit AD-Wandler reicht, die Ausgabe auch per PWM 
erfolgen kann, dann würde ein AVR mit Ausgangstiefpass reichen.
10 Bit sind nur 1024 Tabellenwerte, die könnten im Flash stehen, für 
eine höhere Auflösung ist ein ATMega mit Multiplizierer sinnvoll um die 
Kurve zu berechnen. Das wären dann 16-Bit-Multiplikationen, dazu gibts 
Applikationen von Atmel.

Autor: Dieter Schwarzmann (fuzzifikation)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
10 Bit würden mir schon reichen!
Welches Board würdes Du vorschlagen? Gibt es eines mit Tiefpass schon 
drangebaut? Wenn ja, dann isses die Lösung für mein Problem!

Autor: Dieter Schwarzmann (fuzzifikation)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
umm.. kennt wer eine solche Platine? Hylfe!

Autor: JL (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bedenke bei der Schaltung dass 9..15V zwar der Betriebsbereich ist, aber 
bis 40V möglich sind und (schnelle) Spitzen bis 400V auch schon gesehen 
wurden. Also ist auch eine vernünftige Spannungsstabilisierung/filterung 
nötig!

Beim Starten gehts dann zeitweise auch auch 6V bzw. 4V runter (OK dann 
gehts starten auch nicht mehr).

JL

P.S. mir wärs persönlich zuviel Aufwand, es sei denn es fänden sich mehr 
Betroffene die diese Bastellösung wollen.

Autor: Dieter Schwarzmann (fuzzifikation)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es gibt auf jeden Fall mehr Betroffene! Wieviel brauchst Du denn? Und 
wievel Aufwand wäre es denn (in Stunden).. oder anders gesagt: Wieviel 
Geld möchtest Du?

Zu den Spannungsspitzen: Du hast vollkommen Recht! Normalerweise 
benötigt man eine sog. "Loaddump Diode" um die Schaltung gegen diese 
Spannungsspitzen zu schützen.

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.