Erhöhen Sie die Anzahl der digitalen Pins
Es gibt viele Beiträge, die erklären, wie man mehr als nur die Standardstifte der verschiedenen Arduinos verwendet, aber keiner von ihnen erklärt die Einschränkungen und die Probleme richtig.
Arduino Uno:
1.Sie können die analogen Pins verwenden
Pin 14 = Analog in 0
Pin 15 = Analog in 1
Pin 16 = Analog in 2
Pin 17 = Analog in 3
Pin 18 = Analog in 4
Pin 19 = Analog in 5
digitalWrite(14,HIGH);
or
digitalWrite(A0,HIGH);
2.Sie können nicht beide SDA, SCL & A4, A5 verwenden, da sie im Grunde gleich sind (18,19).
3. Sie können auch TX / RX verwenden.
"Tu es nicht, du unterbrichst die serielle Kommunikation ..."
"Verwenden Sie niemals die Stifte 0 und 1"
"Sie können die TX / Rx-Pins nicht verwenden"
Sie können ... aber Sie müssen Vorsichtsmaßnahmen treffen. Welche?
Es sollte eine serielle Software über USB haben, oder?
Oder breche ich die USB-Serie?
Gibt es interne Chipprobleme, wenn ich TX / RX verwende?
Da ich diese TX / RX-Pins im Code verwende, sollte ich sie wahrscheinlich nicht verwenden Serial.print()
?
Was passiert, wenn ich vergesse, Serial.print()
nach dem Hochladen des Codes, der die Pins 0,1 verwendet , zu entfernen ?
Wie kann man den Arduino / Bootloader per Hardware zurücksetzen, wenn etwas schief geht?
Da es verschiedene andere Arduinos gibt, die unterschiedliche Chips verwenden, gilt das oben Gesagte für alle Atmel-Chips?
Also, was sollte ich wissen, bevor ich diese TX / RX oder vielleicht auch die anderen analogen Pins benutze?
Es gibt billige Schieberegister, PWM-Treiber, LED-Treiber, SPI, i2c und mehr ICs, um Ihre E / A zu erweitern
Aber wenn es keine zu großen Probleme gibt, bedeutet dies, dass das Arduino 20 E / A-Pins hat ...
Sie könnten theoretisch steuern:
17x3 = 51 = 17 RGB leds (multiplexing, pwm sourcing&sinking);
14x6 = 84 leds (multiplexing, pwm on 6 rows/colums );
10x10 = 100 leds (multiplexing, high low);
20x(20-1) = 380 leds (charlieplexing, high low);
// yes it would flicker
Korrigiere mich, wenn ich falsch liege. Das heißt, Sie können 380 "Whatever" mit Dioden und einem Arduino steuern.
quelle
Erstens ist die Zahl 380 für 20 Pins (20 2 - 20) korrekt, jedoch sind die Pins 0 und 1 mit Pull-up-Widerständen am Atmega16U2 verbunden, sodass sie nie wirklich bei 0 V liegen. Wenn Sie eine leere Skizze laden, messen Sie 5 V an den Pins 0 und 1.
Zweitens können Sie nicht 380 "was auch immer" steuern. Sie können 380 LEDs über Charlieplexing steuern. Die Eigenschaft der LED, dass Strom nur in eine Richtung fließt, ist wichtig für die Funktionsweise.
Verwandte Frage Gibt es eine Möglichkeit, mehr als 14 Ausgangspins auf Arduino zu haben?
quelle
Ich kann wegen unzureichender Reputation keinen Kommentar abgeben, möchte aber darauf hinweisen, dass bei der OP-Pinbelegung mindestens ein Pin falsch ist!
PB6 sollte PB5 sein
Ich habe ziemlich viel Zeit damit verbracht herauszufinden, warum ich SCK auf dem Oszilloskop (SPI-Bus) nicht sehen konnte. Ich habe auf niedrigem Niveau gearbeitet, nicht mit der IDE.
Da dies das erste Bild ist, das beim Googeln auftaucht, wollte ich die gleichen Probleme für andere vermeiden ...
quelle