Arduino Micro nur 20 I/O Pins?

Hallo Leute,

ich habe mich mit dem Arduino Micro beschäftigt und auf der Seite steht das dieser 20I/O Pins besitzt.

Nun schau ich mir dieses Diagramm an:

und zähle 24Pins. Oder gibt es 4 Pins die nicht als I/O genutzt werden können? Ich werde da nicht richtig schlau draus

Hintergrund der Frage:

Ich benötige 14 Digitale I/O Pins, die ich auch auslesen kann, ob HIGH oder LOW und 9 Analoge PINS.

Und wenn ich das richtig gesehen habe müsste die Seriellschnittstelle über USB weiterhin funktionieren da dies im CHIP seperat ist oder?

Ich hoffe ihr könnt mir bei meinem Verständnisproblem weiterhelfen

Hallo, willkommen im Forum!

Weiß zwar nicht genau welches Diagramm du anschaust (vielleicht dieses), aber:
Beim Arduino Micro hast du insgesamt 20 Input/Output-Pins zur Verfügung.
Diese heißen beim Arduino-Micro-Board: 0 bis 13 und A0 bis A5.
Alle 20 können mit digitalen Signalen umgehen (als Input oder Output).
Einige davon können AUCH mit analogen Signalen umgehen (also Input), das sind beim Micro 12.
Die Beschreibung, dass der Micro 20 digitale und 12 analoge Pins hat ist ein wenig irreführend, weil er eben nicht 20 + 12 Pins hat sondern eben nur insgesamt 20.
Der Mikrocontroller-Chip, der am Arduino Micro verbaut ist (ATmega32U4) hat schon noch ein paar mehr Ein- und Ausgänge, diese sind aber nicht so leicht zugänglich (hardware- und softwaretechnisch).

Wenn du wirklich 9 analoge und 14 digitale Pins gleichzeitig brauchst gibt es mehrere Optionen:

  1. Arduino Mega
    54 Inputs/Outputs, davon 16 Analog-Inputs
    Das ist die einfachste Variante, denn du brauchst keine zusätzliche Hardware. Der Arduino Mega ist aber nicht ganz billig :slight_smile: und relativ groß.

  2. Du verwendest einen analogen Multiplexer (zum Beispiel: CD4067), dann wird am Arduino nur 1 analoger Eingang benötigt (und ein paar Steuerpins).
    Ein Portexpander mit I2C oder SPI Interface wäre auch ein Möglichkeit.

  3. Du verwendest Shiftregister zum Einlesen der digitalen Signale (z.B. mehrere SN74LS165). Du brauchst nur 3 digitale Pins und kannst damit viele Digitalsignale auslesen.

Aber beschreibe doch mal deine generelle Aufgabenstellung, vielleicht gibt es ja noch andere Möglichkeiten.

Es gibt auch noch analoge Eingänge, die man über I2C anschließen kann (z.B. PCF8591).

Um zu zu sehen, ob man mit weniger Pins durch geschicktere Ansteuerung der Komponenten oder andere Auswahl auskommen kann, müsstest du dein Projekt vorstellen.

Beim Micro muss man aufpassen, es wird häufig auch der Micro Pro angeboten, der deutlich weniger Pins (4xanalog, 12digitale IO) hat.

Irgendwas hat beim einbinden des Bildes nicht funktioniert... Neuer Versuch

So wie es aussieht in deinem Diagramm kann ich MISO MOSI SCK SS nich manuell auf High oder low setzen? warum soll das so sein.. Ist aus meinem Diagramm nicht zu erkennen

Laut diesem Thread kann diese Leitungen doch nutzen

http://forum.arduino.cc/index.php?topic=383655.0

Zitat:
Also ich hab das heute, als ich endlich die Möglichkeit hatte einfach mal ausprobiert und muss sagen, dass ich alle 4 pins als OUTPUT und bis auf den SS bzw. RX_LED pin auch alle als INPUT nutzen kann.
Vielen Dank trotzdem für die Antworten.

Ich bin verwirrt

Danke

http://pighixxx.com/micropdf.pdf ist kein Bild, kann also nicht mit img-Tag eingebunden werden.

Quelle und arduino-micro-schematic.pdf

Danach ist die Zuordnung wie folgt:

Pin für IDE Name Pin an ICSP
14 (MISO) 1
15 (SCK) 3
16 (MOSI) 4

tausday:
Und wenn ich das richtig gesehen habe müsste die Seriellschnittstelle über USB weiterhin funktionieren da dies im CHIP seperat ist oder?

USB geht über Serial. D0 und D1 werden mittels Serial1 angesprochen. Wenn Du das nicht tust, sind die frei.

Oh, ja, stimmt - ist mir entgangen.

Hab ich auch gleich mal ausprobiert. Hab zwar keinen Micro aber einen Leonardo und der hat den selben Chip (der hat allerdings keinen Anschluss SS herausgeführt, da hängt die RX-LED dran).

So lassen sich die "speziellen" Anschlüsse ansprechen:
14 MISO
15 SCK
16 MOSI
17 SS (RX_LED)

Dann könnte sich das ja doch ausgehen mit dem Micro.

uxomm:
17 SS (RX_LED)

Blinkt die nicht bei Datenübertragung oder welches RX ist da gemeint, also USB oder Serial1? Ich habe keinen Micro frei, wäre nett, wenn Du das testen würdest, dann könnten wir das im kollektiven Forum-Gedächtnis merken. :slight_smile:

Ja, mit "17" lässt sich die RX-LED "ansprechen" beim Leonardo und wohl auch beim Micro.
Also mit

void setup()
{  pinMode(17, OUTPUT);
}

void loop()
{  digitalWrite(17, HIGH);
    delay(300);
   digitalWrite(17, LOW);
   delay(300);
}

kann man die blinken lassen.

Ist aber von begrenztem Nutzen. Bei Kommunikation über USB blikt sie natürlich auch.

uxomm:
Ist aber von begrenztem Nutzen. Bei Kommunikation über USB blikt sie natürlich auch.

Das wollte ich wissen, danke Dir! :slight_smile:

okay also haben wir doch mehr als 20ios oder welche sind laut arduino keine io pins