Forum: Mikrocontroller und Digitale Elektronik Lookup Tabelle aus Excel einrichten (Bascom)


von Ralf (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,
Ich habe mich schon durch einige Beiträge gelesen doch keiner kommt 
meinem Problem nahe..
Ich möchte einen VDO Sensor mit einem Spannungsteiler auswerten, dazu 
habe ich die Tabelle im Anhang angelegt und brauche jetzt ein paar 
Hilfestellungen.

Der Sensor kann einen Druck von 0-5Bar messen und als Widerstand 
ausgeben (10-184ohm). Die Widerstandsmesswerte habe ich aus einem 
Datenblatt als Vorgabe doch ich habe keine Ahnung wie ich Anfangen soll 
diese Tabelle in das Programm zu Implementieren und auszuwerten.
Mein Problem Besteht darin das ich nicht den ganzen Bereich des ADC`s 
nutze und nicht weiß wie ich anfangen soll. Es gibt auch zwischen zwei 
Werten einige ADC Werte die "frei" sind. Da hätte ich probiert einen 
Vergleich zu machen wo ich herausbekomme ob der nächst höhere oder 
tiefere Wert näher liegt und dann diesen nehme doch wie erstelle ich an 
der stelle die Tabelle richtig? Ich habe diese Funktion vorher noch nie 
gebraucht oder gibt es vielleicht bessere Lösungen?

Kann mir jemand auf die Sprünge helfen?

(Hardware: Arduino Nano V3, Laptop mit Bascom, VDO Sensor)

von Wolfgang (Gast)


Lesenswert?

Was du brauchst, ist ein xy-Diagramm.

Lass dich nicht durch die unglücklich gewählten Symbole bei Excel 
(Linien vs. Punkte) irritieren.

von Ralf (Gast)


Lesenswert?

Wolfgang schrieb:
> Was du brauchst, ist ein xy-Diagramm

Ich weiß das die Spannungslinie in der .xls nur zur anschauung ist. 
Bleiben nur die Druck und ADC werte aber da weiß ich nicht wie ich sie 
einbinden soll/muss um die gewünschte funktion zu bekommen.

von StinkyWinky (Gast)


Lesenswert?

Du könntest die 50 Werte für den ADC-Wert in ein Array packen. In einem 
zweiten Array speicherst du die 50 Drücke.
Eine Messung liefert dir einen ADC-Wert. Nun suchst du im ADC-Array den 
Vorgänger und den Nachfolger des gemessenen ADC-Wertes. Entsprechend die 
beiden dazugehörigen Drücke. Nun noch interpolieren.

Alternativ könntest du dir im Excel die Polynomfunktion anzeigen p = 
f(ADC) und implementieren, vorausgesezt die Zielplatform lässt die 
Rechnerei zu...

von MWS (Gast)


Lesenswert?

Wenn das hier:
http://www.druckgeber-oeldruckgeber.de/vdo-druckgeber-mit-wk-daten.html
für den 5 Bar Geber zutrifft, dann erhöht sich, außer bei 0 auf 1 Bar, 
der Widerstand pro Bar um 34 Ohm, also recht linear, bei 0 auf 1 sind's 
plus 38 Ohm.

Mit einem bekannten Vorwiderstand ergibt sich ein Spannungsteiler.

Aus dem Messwert des ADC und dem bekannten Widerstand kann der 
unbekannte des Gebers und somit der Druck errechnet werden, eine Tabelle 
ist überflüssig.

Beispiel:
Geber an GND, 200 Ohm Vorwiderstand an VCC 5V, Referenz VCC
ADC: 376 = 1,84V
5 / (5 - 1,84) * 200 = 316 Ohm Gesamtwiderstand
316 - 200 = 116 Ohm Geberwiderstand
116 - 48 ( bei 1 Bar) = 68 Ohm
68 / 34 + 1 = 3 Bar

Der Bereich von 0 - 1 Bar, d.h. 10 - 48 Ohm wird abgefangen und 
gesondert behandelt.

von Ralf (Gast)


Lesenswert?

Danke MWS für deinen Tipp :) und auch danke an die anderen beiden.
Es kann doch so einfach sein... Habe meinen Programmausschnitt der 
Rechnung mal mit dabei falls es noch jemand gebrauchen kann.
Den Praxistest muss er noch bestehen aber da habe ich eigentlich keine 
bedenken.

Sub Oeldruck
  Start Adc
    Rdruck = Getadc(1)             'Öldruck Spannungsmessung
  Stop Adc

    R = 1024 - Rdruck
    R = 1024 / R
    R = R * Rx                     'Ergebnis Gesamtwiderstand
    R = R - Rx                     'Ergebnis Geberwiderstand

If R < 49 Then
   R = R - 10
   Oldruck = R / 38
Else
   R = R - 48
   R = R / 34
   Oldruck = R + 1
End If

Text5s = Fusing(oldruck , "#.&")   'Text für Anzeige bearbeiten
Text5s = " " + Text5s + " bar"
Call Erstelletxt
Call Displaytxt
End Sub

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.