Antworten:
Haben Sie auch alle Ihre analogen Pins aufgebraucht? Sie können auch als digitaler Ein- / Ausgang verwendet werden, indem sie einfach als digitale Pins der Pins 14 bis 19 bezeichnet werden.
Nachdem Sie auch alle verwendet haben, können Sie einen Schieberegister-IC verwenden. Diese Chips wandeln serielle Daten in parallele Daten um. Die 8-Bit-Versionen nehmen serielle Daten auf drei Pins auf und geben parallele Daten auf 8 Pins aus, sodass Sie 5 zusätzliche Pins erhalten. Eine sehr schöne Erklärung liefert Dave Clausen von NYC Resistor .
Es besteht tatsächlich die Möglichkeit, dass Ihr Arduino überlastet wird. Nicht indem Sie zu viele Stifte verwenden, sondern indem Sie zu viel Strom aus den Stiften ziehen, indem Sie zu viel Material an Ihre Stifte anschließen. Das Atmega168-Datenblatt besagt, dass die Pins einen absoluten Maximalstrom von 40 mA haben. Dies würde zwei parallelen LEDs entsprechen. Mehr als eine LED (20 mA) sollte durch einen Transistor oder ein Transistorarray geschaltet werden. Dies wird auch in dem oben erwähnten Video und von Tom Igoe erklärt .
Sparkfun verkauft einen Digital / Analog-Multiplexer , mit dem 16 Pins von fünf auf dem Arduino gesteuert werden können. Es ist bidirektional, sodass Sie es auch zur Eingabe verwenden können.
Ich habe damit gespielt ... http://www.neufeld.newton.ks.us/electronics/?p=241 Arduino I / O-Erweiterung mit I2C. Sieht sehr vielversprechend aus, ich bin noch nicht dazu gekommen, die Chips zu bestellen. Es ist auch ein wirklich gutes Tutorial zur Verwendung von I2C.
Wenn Sie am Ende einen anderen Mikrocontroller bekommen, mag ich den Sanguino aus mindestens vier Gründen:
Das Arduino Mega hat mehr PWM-Pins - 14, aber ich glaube nicht, dass Sie diese multiplexen würden.
- -
* Sanguino kostet anscheinend 25 US-Dollar, Arduino 30 US-Dollar, obwohl Sie ein USB-zu-TTL-Kabel für 20 US-Dollar benötigen, wenn Sie einen USB-Anschluss zum Programmieren verwenden müssen, in den der Arduino USB integriert hat.
Ich habe eine Bibliothek zur Steuerung von DS2406 1wire-Switches geschrieben.
Mit einem dieser Geräte können Sie einen einzelnen Pin verwenden, um eine viel größere Anzahl von Geräten zu schalten. Es ist natürlich langsamer als das direkte Umdrehen des E / A-Pins und benötigt mehr Speicher, da Sie die Geräte über diesen Port adressieren müssen (dies kann gegen mehr Geschwindigkeit ausgetauscht werden, wenn Sie möchten).
Es gibt viele Möglichkeiten, die Anzahl der verfügbaren Ein- und Ausgänge zu erweitern. Für einen analogen Eingang werden üblicherweise analoge Multiplexer (wie der 4051 , erhältlich als 74HC4051 und CD4051) verwendet, mit denen Sie über 3 digitale Leitungen und 1 analogen Eingang zwischen 8 analogen Quellen wechseln können.
Eine häufig verwendete Option für digitale E / A ist das Hinzufügen von TTL- (oder CMOS-) Schieberegistern. Schieberegister gibt es in zwei Hauptvarianten: "Serial In, Parallel Out" (wie der 74HC595 ), mit denen Sie die Anzahl der digitalen Ausgänge Ihres Projekts erweitern können, und "Parallel In, Serial Out" (wie der 74HC165 ) um weitere digitale Eingänge hinzuzufügen.
Tom Igeo hat einen guten Überblick über die Steuerung vieler Ausgänge eines Mikrocontrollers
Sie können die Ausgabe des Arduino überlasten, indem Sie versuchen, zu weit zu "fanout". Jeder IC, den Sie an einen Ausgang anschließen, zieht Strom von diesem Ausgang. Wenn Sie viele ICs auf denselben Ausgang (oder mehrere Ausgänge) laden, versuchen diese möglicherweise, mehr zu zeichnen, als die Ausgänge des Arduino verarbeiten können. Um dieses Problem zu beheben, können Sie nicht invertierende Pufferchips (wie den 74LS07) zwischen einigen ICs platzieren.
Wenn Sie LEDs fahren, könnten Sie sich mit Charlieplexing befassen.
Dieses Produkt ist eine einfache und kostengünstige Möglichkeit, Ihrem Arduino Stifte hinzuzufügen. Es gibt eine benutzerfreundliche Open Source-Bibliothek für den Zugriff auf die neuen Pins: