Forum

Einloggen | Registrieren | RSS  

Fjury

E-Mail

02.05.2021,
16:28
 

mehrere NTC Thermistoren an einem Analogeingang (ADC am ESP) (Schaltungstechnik)

Hallo zusammen und einen schönen Sonntag!

ich möchte gerne mehrere NTC Widerstände über den Analog Digitalwandler Eingang ADC des ESP8266 auslesen.

Jeder 470Ohm NTC ist dazu mit einem 470Ohm Widerstand zwischen Masse auf einen GPIO Ausgang des ESP geschaltet.
Also der klassische Spannungsteiler.... Und der Schaltbare Ausgang ist da, um die Eigenerwärmung des NTC zu minimieren.

Mit einem einzelnen NTC funktioniert das auch sehr gut und die ermittelte Temperatur entspricht der tatsächlichen Umgebungstemperatur ohne große Schwankungen am ADC.

Da der ESP8266 leider nur über einen ADC Eingang verfügt, ich aber 8 NTCs messen möchte, dachte ich, ich sperre die Leitung zwischen NTC und ADC jeweils mit einer Diode.
Das funktioniert zwar, aber das Ergebnis ist leider um ca. 2-3 °C verfälscht.

Ich nehme an, dies liegt an der verwendeten Diode 1N4007, welche noch eine zu große Durchlassspannung hat. Oder habe ich sonst irgendwo einen Denkfehler?

Da ich mich in dem Wald voller Dioden nicht ganz zurecht finde, möchte ich euch um Hilfe bitten.
Falls meine 0815 Schaltung mit Dioden für mein Ziel zu einfach ist, bin ich gerne für alternative Vorschläge offen.

Besten Dank und einen schönen Sonntag.
Gruß Chris

Gast

02.05.2021,
16:56

@ Fjury

mehrere NTC Thermistoren an einem Analogeingang (ADC am ESP)

» Da der ESP8266 leider nur über einen ADC Eingang verfügt, ich aber 8 NTCs
» messen möchte, dachte ich, ich sperre die Leitung zwischen NTC und ADC
» jeweils mit einer Diode.
» Das funktioniert zwar, aber das Ergebnis ist leider um ca. 2-3 °C
» verfälscht.
Das funktioniert so nicht. Du hast die 8 NTCs parallelgeschaltet. Wie hast du dir gedacht, jeden einzeln abzufragen?
Denkfehler!

Fjury

E-Mail

02.05.2021,
17:14

@ Gast

mehrere NTC Thermistoren an einem Analogeingang (ADC am ESP)

» » Da der ESP8266 leider nur über einen ADC Eingang verfügt, ich aber 8
» NTCs
» » messen möchte, dachte ich, ich sperre die Leitung zwischen NTC und ADC
» » jeweils mit einer Diode.
» » Das funktioniert zwar, aber das Ergebnis ist leider um ca. 2-3 °C
» » verfälscht.
» Das funktioniert so nicht. Du hast die 8 NTCs parallelgeschaltet. Wie hast
» du dir gedacht, jeden einzeln abzufragen?
» Denkfehler!

Hallo Gast,

danke für deine Antwort.

Wie wäre die Schaltung denn richtig?
Generell scheint es ja bis auf die kleine Messabweichung zu funktionieren, da die NTCs nicht alle gleichzeitig beschaltet werden, sondern der Reihe nach durch 8 separate Ausgänge des ESP.

Gast

02.05.2021,
17:16

@ Fjury

mehrere NTC Thermistoren an einem Analogeingang (ADC am ESP)

Zeig mal deinen Stromlaufplan und den dazugehörigen Sketch.

Fjury

E-Mail

02.05.2021,
17:29

@ Gast

mehrere NTC Thermistoren an einem Analogeingang (ADC am ESP)

» Zeig mal deinen Stromlaufplan und den dazugehörigen Sketch.

Was soll ich dem Stromlaufplan denn noch hinzufügen?
Ich hatte in meinem Eingangspost eine Skizze hochgeladen, welcher ich neben der 3,3VDC Spannungsquelle und dem ESP nichts weiter hinzuzufügen weiß.
Was meinst du mit zugehörigem Sketch?

Fjury

E-Mail

02.05.2021,
17:33

@ Fjury

mehrere NTC Thermistoren an einem Analogeingang (ADC am ESP)

» » Zeig mal deinen Stromlaufplan und den dazugehörigen Sketch.
»
» Was soll ich dem Stromlaufplan denn noch hinzufügen?
» Ich hatte in meinem Eingangspost eine Skizze hochgeladen, welcher ich neben
» der 3,3VDC Spannungsquelle und dem ESP nichts weiter hinzuzufügen weiß.
» Was meinst du mit zugehörigem Sketch?

Möglicherweise meinst du den "Programmcode" sofern man diesen als Sketch bezeichnet.

interval:
- interval: 10s
then:
- switch.turn_on: ntc_vcc_0
- delay: 1s
- component.update: source_sensor_0
- component.update: template_sens_0
- switch.turn_off: ntc_vcc_0
- delay: 2s
- switch.turn_on: ntc_vcc_1
- delay: 1s
- component.update: source_sensor_0
- component.update: template_sens_1
- switch.turn_off: ntc_vcc_1

sensor:
# ntc sensors
- platform: ntc
id: temperature_sensor_0
sensor: resistance_sensor_0
calibration:
b_constant: 3450
reference_temperature: 25°C
reference_resistance: 470Ohm
name: NTC Temperature 0
- platform: ntc
id: temperature_sensor_1
sensor: resistance_sensor_1
calibration:
b_constant: 3450
reference_temperature: 25°C
reference_resistance: 470Ohm
name: NTC Temperature 1
# resistance sensors:
- platform: resistance
id: resistance_sensor_0
sensor: template_sens_0
configuration: UPSTREAM
resistor: 470Ohm
name: Resistance Sensor 0
filters:
- median:
window_size: 20
send_every: 15
send_first_at: 5
- platform: resistance
id: resistance_sensor_1
sensor: template_sens_1
configuration: UPSTREAM
resistor: 470Ohm
name: Resistance Sensor 1
filters:
- median:
window_size: 20
send_every: 15
send_first_at: 5
- platform: template
name: "Template Sensor 0"
id: template_sens_0
accuracy_decimals: 2
unit_of_measurement: "V"
lambda: !lambda |-
return id(source_sensor_0).state;
update_interval: never
- platform: template
name: "Template Sensor 1"
id: template_sens_1
accuracy_decimals: 2
unit_of_measurement: "V"
lambda: !lambda |-
return id(source_sensor_0).state;
update_interval: never
# adc source sensors:
- platform: adc
id: source_sensor_0
pin: GPIO32
name: ADC
update_interval: never
attenuation: 11db

Gast

02.05.2021,
17:40

@ Fjury

mehrere NTC Thermistoren an einem Analogeingang (ADC am ESP)

» Ich hatte in meinem Eingangspost eine Skizze hochgeladen
Die Briefmarke, die kaum zu entziffern ist? Okay...

xy(R)

E-Mail

02.05.2021,
17:44

@ Fjury

mehrere NTC Thermistoren an einem Analogeingang (ADC am ESP)

»

Dafür wären ideale Dioden nötig, die sind allerdings aus Unobtainium.

Fjury

E-Mail

02.05.2021,
17:45

@ Gast

mehrere NTC Thermistoren an einem Analogeingang (ADC am ESP)

» » Ich hatte in meinem Eingangspost eine Skizze hochgeladen
» Die Briefmarke, die kaum zu entziffern ist? Okay...

:-P Oh Sorry, das Bild lässt sich nicht vergrößern. Hier der Link zum Originalbild
https://share.icloud.com/photos/0-dxnsZXTUqr_scLLMkllGZrA

Fjury

E-Mail

02.05.2021,
17:54

@ xy

mehrere NTC Thermistoren an einem Analogeingang (ADC am ESP)

» »
»
» Dafür wären ideale Dioden nötig, die sind allerdings aus Unobtainium.
Tolles Wort! :-D Das muss ich mir merken.

Also entnehme ich einer Antwort, dass die Schaltung generell funktionieren würde, aber meine Verutung mit er zu großen Durchlasspannung richtig ist.
Eine optimale Lösung mit Dioden scheint es aber nicht zu geben, da es keine für meine Anwendung ideale Diode gibt.

Hast du einen Vorschlag, wie man es richtig macht? Ich kann doch schlecht ein Relais zwischen jeden NTC und den Messeingang setzen :-D
Das würde vielleicht funktionieren, aber ist bestimmt nicht die ideale Lösung.

