Forum: Mikrocontroller und Digitale Elektronik AVR Mikrocontroller externe ADC-Eingang-Erweiterung


von Marie G. (marie)


Lesenswert?

Hallo

Ich möchte mehrere Sensoren die an ADC-Eingängen angeschlossen werden 
müssen auslesen. Da ein µC intern zu wenig ADC-Kanäle hat(ATmega32 hat 8 
ADC-Ports) und ich an die 40 Sensoren anschliessen möchte würde ich 
gerne um Rat fragen.
Könnte man je 8 Sensoren an ein IC anschliessen, und den dann zusammen 
mit den anderen ICs mit je 8 Sensoren, an ein Adress/Data-Port des µC 
schliessen und jedem einzelnen Sensor eine Adresse zuteilen?
Gibt es sonst ein externes ADC-Bauteil, das für so viele Sensoren 
gemacht ist?

Ich kenne mich noch nicht so gut aus und würde mich darum um 
Lösungsvorschäge freuen.
Vielen Dank für die Hilfe

von Eumel (Gast)


Lesenswert?

Zwei Möglichkeiten:
1. Externen ADC, eventuell mehrere.
2. Multiplexer.

von Marie G. (marie)


Lesenswert?

Ok,
und wie sieht das aus mit einem externen ADC. Wie wird dieser an den µC 
angeschlossen?

von Frank K. (fchk)


Lesenswert?

Was für Sensoren sind das?
Wie weit sind die Sensoren räumlich verteilt?
Wie schnell müssen die Sensoren abgefragt werden?
Welche Auflösung, welche Genauigkeit?

Wenn Du möglichst exakt und ausführlich und mit konkreten Zahlen und 
Typenbezeichnungen die Messaufgabe beschreibst, können wir Dir besser 
helfen.

Prinzipiell gibt es mehrere Möglichkeiten:
- externe AD-Wandler an den Controller anschließen
- Analogschalter verwenden, die einen von z.B. 8 analogen Eingängen auf 
einen Ausgang schalten - mit 5 solcher ICs an den AD-Eingängen eines AVR 
hättest Du auch Deine 40 Kanäle zusammen.
- Sensoren mit digitalen Ausgängen verwenden, wenn es die gibt
- jeden Sensor mit eigenem eigenen Controller ausstatten und damit aus 
einem analogen Sensor einen digitalen machen
- ...

fchk

von Thomas E. (thomase)


Lesenswert?

Marie Gratmann schrieb:
> Ok,
> und wie sieht das aus mit einem externen ADC. Wie wird dieser an den µC
> angeschlossen?
Wenn du Glück hast über SPI.
Kommt drauf an, welche Schnittstelle der entsprechende Baustein dir 
bietet. Früher, als noch alles besser war, wurden sie am Bus 
angeschlossen.

mfg.

von Marie G. (marie)


Lesenswert?

Hallo

Danke für die schnelle Hilfe.

Es sind Infrarot-Sensoren, die nur Infrarotlicht der Umgebung 
messen(nicht Infrarotlicht abstrahlen. TPS334
Sie sind jeweils 1 cm von einander entfernt angeordnet in einem Kreis 
angeordet.
Die Sensoren sollen mindestens im 500ms-Takt abgefragt werden.
Prinzipiell muss der Messwert nicht sehr genau sein. Es geht mehr darum 
überhaupt IR-Licht zu erkennen.

marie

von Thomas E. (thomase)


Lesenswert?

Marie Gratmann schrieb:
> Die Sensoren sollen mindestens im 500ms-Takt abgefragt werden.
Mach das mit einem Multiplexer. Und gib dem Controller noch ein paar 
Primzahlen zum berechnen. Sonst gammeln ihm vor Langeweile die Pins ab.

mfg.

von Marie G. (marie)


Lesenswert?

Ok, vielen Dank für die Hilfe.
Marie

von Frank K. (fchk)


Lesenswert?

74HC4051 8:1 Analogmultiplexer. Davon 5 Stück.

von Ulrich (Gast)


Lesenswert?

Ein analoger Multiplexer ist vermutlich die richtige Wahl. Das Signal 
der Thermopiles ist oft relativ klein und braucht ggf. eine Verstärkung. 
Mit dem MUX braucht man dann auch nur einen Verstärker. Da die 
Intensität auch Im IR Bereicht über einen recht großen Bereich variieren 
kann, wäre ggf. doch ein externer AD mit mehr Auflösung sinnvoll.

Falls man die volle Empfindlichkeit der Sensoren nutzen will, sollte vor 
den MUX aber wenigstens ein einfacher Tiefpassfilter für jeden Kanal - 
wenigstens in der Form von je einem Kondensator zusammen mit dem 
Innenwiderstand des Sensors.

von batman (Gast)


Lesenswert?

Man könnte eine Abfragematrix, wie bei einer Tastatur machen.
Also jeweils 8 IR-Sensoren mit der Anode zusammenklemmen und an einen 
AVR-Outpin, der dann jeweils vor der Abfrage auf HI gesetzt wird.

von Marie G. (marie)


Lesenswert?

Hallo,

Ich habe mich nun in die Richtung entschieden, 5 Multiplexer zu nehmen 
und sie über SPI an den µC zu schliessen. Da ich nun 5 Bausteine 
anschliessen will, bräuchte ich auch mehrere cs-Leitungen die vom µC 
kommen. Was kann ich nun tun, wenn der µC nur eine Leitung hat? Kann man 
die slaves in einer Reihe anschliessen?

marie

von Frank K. (fchk)


Lesenswert?

Marie Gratmann schrieb:

> Ich habe mich nun in die Richtung entschieden, 5 Multiplexer zu nehmen

welche?

fchk

von Marie G. (marie)


Lesenswert?

Frank K. schrieb:
> welche?

Entweder fünf MCP3208 (beinhalten schon die Wandlung ins Digitale) oder 
etwas wie die 74HC4051, wobei ich da noch eine Frage hätte:

Bei den 74HC4051-Multiplexer schliesst man das analoge Signal an einen 
der 8 Kanäle und das Signal geht auch analog wieder raus in den µC. Wie 
schliesst man ihn am µC an? Auch über SPI oder an einen analogen Eingang 
des µC?

marie

von Reinhard Kern (Gast)


Lesenswert?

Marie Gratmann schrieb:
> Wie
> schliesst man ihn am µC an? Auch über SPI oder an einen analogen Eingang
> des µC?

Da geht alles durcheinander. Der analoge Ausgang kommt an einen 
ADC-Eingang des µC. Eingeschaltet wird der aktive Mux mit einem 
Enable-Signal (da brauchst du also 5 davon oder 3 und einen Decoder 3 
auf 8) und 3 Auswahlsignale (die können parallel an alle Mux gehen). Nix 
SPI. Du brauchst also 6 oder 8 I/Os für die Ansteuerung.

Gruss Reinhard

von Frank K. (fchk)


Lesenswert?

Marie Gratmann schrieb:

> Bei den 74HC4051-Multiplexer schliesst man das analoge Signal an einen
> der 8 Kanäle und das Signal geht auch analog wieder raus in den µC. Wie
> schliesst man ihn am µC an? Auch über SPI oder an einen analogen Eingang
> des µC?

Du hast drei Auswahlpins (2^3=8 Kombinationen, für jeden Eingang eine), 
und damit stellst Du ein, welcher Eingang auf den Ausgang geschaltet 
wird. Dann gibts noch Freigabesignale, aber hier kannst Du den Baustein 
dauerhaft freigeschaltet lassen.

Im AVR selber ist auch wieder so ein Multiplexer enthalten. Deswegen 
hast Du zwar 8 analoge Eingänge, aber Du kannst immer nur eine 
AD-Wandlung zur Zeit machen. Daher kannst Du die Auswahlsignale aller 
externen Multiplexer parallel schalten, d.h. Du brauchst damit nur drei 
digitale Ausgangspins für alle 5 74HC4051.

fchk

von Marie (Gast)


Lesenswert?

Ok dies sieht nach einer guten Lösung aus. Mit 3 Leitungen vom µC und je 
einer Leitung zu einem ADC-Eingang des µC`s wäre somit alles abgedeckt.

Vielen Dank für die Mühe und Geduld!

marie

von skorpionx (Gast)


Angehängte Dateien:

Lesenswert?

So etwas läuft bei mir...

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.