Forum: Mikrocontroller und Digitale Elektronik 25 Sensoren an ATmega anschließen


von Gordon S. (do6og)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe eine Frage zu der Verschaltung von
Temperatursensoren (KTY83-110) an einem
ATmega oder Xmega von Atmel:

Es sollen 25 Temperatursensoren mit einem
Controller eingelesen werden (mit dem 12 Bit-ADC).

Gewählt wurde bisher eine Spannungteiler-
schaltung für die Sensoren, da hierdurch die
Kennlinie etwas linearer wird...

Nun wollte ich eine Art "Bussystem" verwenden, und
jeweils 5 Sensoren mit ADC1 bis ADC5 einlesen und
danach die nächsten 5 Sensoren usw.(siehe Anhang).
Sozusagen Multiplexen.

Jetzt zu dem Problem: Die Abgeschalteten Sensoren
verfälschen das Ergebnis, da sie ja IMMER mit
im bzw. zwischen dem Bus hängen..

Kann mir jemand einen Tipp geben oder habe ich mich
da total verbastelt?

Ich suche eine einfache Möglichkeit eben 25
Sensoren einzulesen..

Vielen Dank
Christopher

von Falk B. (falk)


Lesenswert?

@  Christopher Geile (do6og)

>Kann mir jemand einen Tipp geben oder habe ich mich
>da total verbastelt?

Das Stichwort heißt Analogschalter bzw. Multiplexer. 4066 & Co.

>Ich suche eine einfache Möglichkeit eben 25
>Sensoren einzulesen..

Nimm digitale Temperatursensoren, die kann man an einen Bus hängen, 
ala I2C oder so. LM75 ist relativ preiswert.

MfG
Falk

von Gordon S. (do6og)


Angehängte Dateien:

Lesenswert?

hi falk,

danke für deine antwort.

ich hatte die info noch nicht gegeben, dass diese
sensoren in einem strömungskanal zum einsatz kommen sollen.

bedingung ist hier, dass sie möglichst wenig luftwiderstand
haben ( kleines cw, deswegen auch u.a. die kty83 im stromlinienprofil ).

die 25 sensoren sind nun gleichmäßig aufgeteilt
im querschnitt des kanals. in fünf stromlinienkörpern.
(siehe anhang)

mit den lm75 o.ä. ist die positionierung, luftwiderstand,
anschlüsse usw. nicht so optimal.
auch alles im so-8 smd gehüse ist nicht so schön.

die anschlussleitungen der sensoren verlaufen in dem stromlinienkörper.

du hast von analogschalter oder multplexern gesprochen..
meinst du damit, dass ich jeden einzelnen spannungsteiler
damit ein und ausschalten soll??

schön wäre es ja dann, wenn es ein ic geben würde, wo gleich
mehrere (vielleicht 8 - 12) solcher schalter drin sind, damit
ich nicht unmengen an schalter-ics verbauen muss..

hast du ne idee??

grüße
christopher

von Vlad T. (vlad_tepesch)


Lesenswert?

den oberen teil brauchst du nur einmal.

an jedem Temperatursensor hängen ja momentan 5 Rs parallel.

wenn du das korrigerst sollte es keine Probleme geben.

von Falk B. (falk)


Lesenswert?

@  Christopher Geile (do6og)

>du hast von analogschalter oder multplexern gesprochen..
>meinst du damit, dass ich jeden einzelnen spannungsteiler
>damit ein und ausschalten soll??

Nein, aber die Verbndung zum AVR.

>schön wäre es ja dann, wenn es ein ic geben würde, wo gleich
>mehrere (vielleicht 8 - 12) solcher schalter drin sind, damit
>ich nicht unmengen an schalter-ics verbauen muss..

Logisch.

Analogmultiplexer

HEF4051, 8 Kanal
HEF4067, 16 Kanal

MfG
Falk

von Gordon S. (do6og)


Angehängte Dateien:

Lesenswert?

@ Vlad

ja, du hast natürlich recht.. hab ich schon geändert.
denoch bleibt das problem bestehen, dass die unteren
widerstände alle noch auf bzw. im bus hängen und somit
das messergebnis beeinflussen.

@ Falk

ich habe mir mal den hef4067 rausgesucht. der schaltet
zwar nicht "hart" gegen gnd (sind um die 300ohm) aber da nur
die spannung zum adc gegeben wird ohne nennenswerten stromfluss
kann man dies wohl akzeptieren...

stimmt meine schaltung so wie du das gemeint hast??


@ all

ich habe noch eine zweite lösung mit dioden.
hier gibt es zwar einen spannungsabfall um die 0,7v, aber
ich muss so oder so noch zu jedem spannungsteiler ein
poti in reihe setzen um alle auf den gleichen wert zu stellen...

(die absolute genauigkeit ist nicht so wichtig ... 2-3°C
aber die abweichung untereinander soll 0,1°C sein)

was haltet ihr von dieser lösung??
oder ist die lösung von falk in meinem fall die beste?


schönen abend
christopher

von Sensen Ohr (Gast)


Lesenswert?

>ich habe noch eine zweite lösung mit dioden.

Dann kannst Du ja gleich die Temperatur mit Dioden machen.

>(die absolute genauigkeit ist nicht so wichtig

Das ist gut. +/- 10K werden es schon werden.

von Arc N. (arc)


Lesenswert?

Christopher Geile schrieb:
> @ Vlad
>
> ja, du hast natürlich recht.. hab ich schon geändert.
> denoch bleibt das problem bestehen, dass die unteren
> widerstände alle noch auf bzw. im bus hängen und somit
> das messergebnis beeinflussen.
>
> @ Falk
>
> ich habe mir mal den hef4067 rausgesucht. der schaltet
> zwar nicht "hart" gegen gnd (sind um die 300ohm) aber da nur
> die spannung zum adc gegeben wird ohne nennenswerten stromfluss
> kann man dies wohl akzeptieren...
>
> stimmt meine schaltung so wie du das gemeint hast??
>
>
> @ all
>
> ich habe noch eine zweite lösung mit dioden.
> hier gibt es zwar einen spannungsabfall um die 0,7v, aber
> ich muss so oder so noch zu jedem spannungsteiler ein
> poti in reihe setzen um alle auf den gleichen wert zu stellen...
>
> (die absolute genauigkeit ist nicht so wichtig ... 2-3°C
> aber die abweichung untereinander soll 0,1°C sein)

Der Widerstand R25 ist mit 990 Ohm bis 1010 Ohm angegeben, der TC mit 
0.76%/K (7.6 Ohm/K)...
http://www.nxp.com/documents/data_sheet/KTY83_SER.pdf
Hinzukommt noch die sehr lange Zeitkonstante...

> was haltet ihr von dieser lösung??
> oder ist die lösung von falk in meinem fall die beste?

Je nach dem was im Strömungskanal tatsächlich gemessen werden soll.
Wenn es in diese
http://www.dantecdynamics.com/Default.aspx?ID=654
Richtung gehen soll, ist das ganze mehr oder weniger ungeeignet...

> schönen abend
> christopher

von Vlad T. (vlad_tepesch)


Lesenswert?

Christopher Geile schrieb:
> @ Vlad
>
> ja, du hast natürlich recht.. hab ich schon geändert.
> denoch bleibt das problem bestehen, dass die unteren
> widerstände alle noch auf bzw. im bus hängen und somit
> das messergebnis beeinflussen.

verstehe ich nicht.
Wenn du die Pins der gerade nicht benutzten Sensoren auf Eingang stellst 
(und die internen Pullups deaktivierst), sind die doch extrem hochohmig.
Ich kann mir nicht vorstellen, dass dies die Messung signifikant 
beeinflusst.

von Alexander S. (esko) Benutzerseite


Angehängte Dateien:

Lesenswert?

So klappt es ganz einfach und ohne weitere Bauteile.

von DRJ (Gast)


Lesenswert?

Für was sind die Dioden im oberen Teil?
Sie sind in Sperrichtung eingebaut.

von Jens M. (dl4aas) Benutzerseite


Lesenswert?

Hallo,

wie wäre es mit mehreren 'kleinen' Atmegas oder ATTinys, die je einen 
Teil der Sensoren messen und die Ergebnisse über einen serielle Bus 
zusammenführen?

Z.B. je Rippe einen ATtiny2313 und noch einen Proz als Datensammler? 
Vielleicht einen ATMega644P mit einer zweiten seriellen zum 
übergeordneten System oder zur Anzeige?

Gäbe einen schönen modularen Aufbau. Für den Bus bräuchte es gar keinen 
großen Aufwand, ein paar Dioden, damit die Sendeleitungen der Tinys 
(oder Tinies?) zusammengeführt werden können. Der Master sendet an alle 
und pollt sich die Daten zusammen.

Und bei Bedarf werden auch schnell 8x8 Sensoren daraus...

Gruß
Jens

von Jobst M. (jobstens-de)


Lesenswert?

Vlad Tepesch schrieb:
> verstehe ich nicht.
> Wenn du die Pins der gerade nicht benutzten Sensoren auf Eingang stellst
> (und die internen Pullups deaktivierst), sind die doch extrem hochohmig.
> Ich kann mir nicht vorstellen, dass dies die Messung signifikant
> beeinflusst.

Aber die nicht aktiven Sensoren verbinden die einzelnen Leitungen des 
Busses.


Gruß

Jobst

von Vlad T. (vlad_tepesch)


Lesenswert?

Jobst M. schrieb:
> Aber die nicht aktiven Sensoren verbinden die einzelnen Leitungen des
> Busses.

oh stimmt, hab ich übersehen.
Anstatt Analog-Multiplexer könnte man aber auch irgend ein 74er mit 
Tristate-Ausgängen nehmen, zB 74X241
Da hängt man an an einen die Sensoren einer Reiehe und beschalten den IC 
fest so, dass alle Ausgänge High sind und der µC nur den Enable-Eingang 
steuert, mit dem er die Ausgänge entweder hochohmig oder an schaltet.

Das sollte deutlich billiger sein, als ein Analogmultiplexer.

von Entwickler (Gast)


Lesenswert?

>Das sollte deutlich billiger sein, als ein Analogmultiplexer.

Und auch nicht funktionieren.
Was soll denn der Quatsch, die Analog-Multiplexer sparen zu wollen?
Weder ein AVR noch ein 74xx Baustein liefern eine hinreichend stabile 
Ausgangsspannung, um damit eine halbwegs genaue Temperaturmessung 
durchzuführen.

von Falk B. (falk)


Lesenswert?

Spare jederzeit, dann hast du immer Not ;-)

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Vorschlag Temperatursensor:
MPC9700 oder MCP9701 von Microchip. (TO92 oder SOT23)

(Falls der Sensor nicht schon festgelegt ist)

von Falk B. (falk)


Lesenswert?

@  Markus Müller (mmvisual)

>(Falls der Sensor nicht schon festgelegt ist)

Ist er aber, aus mechanisch/aerodynamischen Gründen.

Beitrag "Re: 25 Sensoren an ATmega anschließen"

von R. M. (rmax)


Lesenswert?

Jens Mundhenke schrieb:

> wie wäre es mit mehreren 'kleinen' Atmegas oder ATTinys, die je einen
> Teil der Sensoren messen und die Ergebnisse über einen serielle Bus
> zusammenführen?
>
> Z.B. je Rippe einen ATtiny2313 und noch einen Proz als Datensammler?

Der ATtiny2313 hat keinen A/D-Wandler und die Tinys mit A/D-Wandler 
haben keinen UART.

Ideal wäre wohl der ATtiny26 bzw. ATtiny261 mit 11 A/D-Kanälen und dann 
mit I²C oder SPI (notfalls auch Soft-UART) zum Master.

von Gordon S. (do6og)


Lesenswert?

danke euch erstmal für die antworten..
ich erstelle jetzt ein layout mit atxmega und zwei
multiplexern.

grüße

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.