-
-
Erfahrener Benutzer
Robotik Visionär
Die Spannung wird man nicht extra nachmessen müssen. Man sollte die Spannung mit der der Teiler aus Ref. Widerstand und zu messendem Widerstand betreiben wird nur auch benutzen um die Ref. Spannung für den AD zu erzeugen, bzw. gleich als Ref. Spannung nutzen. Dann ist es egal ob das 5 V oder 3 V sind.
-
Neuer Benutzer
Öfters hier
Jetzt wo das alles soweit funktioniert bin ich an die nächste Hürde gekommen 
Der Temperatursensor den ich auslesen muss ist ein Linearer Temperatursensor von dem ich weiss das er bei 20Grad laut Spezifikation zwischen 2 bis 3 KOhm und bei 90 Grad 200 bis 300 Ohm hat. Ich habe mal ein wenig Recherchiert und von Polynomen gelesen. Alternativ Tabellen. Wie berechnet man ein solches Polynom bzw aufgrund welcher Kriterien erstellt man eine Gleichung man für so etwas.
-
Erfahrener Benutzer
Robotik Visionär
Die Werte passen mehr zu einem mehr zu einem NTC mit der typischen nichtlinearen Kennlinie. Bein bestimmen der Gleichung um die Kennlinie mit wenigen Parametern zu beschreiben greift man z.B. Auf die dahinterliegende Physik zurück. Alternativ geht es auch mal duch Porbieren der üblichen Skalierungen (lin, log, 1/T,...) bis man eine einfache Kurve hat. Die Parameter kann man dann duch einen Least square Fit (Deutusch Ausgleichsrechnung) bestimmen lassen. Beim Polynom geht das im ronzip genau so, nur das man sich da nicht die Mühe macht eine passenden Form mit wenig Parametern zu finden.
-
Neuer Benutzer
Öfters hier
Ich war jetzt einmal davon ausgegangen das es eine Lineare Kurve ist, daher habe ich mir den Max und den Minwert genommen den ich darstellen möchte und daraus eine Lineare Formel zu erstellen.Laut Datenblatt habe ich folgende Werte
RMin bei 120 Grad (Tempmax) = 113 Ohm
RMax bei 0 Grad (Tempmin) = 5896 Ohm
Daraus Bildet sich ein Teiler pro Grad = 48,19 OHM
Daraus habe ich gebildet :
Temperatur = Tempax-(Rmess-Rmin)/48,19
Dur diese Gleichung erhalte ich bei Widerstandwert 834 Ohm 106 Grad
es sollten aber 50 sein.
Hab ich da ergendwo einen Denkfehler ?
Ich habe eine Grafik der Sensordaten auf meine Homepage einmal abgelegt
www.keulertz-entsorgung.de/NTC-blau-2_5-kohm.png
Gruß Mario
-
Erfahrener Benutzer
Robotik Visionär
Wie man sieht ist die Kurve nicht linear, so wie bei fast allen NTCs. Die übliche Form für eine Umrechung findet man z.B. bei Wikipedia. Das einzige Problem könnte sein, dass der Code durch den Logarithmus recht lang wird.
-
Neuer Benutzer
Öfters hier
Das mit der Berechnung war in Bascom in der Tat etwas haarig, aber da ich nun die Werte für Pullups,Sensor-Bwert,Sannung und Widerstand bei Bezugstemperatur sepeat Auswähle ist es nicht ganz so schlimm.
Für den Fall das es mal irgendwen Interessieren sollte wie Ich es gelöst habe, Code anbei.
Für Verbesserungen besonders was Speedvorteile bringen könnte bin ich Offen 
Dim W As Word , Channel As Byte , Z As String * 10
Channel = 2
Dim Pullup As Single , Involt As Single , Volt As Single , Ln As Single , B As Single , R As Single , Ts As Single , Rs As Single , Temp As Single
Do
If Channel = 2 Then
B = 3491.2 'Bwert vom NTC
Ts = 298.15 'Bezugstemperatur in Kelvin
Rs = 2000 'Widerstand bei Bezugstemperatur TS
Pullup = 10000 'Widerstandswert Pullup Widerstand
Involt = 4.90 'Spannung vor Abfall
End If
If Channel = 3 Then
B = 3791.2 'Bwert vom NTC
Ts = 298.15 'Bezugstemperatur in Kelvin
Rs = 2500 'Widerstand bei Bezugstemperatur TS
Pullup = 10000 'Widerstandswert Pullup Widerstand
Involt = 4.90 'Spannung vor Abfall
End If
W = Getadc(channel)
Volt = W * 4.90
Volt = Volt / 1023
R = Involt / Pullup
R = Volt / R
Temp = B * Ts
Ln = R / Rs
Ln = Log(ln)
Ts = Ts * Ln
B = B + Ts
Temp = Temp / B
Temp = Temp - 273.15
Z = Fusing(temp , "#.#")
Print "ADC-Pin " ; Channel ; ": Volt " ; Volt ; " Widerstand " ; R
Print "Temperatur von Sensor am Kanal " ; Channel ; " " ; Z ; "°C"
Incr Channel
Loop Until Channel > 3
-
Erfahrener Benutzer
Robotik Visionär
Bei der Berechnung des Widerstandes ist glaube ich noch ein Fehler drin. Das sollte ein nichtlineare Funktion sein. Man braicht da auch nicht wirklich auf die Spannung umzurechnen, denn die darf an Ende nicht in Ergebnis eingehen.
Einige der zahlenwerte sind wirklich Konstant, da könnte man Konstanten nutzen, wenn Bascom wenigstens das erlaubt. Bei involt ist da einmal der Wert 4,9 und einmal mit der Variable gerechenet. Das ist die schlechteste mögliche Lösung.
-
Neuer Benutzer
Öfters hier
Stimme das mit dem Wert habe ich übersehen, aber nun geändert.
Die formel ist so übernommen bzw umgestellt nach den gleichungen von
http://www.umnicom.de/Elektronik/Sch...r/Ntc/Ntc.html. Durch Ln = R / Rs , Ln = Log(ln) ist sie ja auch nicht Linear.
Ausserdem stimmt mit allen bisher angestellten Vergleichsmessungen mit einem Digitalen Aquariumthermometer von 22 bis 50 Grad in 0.1er Schritten überein. (Wasser erwärmt auf über 50 Grad und dann abfallend die Werte kontrolliert)
Aber die anliegende Spannung muss ich doch zur Berechnung des gemessenen Widerstandes auslesen bzw bestimmen oder nicht ?
-
Erfahrener Benutzer
Robotik Visionär
Die Spannung braucht man nicht, denn die Spannung geht 2 mal ein, und hebt sich dabei genau auf. Einmal als Ref Spannung des ADs und einmal als Spannung zum treiben der Brücke. Das nennt sich ratiomerische Messung.
Wenn die Schaltung so ist, wei gedacht, sollte der AD Wandler eine Wert ausgeben von:
AD = 1023 * Rv / (Rx+Rv)
Wobei Rv im Programm wohl Pullup heißt.
Oder als Verhältnis der Spannungen über dem Ref. und zu mesenden Widerstand geschrieben:
AD*Rx = (1023-AD) * Rv
Wenn man das nach Rx auföst komme ich auf
Rx = Rv * AD / (1023-AD)
Da taucht die Spannung schon gar nicht mehr auf. Für die Berechnung kann man dann auch Rv mit dem Widerstand bei 25 Grad gleich mit verechnen.
Also Ln = Rx/Rs = log(Rv/Rs) + Log (AD/(1023-AD))
-
Also:
wenn ich eine Lichtabhängigen wiederstand in reihe mit einem zweiten (am besten prazisionswiederstand) an einen A/D WAndler hänge kann ich über den ausgangswert (0-255) dann die lichtstärke bestimmen?
(ist nur zur Kontrolle, ob ich richtig liege)
Und wie lese ich den AD aus ?
(RP6 und C)
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen