Forum: Mikrocontroller und Digitale Elektronik Spannungsmesssystem


von Max F. (elektrofire)


Lesenswert?

Moin,
ich bin neu in der Mikrocontrollerwelt und brauche Hilfe: ich möchte en 
Messystem aufbauen, das bis zu 100 Spannungen gleichzeitig (parallel) 
erfassen kann und zum Computer weiterleitet!!
Welche Hardware bietet sich an?
Ich bin für jeden Vorschlag dankbar

von Pandur S. (jetztnicht)


Lesenswert?

Anforderunegn ?
Spannungsbereich, Sampelrate ?

von Stefan (Gast)


Lesenswert?

Was heißt gleichzeitig? Geht auch ein Versatz von einigen µs?

von Max F. (elektrofire)


Lesenswert?

*Messbereich: 0 bis 0.5V und brauche dabei und hohe Genauigkeit >= 10 
bits
*Samplerate: Messwerte möglichst häufig am PC zur Verfügung/ Darstellung 
stehen (<=1s)
Danke!

von Udo S. (urschmitt)


Lesenswert?

Max F. schrieb:
> ich bin neu in der Mikrocontrollerwelt

Ein Einsteigerprojekt sieht anders aus.
Mein Vorschlag:
Lerne erst mal laufen bevor du einen Marathon rennen willst.

von Anna2 (Gast)


Lesenswert?

Was darf das den kosten?

von MaWin (Gast)


Lesenswert?

Max F. schrieb:
> ich möchte en
> Messystem aufbauen, das bis zu 100 Spannungen gleichzeitig (parallel)
> erfassen kann und zum Computer weiterleitet!!

Sind die Spannungen gemessen bezüglich einer gemeinsamen Masse
oder sind sie alle galvanisch getrennt ?

Was heisst gleichzeitig ? Alle auf die Mikrosekunde genau zum selben 
Zeitpunkt gemessen, oder bloss in 1 Sekunde alle 100 je ein mal erfasst 
?

Normale uC haben A/D-Wandler schon eingebaut mit 10 bit.
Damit die 0.5V messen, muss man verstärken, dazu gibt es OpAmps wie 
LT1013.
0.5V bei 10bit zum 500uV. Der LT1013 wäre auch genau genug (der LM324 
nicht).

Der normale uC hat auch schon 8 Analogeingänge, und ebenso wie der 
intern umschaltet, könnte man extern weiter umschalten, CD4051 wäre ein 
Baustein dafür, man braucht für 100 Kanäle 13 Stück davon. Der 
Umschalter verfälscht das Signal nicht (über 500uV), aber man kann 
natürlich nur nacheinander messen.

Bei 500uV kann man sich aber nicht auf die gemeinsame Masse verlassen 
man muss jedes Signal differentiell messen, also 26 A/D-Wandler.

von Max F. (elektrofire)


Lesenswert?

* Ein Versatz(nacheinander) ist erlaubt, solange ich nach einer Sekunde 
od. 0,5 Sec die 100 Messwerte habe!!
* die Werte werden bezüglich einer gemeinsamen Masse gemessen
PS: ich habe schon eine kleine Erfahrung mit µC Programmierung hier geht 
es um die Auswahl geeigneter Hardware ;)

von Anna2 (Gast)


Lesenswert?

Max F. schrieb:
> die Werte werden bezüglich einer gemeinsamen Masse gemessen

Laut Deiner Angaben möchtest Du auf 0,5mV genau messen, oder?

Was darf das denn zusammen kosten?

von Peter (Gast)


Lesenswert?

Anna2 schrieb:
> Laut Deiner Angaben möchtest Du auf 0,5mV genau messen, oder?

Nein er möchte 0,5mV AUFLÖSEN

http://www.mikrocontroller.net/articles/Aufl%C3%B6sung_und_Genauigkeit

von Peter R. (pnu)


Lesenswert?

Ein andrer Weg wäre die Verwendung von sample-and-hold-Schaltungen, die 
gemeinsam getriggert werden und anschließend seriell von einem 
AD-Wandler gelesen.

von Max F. (elektrofire)


Lesenswert?

die Kosten sollten kein Problem darstellen (aber nicht übertrieben), bin 
offen für jeden Vorschlag

von Max F. (elektrofire)


Lesenswert?

MaWin schrieb:
> Max F. schrieb:

> Der normale uC hat auch schon 8 Analogeingänge, und ebenso wie der
> intern umschaltet, könnte man extern weiter umschalten, CD4051 wäre ein
> Baustein dafür, man braucht für 100 Kanäle 13 Stück davon. Der
> Umschalter verfälscht das Signal nicht (über 500uV), aber man kann
> natürlich nur nacheinander messen.

soweit ich verstanden habe sind die  CD4051 externe ADC mit jeweils 8 
Kanälen (analoge Eingänge).
Wie werden die Bauteile danach mit dem uC verbunden? (über GPIO?)

von Cyblord -. (cyblord)


Lesenswert?

Max F. schrieb:
> MaWin schrieb:
>> Max F. schrieb:
>
>> Der normale uC hat auch schon 8 Analogeingänge, und ebenso wie der
>> intern umschaltet, könnte man extern weiter umschalten, CD4051 wäre ein
>> Baustein dafür, man braucht für 100 Kanäle 13 Stück davon. Der
>> Umschalter verfälscht das Signal nicht (über 500uV), aber man kann
>> natürlich nur nacheinander messen.
>
> soweit ich verstanden habe sind die  CD4051 externe ADC

Sorry was bitte? Im (sogar direkt hier verlinkten Datenblatt) steht auf 
der 1. Seite:

"The CD4051B is a single 8-Channel multiplexer"

Lern erst mal lesen.

von MaWin (Gast)


Lesenswert?

Max F. schrieb:
> * Ein Versatz(nacheinander) ist erlaubt, solange ich nach einer Sekunde
> od. 0,5 Sec die 100 Messwerte habe!!
> * die Werte werden bezüglich einer gemeinsamen Masse gemessen

Na ja, dann passt ja die skizzierte Schaltung ja, du wirst aber pro 
Spannungsmessung sowohl den Pluspol als auch den Minuspol mit 
Analogschaltern durchschalten müssen, und dann die Differenz mit einem 
Instrumentenverstärker messen, denn der Spannungsversatz zur gemeinsamen 
Masse wird deutlich über 500uV sein.

                     +5V
                      |
               +--------------+
Pluspol ---//--|Analogschalter|--+ INA126 oder so
          100  +--------------+  | Instrumentenverstärker x 10
                                 +--|+\
                                    |  >-- A/D-Wandler
                                 +--|-/    10 bit
          100  +--------------+  |     \
Minuspol --//--|CD4051        |--+      +-- AGND
               +--------------+
                      |    |
                     GND   7 bit Kanalauswahl

von Max F. (elektrofire)


Lesenswert?

Cyblord ---- schrieb:
> Max F. schrieb:
>> MaWin schrieb:
>>> Max F. schrieb:
>>
>>> Der normale uC hat auch schon 8 Analogeingänge, und ebenso wie der
>>> intern umschaltet, könnte man extern weiter umschalten, CD4051 wäre ein
>>> Baustein dafür, man braucht für 100 Kanäle 13 Stück davon. Der
>>> Umschalter verfälscht das Signal nicht (über 500uV), aber man kann
>>> natürlich nur nacheinander messen.
>>
>> soweit ich verstanden habe sind die  CD4051 externe ADC
>
> Sorry was bitte? Im (sogar direkt hier verlinkten Datenblatt) steht auf
> der 1. Seite:
>
> "The CD4051B is a single 8-Channel multiplexer"
>
> Lern erst mal lesen.

Danke für deine hilfreiche Bemerkung.
das habe ich doch gelesen, auf der Seite steht aber auch ADC als 
Applikation.

von Cyblord -. (cyblord)


Lesenswert?

Max F. schrieb:
> Danke für deine hilfreiche Bemerkung.
Die ja anscheind bitter nötig ist.

> das habe ich doch gelesen, auf der Seite steht aber auch ADC als
> Applikation.

Weil man die VOR einen ADC machen kann. Weil es nunmal Multiplexer sind.

von Max F. (elektrofire)


Lesenswert?

MaWin schrieb:


> Der normale uC hat auch schon 8 Analogeingänge, und ebenso wie der
> intern umschaltet, könnte man extern weiter umschalten, CD4051 wäre ein
> Baustein dafür, man braucht für 100 Kanäle 13 Stück davon. Der
> Umschalter verfälscht das Signal nicht (über 500uV), aber man kann
> natürlich nur nacheinander messen.

Die Idee mit den vorgeschalteten Multiplexern gefällt mir!
aber wie kann ich 13 Multiplexern verwenden, während der ADC nur 8 
analogeingänge besitzt?
und welche uC ist zu empfehlen, um die Anforderungen zu erfüllen (alle 
100 Messungen in weiger als 1 Sec)?

von Max F. (elektrofire)


Lesenswert?

Sooo keine konkrete Hardware-Vorschläge zur Anforderung: 100 Messwerte 
am PC jede 1 bis 0,5 Sec?

von Route_66 H. (route_66)


Lesenswert?

Max F. schrieb:
> Sooo keine konkrete Hardware-Vorschläge

Dooooooch: Siehe MaWin von 15:29.

von Frank (Gast)


Lesenswert?

Wie wäre es mit kleinen uC Boards die den internen ADC verwenden.
Meist haben die ja so zwischen 8-10 gemuxte ADC's.
Dann noch eine externe Referenzspannungsquelle drauf.
Kommunikation zu einem Master (PC oder anderes Board das die Daten 
einsammelt) über UART/RS485 o.ä.

Zum starten der Messungen einfach ein Triggertelegramm an alle senden.
Nach erfolgreicher Triggerung + fester Wartezeit einfach die Daten von 
den ganzen Boards per Master abholen.

Bei 8 internen ADC's bräuchte man 13 Boards.
Man könnte dann über 4 Pins die noch übrig sind eine einmalige Adresse 
einstellen.
Sprich die Software ist für alle Boards gleich.

Samplingtime pro Kanal liegt z.B. bei 3us.
D.h. bei 8 Kanälen wäre jedes Board nach 24us fertig.

Grob mal überschlagen:
Request durch Master:
13 Boards * (8 Bit Adresse + Status/Control) = 208 Bit

Antwort durch Slave:
13 Boards * ( 8 Bit Adresse + 80 Bit ADC-Werte + 8 Bit CRC) = 1248 Bit

Er hat ne halbe Sekunde Zeit alle Werte abzuholen, sprich es müssten 
auch keine hohen Übertragungsraten sein. Es sei denn er möchte natürlich 
schneller Daten haben.

Vorteil ist mit Sicherheit, dass es leicht zu implementieren ist. Nicht 
viel Geld kosten wird (gleiche Platine, gleiche Software, gleiche 
Bauteile,...) und wenn man noch ein paar Pins extra spendiert oder die 
Adresse programmiert sogar noch erweiterbar ist.

Grüße
Frank

von Max F. (elektrofire)


Lesenswert?

Frank schrieb:
> Wie wäre es mit kleinen uC Boards die den internen ADC verwenden.
> Meist haben die ja so zwischen 8-10 gemuxte ADC's.
> Dann noch eine externe Referenzspannungsquelle drauf.
> Kommunikation zu einem Master (PC oder anderes Board das die Daten
> einsammelt) über UART/RS485 o.ä.
>
> Bei 8 internen ADC's bräuchte man 13 Boards.
> Man könnte dann über 4 Pins die noch übrig sind eine einmalige Adresse
> einstellen.
> Sprich die Software ist für alle Boards gleich.
>
>
> Grüße
> Frank

wie heißen die verschiedenen Komponenten? (konkrete Vorschläge bitte)

: Bearbeitet durch User
von Anna2 (Gast)


Lesenswert?

Max F. schrieb:
> wie heißen die verschiedenen Komponenten? (konkrete Vorschläge bitte)

Ich bin mir sicher, Frank könnte Dir jetzt mindestens 100 verschiedene 
Bausteine nennen, die Du bei RS, Farnell, Reichelt, Conrad etc. kaufen 
kannst. Wenn es Dir nicht gelingt, den für Dich optimalen Baustein 
heraus zu suchen, dann ist das Projekt mit Sicherheit zu groß für Dich.

Du musst Dir bei der hohen Zahl an empfindlichen Eingängen auch ein 
absolut sauberes Massekonzept überlegen, denn bei einer irgendwie 
hingebastelten Schaltung wirst Du nur Murks messen. Solltest Du dazu 
nicht in der Lage sein, dann schaue Dich lieber gleich nach einer 
fertigen Lösung um (zumal die Kosten ja wohl keine Rolle spielen).

von Flip B. (frickelfreak)


Lesenswert?

14x Arduino Uno und 3  usb hubs.  Das ist für dich besser realisierbar.


Alle aref auf 0,5v legen.

von spess53 (Gast)


Lesenswert?

Hi

>Alle aref auf 0,5v legen.

Bei aktuellen AVRs ist die minimale Referenzspannung 1V.

MfG Spess

von Flip B. (frickelfreak)


Lesenswert?

Genau danach hatte ich gegoogelt. Habe nur die arduino-angabe 0-5v 
gefunden. Fand ich auch unlogisch

von spess53 (Gast)


Lesenswert?

Hi

>Genau danach hatte ich gegoogelt. Habe nur die arduino-angabe 0-5v
>gefunden. Fand ich auch unlogisch

Unlogisch sind eher deine 'Datenquellen'. Logisch wäre das Datenblatt 
von ATMEL gewesen.

MfG Spess

von Flip B. (frickelfreak)


Lesenswert?

Datenblatt saugen mit 32kb/s schwierig. Wie gesagt ist 1v wohl richtig, 
ich war ja selbst stutzig geworden.

von Udo S. (urschmitt)


Lesenswert?

Flip B. schrieb:
> 14x Arduino Uno und 3  usb hubs.

Kollidiert mit der Aussage:

Max F. schrieb:
> brauche dabei und hohe Genauigkeit >= 10 bits

Das würde bedeuten, dass er zumindest 12 Bit Wandler benutzen muss.

Wobei ich Max schon geschrieben hatte, er soll erst mal laufen lernen 
bevor er Marathon rennen will, aber das wollte er nicht hören.

Statt dessen kommen klare "Ansagen":

Max F. schrieb:
> wie heißen die verschiedenen Komponenten? (konkrete Vorschläge bitte)

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Max F. schrieb:
> wie heißen die verschiedenen Komponenten? (konkrete Vorschläge bitte)

Lerne zunächst einmal, eine ordentliche Anforderungsspezifikation zu 
schreiben. Ausrufezeichen haben darin übrigens nichts zu suchen.

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.