Arduinio Mega mit Analogen In´s erweitern

Mit dem IC kannst Du an einem Analogpin nacheinander mehrere Signale messen.

Nacheinander, das heißt ich bekomme nicht alle daten auf einmal und habe auch immer nur einen eingnang zum einlesen. läuft der der reihe nach die analog in´s ab und gibt die wieder?

wie definiere ich das im programm?

Über die Adresspins des 4051 schaltest Du einen Eingang auf den Ausgang der mit dem Analogeingang des Arduino verbunden ist. Dann machst Du ein Analogread. Dann wiederholst du das selbe mit den nächsten eingang.
Grüße Uwe

hmm, also ein ablauf. wie schnell bekommt der arduino das hin?

EDIT: ist aber nicht wirklich was ich haben möchte. Der MAX127 kann aber alle analog in´s sofort auslesen? oder macht der auch eine abfrage?

Der IC kann bei 5V Versorgung innerhab 600-1200ns Schalten also 0,6-1,2ms der Arduino bekommt das innerhalb eines mittelgroßen Programmes auch so hin du kannst aber ein Zähler bauen der alle 2ms Umschaltet und du so kannst du dann alle 2ms sind lesen das !500! mal pro Sekunde!! und das dürfte wohl reichen. :slight_smile:
Nach einem freundlichen Hinweis per KM muss ich mal meine Aussage revidieren habe eine 10³ potenz unterschalge 600-1200ns sind 0,6-1,2µs und so schnell ist der Arduino beim Switchen und anschließenden Analog Read nicht wobei meine Aussage von oben hinfällig ist :slight_smile:

hm, sollte reichen.

gibts denn auch solche ic´s mit weniger eingängen?

der hier kann ja alle analogen werte direkt über den i2c bus auslesen. gibts den auch noch in kleiner?

http://www.mikrocontroller.net/part/MAX127

Hallo da Hool

Was meinst Du?

Möchtest Du einen A/D-Wandler mit 4 Eingängen?

Grüße Uwe

zum beispiel, oder mit zweien, würde auch reichen. gibt es diesen max127 auch kleiner?

ich steig nicht mehr durch...
zuerst stellst du fest dass dir ein arduino MEGA(!!) nicht reicht- und jetzt hättest du gerne weniger (!!!) Eingänge?

Nochmal für alle zum mitschreiben: der MAX127 mach aus DREI (Daten-)Leitungen 8 analoge Eingänge per I2C. Wem das nicht reicht, der benutzt einfach 2, 5 oder 194 MAX127es an DREI Leitung des Arduinos. Wobei das wahrscheinlinch Probleme bei der Adressierung geben würde. Also eher 2,5,10 oder 32 MAX127.

hi,

ok war wohl zu unklar, sorry. ich brauche für einen arduino mega eine analog in erweiterung von 4-8 ports, einmal 4 und einmal eine 8 port erweiterung. möglichts zeitgenau, direkt, also nicht erst alle nach einander abfragen.

gruß da Hool

Du glaubst daß es ein problem ist die Analogwerte nacheinander zu lesen. Ist es nicht; Du kannst sie ja auch nur nacheinander verarbeiten.
Auch wenn der A/D-Wandler sie gleichzeitig mißt kannst Du sie nur nacheinander auslesen.
Grüße Uwe

moin,

ja, wenn das nicht anders geht kann ich auch den 0,30€ ic statt den 24€ teuren max127 oder?

beide über den i2c bus?

Welches ist jetzt das 30 cent IC? Hab den Faden der Diskussion verloren.
Grüße Uwe

Moinsen, ja ich auch, sry. Zu lang nicht mehr reingeschaut.

Es geht darum, dass ich einen weg Suche, einen arduino UNO/Mega mit mehr analogen Eingängen auszustatten.

Zum ersten wurde der max127 in den Raum geworfen, ein 12 Bit ad Wandler der seine Daten über den i2c Bus weitergibt.

Zum zweiten wurde der cd 4051 vorgeschlagen. Dieser fasst seine analogen Eingänge zusammen und gibt sie über seinen Ausgang an einen der analogen arduino Ports weiter.

Meine Befürchtung war, dass das zu langsam von statten gehen könnte.

Ich wurde gerne wissen, ob beide ic's meine anforderungen erfüllen und die Daten reibungslos senden und dass in kurzer Zeit.

Gruß da hool

Mux Shield | Mayhew Labs ist vielleicht die Antwort.

Damit habe ich den UNO auf 48 analoge Inputs erweitert und ein Schlagzeug gebastelt. Es funktioniert ohne "spürbare" Latenzen. Allerdings nur, wenn einer der drei Muxer im Betrieb ist. Wenn ich den zweiten Muxer auch mit auslese, wird es schon hörbar hakelig, beim dritten gibt es dann unzumutbare Latenzzeiten. Schlagzeugwirbel werden damit unmöglich. Werde mal schauen, ob das per Software optimierbar ist.

Aber man kann mit der gleichen Hardware (und modifizierter Software) weniger zeitkritische Anwendungen daraus basteln. Zum Beispiel eine Heimüberwachung. Statt Piezos einfach andere Sensoren anschliessen (optische, bsw. Laser :wink:

http://blog.georgmill.de/2011/03/01/yet-another-arduino-midi-drumhead/

Have fun.

hi,

klingt super, wo bekomme ich den her?

Auf dem Mux Shield sind die großen Brüder des CD4051 drauf. :astonished:
nur so zur Info :slight_smile:

@ da Hool

Mux Shield II - DEV-11723 - SparkFun Electronics direkt

oder Vertrieb in Deutschland bsw. über Arduino Boards | elmicro.com

Have fun.

@da Hool

Nur so ein Hinweis:

der 4051 ist, wie schon von anderen erwähnt, nur eine Art Umschalter für die Anlalogwerte.

Da muss du vom Programm aus erst einen Eingang anwählen, dann wird der Analogwert auf den Analogeingang des Arduino geschaltet, dann musst du im Programm den Analogwert auslesen, dann im Programm den nächsten Eingang am 4051 anwählen, im Programm den Analogwert auslesen, dann im Programm den nächsten Eingang am 4051 anwählen...

Der 4051 sendet also nix von allein und über I2C sowieso nicht. Deswegen ist er ja auch so preiswert.
Das Geschwindigkeit ist ganz sicher nicht ein Problem des 4051. Der schaltet wie der Teufel um (unter 1 Microsekunde), sondern die Geschwindigkeit der AD-Wandlung im Controller spielt da eher eine Rolle. Aber diese Zeit brauchst du bei jedem Lesen eines Analogwertes über den Arduino, egal ob mit oder ohne Umschalter vor dem Analogeingang. Vielleicht weiss ja jemand, wie lange ein Aufruf der Funktion analogRead() dauert.

Gruß
Wolfgang

moinsen,

ok, das heißt ich muss es in der software berücksichtigen.

und der max127 braucht das nicht, der sendet direkt über den i2c port? gibts denn die amtels nicht größer?