Temperatur über analogen Eingang messen mit ESP8266

OP (Firma: privat) #7286611
Lesenswert?

Hallo,

ich möchte über den analogen Eingang des ESP8266 die Temperatur erfassen 
und verwende zur Temperaturmessung einen NTC. Den Schaltungsaufbau habe 
ich in der abgebildeten PDF modelliert.

Ich weiß leider nicht, wie ich den gemessenen Spannungswert in eine 
Temperatur umwandeln kann. Ein Freund hat mir seine Mitschrift 
zugesendet (siehe PDF). Ich habe Probleme, diese zu verstehen.

Wie kommt Formel 6 zustande?

Was genau ist in dieser Formel 7. mit raw gemeint und woher kommen die 
1023?

Vielen Dank.
Angehängte Dateien:
Gast #7286618
Lesenswert?

Mit einer anderen Schaltung wird es viel einfacher:

Ändere den Widerstand auf den selben Wert, den der NTC bei mittlerer 
Normaltemperatur hat. Schalte außerdem einen Widerstand mit 0x so viel 
Ohm parallel zum NTC. Dann bekommst du in einem relativ weiten Bereich 
eine Spannung heraus, die fast linear der Temperatur entspricht.

Berechnungshilfe: 
https://www.electronicdeveloper.de/MesstechnikNTCLinearR.aspx

Allerdings ist der ADC des ESP ziemlich ungenau. Mit einem externen ADC 
oder einem digitalen Temperatursensor wirst du bestimmt glücklicher.
OP (Firma: privat) #7286720
Lesenswert?

Vielen Dank für die Rückmeldungen.

Ich weiß noch nicht genau, wie ich die Temperatur T (in Kelvin) 
ermitteln soll. T steckt ja in der Formel zur Berechnung des 
Widerstandes R_NTC drin.

Die Lösung liegt in Fomrmel 7. Ist diese Verhältnisgleichung 
allgemeingültig?
Gast #7286758
Lesenswert?

Torben S. schrieb:
> Ich weiß noch nicht genau, wie ich die Temperatur T (in Kelvin)
> ermitteln soll. T steckt ja in der Formel zur Berechnung des
> Widerstandes R_NTC drin.

So, ich mache mal deine Hausaufgaben:
Rückwärts einsetzen ergibt
.
Gast #7286843
Lesenswert?

Bevor ich die Formel von Johannes F. in einem µC unterbringen wollte, 
würde ich mir diese Seite anschauen: 
https://www.sebulli.com/ntc/index.php

Außerdem: Die Formel ist nur richtig für einen NTC mit B=4600 
(vielleicht nicht mal das?). Wenn du einen anderen NTC hast, muss man 
neu rechnen und andere Werte einsetzen.
Für den Code auf sebulli.com braucht man auch den B-Wert aus dem 
Datenblatt des NTC...

Torben S. schrieb:
> Ist raw der Wert den ich bekomme, wenn ich folgenden Befehl in Arduino
> ausführe?

Ein 10-Bit ADC liefert Werte zwischen 0 und 1023, das ist der RAW-Wert, 
wenn der Einganf zwischen 0V und Vref verändert wird.
Ob der Arduino-Befehl analog_read() da noch zusätzlich was macht, weiß 
ich nicht.
Gast #7287032
Lesenswert?

HildeK schrieb:
> Ein 10-Bit ADC liefert Werte zwischen 0 und 1023, das ist der RAW-Wert,
> wenn der Einganf zwischen 0V und Vref verändert wird.
> Ob der Arduino-Befehl analog_read() da noch zusätzlich was macht, weiß
> ich nicht.

Der Faktor 4600 ist ja nun geklärt.

Aber jetzt fragt sich die ganze Meute (den neu-deutschen Ausdruck 'pack' 
wollte ich vermeiden), wo im Formelwerk wohl die Vref unterzubringen ist 
...

face plants
(Firma: Q3) #7287133
Lesenswert?

Kann man alles machen, wenn man sein Wissen im Bereich (analoge) 
Elektrotechnik akademisch vertiefen möchte. So what ...

Wenn man einfach nur die Temperatur (und evtl. etwas mehr) erfahren 
will, nimmt man fertige digitale Sensoren mit One-Wire oder 
I2C-Anschluss. 3 Zeilen Code und die Chose läuft. So what?
Gast #7287516
Lesenswert?

Stefan F. schrieb:
> Ja. Schreibe doch direkt
>
> sensorValue = analogRead(A0);

"Guter" Vorschlag :-(
Spätestens, wenn das Programm ein bisschen gewachsen und eine Zeit 
geruht hat, taucht die Frage auf "was bedeutet dieses komische A0" an 
der Stelle.
"Magic Numbers" im Programmcode sind großer Käse.

Pin-Nummer an zentraler Stelle festzulegen, so dass man einen 
aussagekräftigen Namen dazu hat und sie später leicht ändern kann, ist 
schon der richtige Weg.
Ein #define wäre hier vielleicht noch sinnvoller.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren