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
Zwei Möglichkeiten: 1. Externen ADC, eventuell mehrere. 2. Multiplexer.
Ok, und wie sieht das aus mit einem externen ADC. Wie wird dieser an den µC angeschlossen?
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
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.
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
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.
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.
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.
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
Marie Gratmann schrieb: > Ich habe mich nun in die Richtung entschieden, 5 Multiplexer zu nehmen welche? fchk
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
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
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.