Stifte auf einem Arduino


7

Wenn mir auf einem Arduino die Pins ausgehen, ich kein zweites kaufe oder kein Mega-Board bekomme, gibt es eine Möglichkeit, mehr mit dem einen Board zu verbinden? Muss ich mir Sorgen machen, dass es überlastet wird?

Antworten:


12

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 .


Außerdem hat der ATMega168 einen maximalen Strom von 200 mA durch die Vcc- und Gnd-Pins (jeweils), so dass das Ansteuern oder Versenken von mehr als zehn LEDs durch ein Arduino wahrscheinlich auch eine schlechte Idee ist (angesichts des üblichen Stroms von 20 mA, der zum Leuchten von LEDs verwendet wird).
Lou

5

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.



3

Wenn Sie am Ende einen anderen Mikrocontroller bekommen, mag ich den Sanguino aus mindestens vier Gründen:

  1. Es hat eine Menge mehr E / A als das Atmega 168/368 (32 Universalstifte, von 14). Wie beim Arduino können 8 Pins ADC, 6 PWM, aber es gibt eine zusätzliche serielle Hardware-Schnittstelle.
  2. es ist $ 5 billiger *,
  3. Mit 64K Flash komme ich nie annähernd an Speicherplatz
  4. Sie können es selbst aus einem Bausatz zusammenstellen.

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.


3

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).


3

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.


2

Wenn Sie LEDs fahren, könnten Sie sich mit Charlieplexing befassen.


1

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:

http://nootropicdesign.com/ez-expander/

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.