moinsen Leuz,
hab da ne kurze Frage, gibt es eine möglichkeit, die Analogen In´s des Arduino Mega 2560 zu erweitern. ich bräuchte ca. 24 In´s also 8 mehr als er jetzt kann.
kann man evt zwei chips koppeln?
gruß da hool
Vorschlag: MAX127
12-Bit Analog/Digitalwandler über den I2C-Bus.
moin,
der MAX, der könnt meine Probleme beheben.
http://www.mikrocontroller.net/part/MAX127
ich denk das hier ist er. welch eine Programmierung braucht der I2C Bus?
Ja, etwas Programmierung ist schon nötig.
Aber es gibt hier im Forum oder im Netz etliche Quellen.
Geh mal über die Forumsuche. Da bekommst du eine ganze Menge Posts mit dem Thema.
Schau dir mal diesen Thread an:
http://arduino.cc/forum/index.php/topic,50089.0.html (http://arduino.cc/forum/index.php/topic,50089.0.html)
Ich denke du kommst mit einem Analog Multiplex ala CD4051 schon weit wenn du nichts zeitkritisches hast
Hallo volvodani
Braucht ein CMOS IC der 4000 serie nicht eine symetrisch Versorgungspannung um als Analogmultiplexer verwendet werden zu können?
Grüße Uwe
ahh, jetzt gehts mir zu weit, symetrische versorgungsspannung...
ich muss mal wieder strome und spannungen via 0-5V eingang messen und zeitnah auslesen können. Der momentan angeschlossenen arduino uno schiebt die daten sekündlich hoch, der webserver wirft diese zweisekündlich wieder aus.
das soll er können...
EDIT: http://www.reichelt.de/?;ACTION=3;LA=444;GROUP=A217;GROUPID=2914;ARTICLE=57838;START=0;SORT=artnr;OFFSET=16;SID=15AZyF@KwQAQ8AAGXNyts761ee6498fb89621c34c1836d6f312be
gibts auch noch was billigeres?
Das ist zu Glück bei dem CD4051 nicht so:
Auszug aus dem datenblatt:
DC Supply Voltage (VDD) +5 VDC to +15 VDC
Input Voltage (VIN) 0V to VDD VDC
Er arbeitet ab 5VDC ohne Probleme und man kann ihn auch als Output Digitalen Multiplexer nutzen,aber hat einen On Widerstand von 80Ohm,
hi,
heißt das, ich kann genau das machen, was ich damit machen möchte? also ein spannungssignal von 0-5V anlegen und dieses dann auslesen?
der kost nämlich nur 0,30€
http://www.reichelt.de/?;ACTION=3;LA=444;GROUP=A2211;GROUPID=2924;ARTICLE=12610;START=0;SORT=artnr;OFFSET=16;SID=15AZyF@KwQAQ8AAGXNyts761ee6498fb89621c34c1836d6f312be
Nein . Du kanst ein analog pin multiplexen.
Grüße Uwe
ich multiplexe laso die analog pin´s, muss sie aber später wieder demultiplexen. bringt mir dieser ic überhaupt etwas, denn ich versteh den sinn gerade nicht, sry
Mit dem IC kannst Du an einem Analogpin nacheinander mehrere Signale messen. Mit den 3 Adressleitungen kannst Du einen der 8 Eingänge des 4051 an de Analog Eingang des Arduinos schalten.
http://www.datasheetcatalog.org/datasheets/208/109138_DS.pdf
Uwe
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. :-)
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 :-)
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
http://mayhewlabs.com/products/arduino-mux-shield 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 ;-)
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. :smiley-eek:
nur so zur Info :-)
@ da Hool
http://www.sparkfun.com/products/9832 direkt
oder Vertrieb in Deutschland bsw. über http://elmicro.com/de/arduino.html
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?