Spricht etwas gegen pinMode wechsel im Betrieb?

HI,

folgendes Problem ich möchte einige Buttons abfragen und wenn sie gedrückt wurden soll für eine gewisse zeit eine dem Button zugeordnete LED leuchten.
Kurzgefasst Button -> push -> LED on -> delay -> LED off

Soweit so gut das ist ja eigentlich keine Herausforderung nun sind es aber 6 Taster und 6 LED's was also zwölf I/O Ports benötigen würde. Das ist eigentlich ja auch noch kein Problem da wir ja 13 Digital I/O's zur Verfügung haben. Nun will ich aber die zwei RX/TX Ports frei lassen weil der Button druck an einen PC gesendet wird außerdem würde ich auch gerne den 13er Port freilassen. und schon sind es nur mehr 10 Ports.
Jetzt wäre eine mögliche Lösung für die zwei fehlenden Pins einfach die Analogen zu nehmen. Dies finde ich aber nicht sehr elegant daher habe ich weitere Überlegungen angestellt und habe mir gedacht ich könnte doch die LED am selben Pin hängen lassen wie den Taster. Nachteil wäre natürlich so lange die LED leuchtet ist der Taster funktionslos. Wenn ich mir das Schaltungstechnisch ansehe sollte es kein Problem geben wenn ich den pinMode umschalte.
Gibt es einwände oder elegantere Lösungen?

thx

Du kannst dir auch eine Port-Erweiterung basteln. Entweder mit Schieberegistern oder über I2C.

LordN1kon:
HI,

folgendes Problem ich möchte einige Buttons abfragen und wenn sie gedrückt wurden soll für eine gewisse zeit eine dem Button zugeordnete LED leuchten.
Kurzgefasst Button -> push -> LED on -> delay -> LED off

Soweit so gut das ist ja eigentlich keine Herausforderung nun sind es aber 6 Taster und 6 LED's was also zwölf I/O Ports benötigen würde. Das ist eigentlich ja auch noch kein Problem da wir ja 13 Digital I/O's zur Verfügung haben. Nun will ich aber die zwei RX/TX Ports frei lassen weil der Button druck an einen PC gesendet wird außerdem würde ich auch gerne den 13er Port freilassen. und schon sind es nur mehr 10 Ports.
Jetzt wäre eine mögliche Lösung für die zwei fehlenden Pins einfach die Analogen zu nehmen. Dies finde ich aber nicht sehr elegant daher habe ich weitere Überlegungen angestellt und habe mir gedacht ich könnte doch die LED am selben Pin hängen lassen wie den Taster. Nachteil wäre natürlich so lange die LED leuchtet ist der Taster funktionslos. Wenn ich mir das Schaltungstechnisch ansehe sollte es kein Problem geben wenn ich den pinMode umschalte.
Gibt es einwände oder elegantere Lösungen?

thx

Du rechnest falsch. Die Pins gehen von 0 bis 13 (also 14 Pins) bzw können die analigen Eingänge auch als Digitale Pins verwendet werden und werden dann pin 15 bis 19.
Also ohne RX/TX und pin 13 sind das dann 11 Pins.
Die analogen dazugenommen sind das dann 17 freie Pins.

Die Eingänge doppeltbenutzen für Taster und LED ist nicht sinnvoll da dadurch entweder ein Ausgang kurzgeschlossen wird oder der Taster nicht richtig erkannt wird.

Außer Schieberegister oder Port Expander zu verwenden kann man auch:
Tasten multiplexen ( 2x3 Matrix ) - 5 Pins.
Charlieplexing der LED 6 - 3 Pins Charlieplexing - Wikipedia
Analoges einlesen der Tasten 1 analoger Eingang. zB Tastenmatrix auslesen über nur 2 Leitungen - Mikrocontroller.net ~~http://www.blueglobus.com/gewusst-wie-1-arduino-eingang-5-schaltflachen-zugreifen.html~~

Grüße Uwe

uwefed:
http://www.blueglobus.com/gewusst-wie-1-arduino-eingang-5-schaltflachen-zugreifen.html

@Uwe:
Steht auf der verlinkten Seite bei Dir auch solche Lyrik wie bei mir:

Wie wir durch sie, die ich erläutern werde, was Sie wissen gehen müssen, Hintergrund-Informationen so so lange, wie Sie eine Schaltfläche blinken können lesen einen Schalter und einen Analogeingang zu lesen, werden Sie gut. Wenn Sie diese nicht, werde ich Sie in die richtige Richtung als auch die entsprechenden Schritte zeigen.

Hast Du das hier gerade eben verlinkt?
Oder sehe nur ich dieses offenbar von einem Translator-Programm aus einer unbekannten Sprache generierte Krass-Quatsch-Deutsch auf der Seite und Du siehst irgendwas anderes, das mehr Sinn ergibt?

Also bei mir kommts auch. Da haben wir wieder diese tolle Übersetzung

Wenn ((millis()-lastDebounceTime) [[: GT:]] DebounceDelay) {}

@ Jurs
Ja, hab ich verlinkt, werde es aber jetzt durchstreichen.
Die Teileliste war ok, die Sprache war Deutsch und so habe ich nicht den ganzen Artikel durchgelesen und Blödsinn verlinkt.
Entschuldigt bitte alle.
Uwe =( =( =(

Die analoge Auswertung der Tasten wird auch bei den diversen LCD-shields mit keypad verwendet. Da könnte man sich abgucken, welche Widerstandswerte man bräuchte, damit man auch mehrere gleichzeitig gedrückte Tasten erkennen kann.

ich finde diese utomatischen Translator einfch göttlich, was da immer für ein Stuss bei rumkommt .... :grin:
Gibt es so was auch von deutsch direkt nach chinesisch mit ähnlich krasser Logik ?
Dann könnte man die Ping-Pongs auch mal mit lustigen Artikel bombardieren. ]:smiley:

Damit man erkennen kann wenn mehrere Tasten gedrückt wurden dann ist das R-2R Netzwerk die beste Wahl:

(vollens durchgelesen und als "kein Blösinn" eingestuft)
Grüße Uwe