Hartwig(R)

02.05.2021,
18:07

@ Fjury

mehrere NTC Thermistoren an einem Analogeingang (ADC am ESP)

Hallo,
Eigentlich benutzt du die Dioden ja als Schalter. Relais gingen natürlich, aber mache dich mal zum Thema “Analogmultiplexer“ schlau, quasi ein digital direkt vom uC steuerbarer Umschalter.
Grüsse
Hartwig

bigdie(R)

02.05.2021,
18:12

@ Fjury

mehrere NTC Thermistoren an einem Analogeingang (ADC am ESP)

» » » Ich hatte in meinem Eingangspost eine Skizze hochgeladen
» » Die Briefmarke, die kaum zu entziffern ist? Okay...
»
» :-P Oh Sorry, das Bild lässt sich nicht vergrößern. Hier der Link zum
» Originalbild
» https://share.icloud.com/photos/0-dxnsZXTUqr_scLLMkllGZrA
Umschalten wäre eine Möglichkeit, entweder mit Reed Relais oder auch z.B mit einem oder mehreren CD4066. Es gibt aber auch Temperatursensoren für 1-Wire bus. Da kannst du mehrere parallel an einem Eingang betreiben, wenn der für so etwas ausgelegt ist

Gast

02.05.2021,
18:27

@ bigdie

mehrere NTC Thermistoren an einem Analogeingang (ADC am ESP)

Sind die Ausgänge Tristate-Ausgänge? Dann würde ich die Dioden einsparen und nur einen Widerstand gegen Masse nutzen.

Fjury

E-Mail

02.05.2021,
18:29

@ bigdie

mehrere NTC Thermistoren an einem Analogeingang (ADC am ESP)

» » » » Ich hatte in meinem Eingangspost eine Skizze hochgeladen
» » » Die Briefmarke, die kaum zu entziffern ist? Okay...
» »
» » :-P Oh Sorry, das Bild lässt sich nicht vergrößern. Hier der Link zum
» » Originalbild
» » https://share.icloud.com/photos/0-dxnsZXTUqr_scLLMkllGZrA
» Umschalten wäre eine Möglichkeit, entweder mit Reed Relais oder auch z.B
» mit einem oder mehreren CD4066. Es gibt aber auch Temperatursensoren für
» 1-Wire bus. Da kannst du mehrere parallel an einem Eingang betreiben, wenn
» der für so etwas ausgelegt ist

An das Umschalten mit Relais hatte ich auch schon gedacht, aber das wird mir alles zu groß. So viel Platz habe ich leider nicht im Gehäuse https://www.phoenixcontact.com/online/portal/de/?uri=pxc-oc-itemdetail:pid=2202525
Da müssen schon 8 Relais oder SSR zum Schalten der Schütze der Fußbodenheizung unterkommen...Aber erstmal muss das auslesen der NTCs klappen.

Die NTCs kann ich leider nicht so einfach austauschen. Die liegen bereits seit Jahren in der Fußbodenheizung

xy(R)

E-Mail

02.05.2021,
18:34

@ Fjury

mehrere NTC Thermistoren an einem Analogeingang (ADC am ESP)

» Die NTCs kann ich leider nicht so einfach austauschen. Die liegen bereits
» seit Jahren in der Fußbodenheizung

Welchen Widerstandsbereich decken die ab, von tiefster bis höchster vorkommender Temperatur?

Fjury

E-Mail

02.05.2021,
18:50

@ Gast

mehrere NTC Thermistoren an einem Analogeingang (ADC am ESP)

» Sind die Ausgänge Tristate-Ausgänge? Dann würde ich die Dioden einsparen
» und nur einen Widerstand gegen Masse nutzen.

Der Beschreibung nach von espressif gehe ich davon aus.

Most of the digital IO pins are bi-directional, non-inverting and tristate,
including input and output buffers with tristate control. These pins can be multiplexed with other functions, such
as the SDIO, UART, SPI, etc. (More details can be found in the Appendix, Table IO_MUX.) For low-power
operations, the GPIOs can be set to hold their states.

Du meinst dann also, wie in der Skizze unter dem folgenden Link?
https://share.icloud.com/photos/07FLWc-7s4kuvBcf0qOhp9lCw