Forum: Mikrocontroller und Digitale Elektronik 5Tasten an 3 Ports Matrix


von Karsten K. (karsten42)


Angehängte Dateien:

Lesenswert?

Moin Moin,

Ich habe eine für mich interessante 5 Tasten auf 3 Ports Matrix in einem 
Schaltbild für ein ATMEA 8 gefunden. Leider aber keine Source oder die 
Möglichkeit da heranzukommen.
Hat jemand eine Idee/Code Beispiel wie man so eine Schaltung abfragen 
könnte? Mir machen die Tasten UP/DOWN zu schaffen, da diese jeweils zwei 
Ports "Kurzschließen". Die Anderen ziehen die Ports jeweils auf Masse 
was ja einfach wäre dies zu programmieren( incl folgende Entprellung .. 
)
Eigentlich eine Tastaturanordnung "State of the Art" in sofern müsste es 
schon fertige Lösungen geben oder?

Herzlichen Dank für Hinweise und Tipps.

gruß
Karsten

von Karl H. (kbuchegg)


Lesenswert?

Karsten K. schrieb:

> Eigentlich eine Tastaturanordnung "State of the Art" in sofern müsste es
> schon fertige Lösungen geben oder?

Na ja.

>
> Herzlichen Dank für Hinweise und Tipps.

Da wird heftig mit dem Einsatz von Pullup Widerständen gearbeitet.
Kein einziger der 3 Pins wird je auf Ausgang geschaltet (es sei denn auf 
Ausgang/Low, da müsste man aber nochmal drüber brüten). Externe 1 Pegel 
werden durch das Zu/Weg Schalten der Pullup Widerstände erzeugt.

Zb die ENTER Taste.
Ob die gedrückt ist oder nicht, erfährt man nur, indem man auf PD3 den 
Pullup Zuschaltet und dann nachsieht ob der Pin auf 1 gegangen ist oder 
nicht. Ist er weiterhin auf 0, dann ist ENTER gedrückt. (*)


In gleichem Masse kann man sich Systematiken für die anderen Tasten 
überlegen.

Aber ....
* Ob da tatsächlich alle Fälle eindeutig sind und nie eine Leitung offen 
ist, kann ich auf die Schnelle nicht abschätzen
* Was alles passiert, wenn mehrere Tasten gleichzeitig gedrückt sind und 
ob man zumindest diese Gleichzeitigkeit erkennen kann
... kann ich auf die Schnelle nicht sagen.


Edit: (*)
Aber nur dann, wenn Down und Right nicht auch noch gleichzeitig gedrückt 
sind.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Der Witz ist wohl, PD3 abwechselnd auf Low (Ausgang) oder Eingang mit 
internem Pull-Up zu schalten. So kann man dann die Schalter, die an 
denselben µC-Pin führen, auseinanderhalten.

von Norbert (Gast)


Lesenswert?

Schöne Fleißaufgabe!
5 Taster ergeben 2^5 Möglichkeiten. Drei Tasten erzeugen bei Betätigung 
festverdrahtete Pegel, zwei brauchen Softwareinteraktion.

Da bietet sich doch eine Tabelle an um die ganzen Phantomtasten 
herauszufinden die sich bei Mehrfachbetätigung ergeben.

von Norbert (Gast)


Lesenswert?

Ich sehe gerade noch eine Möglichkeit für eine sechste Taste!

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Einfacher wäre es, mit Analogtasten zu arbeiten (jede Taste schaltet
einen eigenen Widerstand in einem Spannungsteiler an einem ADC-
Eingang), da braucht man nur 1 Leitung und viel weniger Software-
Interaktion.

von Norbert (Gast)


Lesenswert?

Jörg Wunsch schrieb:
> Einfacher wäre es, mit Analogtasten zu arbeiten (jede Taste schaltet
> einen eigenen Widerstand in einem Spannungsteiler an einem ADC-
> Eingang), da braucht man nur 1 Leitung und viel weniger Software-
> Interaktion.

Laaaangweilig ;-)))

Habe gerade noch drei weitere Tasten untergebracht (insgesamt neun) wenn 
man bereit ist drei Dioden zu opfern.

von Harald W. (wilhelms)


Lesenswert?

Norbert schrieb:
> Ich sehe gerade noch eine Möglichkeit für eine sechste Taste!

Mit drei digitalen Eingängen kannst Du normalerweise sieben
Zustände plus Null dekodieren. Wenn man noch mehr Tasten braucht,
geht das nur mit irgendwelchen Trickschaltungen.
Gruss
Harald

von Norbert (Gast)


Lesenswert?

Harald Wilhelms schrieb:
> Mit drei digitalen Eingängen kannst Du normalerweise sieben
> Zustände plus Null dekodieren. Wenn man noch mehr Tasten braucht,
> geht das nur mit irgendwelchen Trickschaltungen.
> Gruss
> Harald

Das ist der Unterschied zwischen Theorie und Praxis.
Ich kann mehr und das ist sogar beweisbar!

von Norbert (Gast)


Lesenswert?

Kleine Hilfestellung:

Du gehts bei deiner Berechnung von drei Eingängen aus.
Wir haben hier aber deutlich mehr als drei Eingänge

von Norbert (Gast)


Lesenswert?

Update: 12 Tasten bei Einsatz von sechs Dioden.

von Peter D. (peda)


Lesenswert?

Norbert schrieb:
> Update: 12 Tasten bei Einsatz von sechs Dioden.

Ich kommen nur auf 9 Taster mit 3 Dioden.


Peter

von Harald W. (wilhelms)


Lesenswert?

Norbert schrieb:
> Harald Wilhelms schrieb:
>> Mit drei digitalen Eingängen kannst Du normalerweise sieben
>> Zustände plus Null dekodieren. Wenn man noch mehr Tasten braucht,
>> geht das nur mit irgendwelchen Trickschaltungen.
>> Gruss
>> Harald
>
> Das ist der Unterschied zwischen Theorie und Praxis.
> Ich kann mehr und das ist sogar beweisbar!

Ja, mit Trickschaltungen, die die besonderen Eigenschaften
von µP-Ein/Ausgängen ausnutzen. Mit normalen Binäreingängen
gehen nur die von mir beschriebenen 2 hoch 3 Möglichkeiten.
Da helfen auch drei Beiträge nacheinander nichts. :-)
Gruss
Harald

von Norbert (Gast)


Lesenswert?

Harald Wilhelms schrieb:
> Ja, mit Trickschaltungen, die die besonderen Eigenschaften
> von µP-Ein/Ausgängen ausnutzen. Mit normalen Binäreingängen
> gehen nur die von mir beschriebenen 2 hoch 3 Möglichkeiten.
> Da helfen auch drei Beiträge nacheinander nichts. :-)
> Gruss

Keinerlei Trickschaltungen, nur (im Sinne von ausschließlich) Dioden!

Ich bin übrigens gerade dabei noch mehr unterzubringen, muß ich mir aber 
erst noch selbst bestätigen;-)

Ich werde natürlich Heute oder Morgen das Ergebnis zum 'scrutineering' 
posten ;-)

@Peter Dannegger

Stimmt, hatte ich um 14:45 auch:-)

von Norbert (Gast)


Lesenswert?

Update:

Bin mir ziemlich sicher, das ich gerade 16 einfache Taster untergebracht 
habe;-)

Brauche allerdings auch 15 Dioden. Mit normalen Bordmitteln habe ich 
jetzt - so glaube ich - das Ende der Fahnenstange erreicht.

Ab jetzt müsste man mit

> mit Trickschaltungen, die die besonderen Eigenschaften
> von µP-Ein/Ausgängen ausnutzen.

weitermachen, aber das spare ich mir.

von Peter D. (peda)


Lesenswert?

Norbert schrieb:
> Stimmt, hatte ich um 14:45 auch:-)

Jetzt sinds bei mir auch 12 Tasten + 6 Dioden.


Peter

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Peter Dannegger schrieb:
> Jetzt sinds bei mir auch 12 Tasten + 6 Dioden.

Na, das wird aber wieder 'ne nette Entprellroutine ;-)

Gruß,

Frank

von amateur (Gast)


Lesenswert?

Es liegt in der Natur einer Tastenabfrage via Matrix, dass das Erkennen 
von Doppelbetätigungen ein Problem für sich ist. Dabei ist es 
unerheblich ob dies aus Spaß (gucken wir mal was passiert) oder aus 
Versehen (zwei Tasten dicht beieinander) passiert.
Bei wenig Tasten kann tatsächlich, so ein A/D-Wandlereingang übrig ist, 
mit geschalteten Widerständen, eine Abfrage realisiert werden. Durch 
geschickte Wahl der Widerstände kann sogar eine Doppelbetätigung 
herausgefiltert werden.

von Norbert (Gast)


Lesenswert?

Peter Dannegger schrieb:
> Jetzt sinds bei mir auch 12 Tasten + 6 Dioden.

Na komm, vier gehen noch...


Bild meiner Schaltung hab' ich schon mal handgemalt...

von Peter D. (peda)


Angehängte Dateien:

Lesenswert?

Hier erstmal die 5 Tasten 2 Dioden an 2 Pin Schaltung.

Peter

von Norbert (Gast)


Angehängte Dateien:

Lesenswert?

Na gut, delivery time!

16 Tasten, drei I/Os

von Achim M. (minifloat)


Lesenswert?

Norbert schrieb:
> Na gut, delivery time!
>
> 16 Tasten, drei I/Os

Unendlich viele Tasten, zwei GPIO.
mfg mf

PS: Die Schaltung wäre aber schon halb-analog. Dabei hängt der 
"Analogteil" aber nicht mit den Tasten zusamen, wie bei der ADC-Lösung, 
die mit nur einem Pin auskommt.

von Norbert (Gast)


Lesenswert?

Mini Float schrieb:
> Unendlich viele Tasten, zwei GPIO.
> mfg mf

Du bist dir aber schon darüber im Klaren das selbst die Hälfte von 
'Unendlich' schon eine enorme Menge ist, oder? ;-)

von Jens (Gast)


Lesenswert?


von Achim M. (minifloat)


Lesenswert?

Norbert schrieb:
> Mini Float schrieb:
>> Unendlich viele Tasten, zwei GPIO.
>> mfg mf
>
> Du bist dir aber schon darüber im Klaren das selbst die Hälfte von
> 'Unendlich' schon eine enorme Menge ist, oder? ;-)

Willst du damit denn sagen, dass ich lüge?
Oder muss ich erst die Schaltung dazu herzeigen?
mfg mf

von Norbert (Gast)


Lesenswert?

Jens schrieb:
> Beitrag "6 IO Pins für 6 Taster und 2 Duo LED (Bauteile z.B. von Pollin)"
>
> JJ

Hab jetzt nur flüchtig darübergeschaut, aber ich denke sechs LEDs bringe 
ich in der 16Tasten3 Schaltung auch noch unter ohne mich krumm zu 
machen.

von Norbert (Gast)


Lesenswert?

Mini Float schrieb:
> Willst du damit denn sagen, dass ich lüge?
> Oder muss ich erst die Schaltung dazu herzeigen?
> mfg mf

Jaja, Draht zum Mond, einen Taster auf halber Strecke und einen auf dem 
Trabanten. Wenn das am I/O Pin1 generierte Signal nach ca. 1Sekunde am 
Pin2 zurückkommt, war's der Taster auf halber Strecke.
Wenn's zwei Sekunden dauert, hat jemand auf dem Mond gedrückt.

usw. ;-)

von Jens (Gast)


Lesenswert?

>>16Tasten3 Schaltung auch noch unter

man bedenke, jede Taste ist bei der Schaltung und Ansteuerung separat 
abfragbar, es können mehrere auf mal gedrückt werden...

JJ

von Norbert (Gast)


Lesenswert?

Jens schrieb:
>>>16Tasten3 Schaltung auch noch unter
>
> man bedenke, jede Taste ist bei der Schaltung und Ansteuerung separat
> abfragbar, es können mehrere auf mal gedrückt werden...
>
> JJ

Wie gesagt, ich hatte nur kurz darüber geschaut ohne es genauer zu 
analysieren..

Ich habe diese Übung hier auch mehr als Gedankenexperiment angesehen, 
die 16 Tasten erzeugen bei Mehrfachbetätigung phänomenale 
Phantomeffekte;-)
Damit wäre so etwas wohl nur in selektierten Einzelfällen zu gebrauchen.

Die nächste Gedankenübung wäre wohl, die Anfälligkeit einzelner Tasten 
für Phantomeffekte zu untersuchen und sie entsprechend räumlich 
anzuordnen um diese Effekte zu detektieren und minimieren.

von Achim M. (minifloat)


Lesenswert?

Jens schrieb:
> man bedenke, jede Taste ist bei der Schaltung und Ansteuerung separat
> abfragbar, es können mehrere auf mal gedrückt werden...

Das kann ich auch ... sogar ohne Raumfahrttechnik.

Ich nehme einen oder beliebig viele 74HC595. Die Latch-Eingänge werden 
mit so einer Mimik hier bedient:
1
         +-----------------------------------o Clock zu den '595ern
2
         |   ___ R1
3
  VCC o--(--|___|---------+      ___ Schmitt-
4
         |   ___ R2       |     |   |Trigger
5
Clock o--+--|___|---|<|---*-----| 1 |--------o Latch zu den '595ern
6
                          |     |___|
7
                        C =
8
                          |
9
  GND o-------------------+
R1, R2 und C müssen natürlich auf das verwendete Timing angepasst 
werden.
R2 klein genug, um schnell genug entladen zu können.
R1 groß genug, damit der Latch zu den 595ern erst nach ca. 8 Bitlängen 
kommt.
C klein genug, um den Clockausgang nicht zu überlasten.
mfg mf

von Norbert (Gast)


Lesenswert?

Mini Float schrieb:
> Jens schrieb:
>> man bedenke, jede Taste ist bei der Schaltung und Ansteuerung separat
>> abfragbar, es können mehrere auf mal gedrückt werden...
>
> Das kann ich auch ... sogar ohne Raumfahrttechnik.

Ja, aber Jens konnte es ohne zusätzliche Digitalbausteine und darum ging 
es hier im Thread (spätestens seit kurz vor drei Uhr)

Mit IC Gräbern ist natürlich alles Mögliche möglich! (Auf die 
Formulierung bin ich Stolz)

von Mikel M. (mikelm)


Lesenswert?

Norbert schrieb:
> Na gut, delivery time!
>
> 16 Tasten, drei I/Os


 Da es nichts gibt, was man nicht noch verbessern könnte, warum hast du 
soviel Dioden verschwendet :D

z.B. T12+T15, T9+T11, T8+T14 kämen mit je einer gemeinsamen Diode aus.

von Norbert (Gast)


Lesenswert?

Mikel M. schrieb:
> z.B. T12+T15, T9+T11, T8+T14 kämen mit je einer gemeinsamen Diode aus.

Absolut korrekt, drei könnte man sparen.
Ich hatte es in identischen Funktionsblöcken gezeichnet damit die 
erforderliche Softwarelogik besser visualisiert werden kann.
Man könnte auch sagen, ich war zu faul den erforderlichen Algorithmus 
niederzuschreiben;-)

von Mikel M. (mikelm)


Lesenswert?

Mini Float schrieb:
> Jens schrieb:
>> man bedenke, jede Taste ist bei der Schaltung und Ansteuerung separat
>> abfragbar, es können mehrere auf mal gedrückt werden...
>
> Das kann ich auch ... sogar ohne Raumfahrttechnik.
>
> Ich nehme einen oder beliebig viele 74HC595.

Da Du gesagt hast unendlich nehme ich Dich da auch beim Wort, nehme also 
unendlich viele.
 So da wir die Tasten ja auch benutzen wollen, müssen wir sie abfragen. 
Leider benötigt deine Lösung schon bei der Abfrage ob eine der unendlich 
vielen Tasten gedrückt ist schon unendlich lange, terminiert also nicht. 
Damit erkläre ich die Lösung für unbrauchbar.

von Karsten K. (karsten42)


Lesenswert?

Hey, ein Gedankenexperiment?
Ich bin Hin und Weg über den Wettbewerb! Mir ist aber nicht klar 
geworden wie nun die drei Leitungen abgefragt werden. Interne Pull-up: 
Das hatte ich übersehen, dass man die ja auch ein/ausschalten kann.
Also in etwa:
Alle Pull-Up ein, alle Leitungen auf Eingang.
Nachsehen ob eine der drei Eingänge auf LOW liegt ( dann ist die entspr. 
Taste gedrückt)
Um aber jetzt die Taste UP/DOW zu erkennen, müsste ich jeweils eine 
Leitung als Ausgang beschalten und auf LOW setzten. Die "komplementäre" 
Leitung muss dann auf Eingang mit Pull-Up sein.

Würde das so gehen?

Gruß
Karsten

von Norbert (Gast)


Lesenswert?

Na gut, wenn ich schon male, dann muß ich auch erklären;-)

Alle Pull-Up ein, alle Leitungen auf Eingang.

  Wenn In0|In1|In2 == 0:
    irgendeine der Tasten T0 - T6 gedrückt
    In0 == 0:        ==> T0
    In1 == 0:        ==> T2
    In2 == 0:        ==> T4
    In0 == 0 && In1 == 0:      ==> T1
    In1 == 0 && In2 == 0:      ==> T3
    In0 == 0 && In2 == 0:      ==> T5
    In0 == 0 && In1 == 0 && In2 == 0:    ==> T6
  Sonst:
    I/O0 auf Output Out0:0, I/O1 auf Input
    In1 == 0:        ==> T7 oder T9
    I/O0 auf Input, I/O1 auf Output Out1:0
    In0 == 0:        ==> T7 oder T8

    Wenn beide Male T7 detektiert wurde, war's auch T7,
    sonst T8 oder T9 oder keine.

Für die anderen logischen Blöcke wiederholen

von Norbert (Gast)


Lesenswert?

>>  Wenn In0|In1|In2 == 0:
Diese Zeile ist unklar, sie soll bedeuten:

Wenn In0 == 0 || In1 == 0 || In2 == 0:

von Mikel M. (mikelm)


Lesenswert?

Wobei man bei Norbert Schaltung auch noch dazu sagen muß, das man nur 
einen vernünftigen Wert bekommt, wenn nur genau eine Taste gedrückt 
wird.
 Man kann nicht eindeutig erkennen ob zwei oder mehr Tasten gedrückt 
sind. z.B. wenn man T8 und T9 gleichzeitig drückt, wird T7 gemeldet. 
Wenn T7 gedrückt ist kann man einerlei Aussage über die Taste T8 oder T9 
machen.
 Das Problem wurde oben ja schon angedeutet mit Phantomeffekte.
 Darum sollte man bei so einer Schaltung sich die Belegung der Tasten 
gut überlegen.
 ungünstige Beispiele: T8 soll Temperatur anzeigen, T9 Spannung 
anzeigen, T7 ist notaus. wenn T8 klemmt und jemand Spannung anzeigen 
will, gibts nen notaus. Genauso ungünstig wenn t9 notaus ist, t8 ist 
gedrückt (z.b. defekt) dann funktioniert der notaus nicht mehr.

 Ich bevorzuge normalerweise Tastenfelder bei denen man 2 gedrückte 
eindeutig erkennen kann, und bei mehr als 2 feststellen kann das mehr 
als 2 gedrückt wurden. ... aber es kommt immer auch die Anwendung an.

von Karsten K. (karsten42)


Lesenswert?

Juuuchuuu!
Dann habe ich das Prinzip soweit verstanden. Vielen Dank Jungs! Ist 
immer wieder erfrischend und sehr nett hier!

Gruß
Karsten

von Jobst M. (jobstens-de)


Lesenswert?

Norbert, Du warst nicht konsequent!

Zwischen den 3 Leitungen lassen sich noch Taster mit 2 Dioden 
unterbringen!

So gehen noch mindestens 3 Taster! ;-)


Gruß

Jobst

von Norbert (Gast)


Lesenswert?

Ist mir gestern Abend, als die Zahnbürste im Gesicht steckte, auch noch 
eingefallen. Da war der Rechner aber schon aus.

Wir können somit 6 weitere Tasten unterbringen und sind damit bei:

Drei Portpins / 22 Tasten

Gleichzeitig nähern wir uns damit - wenn auch vorsichtig - dem Zustand, 
welcher bereits im OP angesprochen wurde:

    *"State of the Art"*


PS. Auch wenn die Aufgabenstellung es nicht beinhaltet, es würden sich 
noch sechs unabhängig steuerbare LEDs anschließen lassen.

von Hannes (Gast)


Lesenswert?

ich suche noch etwas für 6 Tasten und 2 Duo LED an 4 Portpins. Die hier 
verlinkte Schaltung geht ja leider nur mit 5 Portpins. Es sollen alle 
Tasten getrennt erkennbar sein...

Ich sehe aber indiesem Schaltplan:

Beitrag "6 IO Pins für 6 Taster und 2 Duo LED (Bauteile z.B. von Pollin)"

keine Kürzungsmöglichkeiten mehr... Vielleicht hat hier noch jemd. eine 
Idee?

Hannes

von Norbert (Gast)


Lesenswert?

Hannes schrieb:
> ich suche noch etwas für 6 Tasten und 2 Duo LED an 4 Portpins. Die hier
> verlinkte Schaltung geht ja leider nur mit 5 Portpins. Es sollen alle
> Tasten getrennt erkennbar sein...

Wenn du mit 'getrennt' meinst das auch mehrere/alle gleichzeitig 
gedrückten Tasten erkannt werden, dann

1) überlege doch einmal wieviele Informationen du darstellen must um das 
zu bewerkstelligen.

2) Im Anschluss vergleichst du das Ergebnis mit den Möglichkeiten die 
dir 4 I/Os geben.

3) sei entäuscht ;-)

von Norbert (Gast)


Lesenswert?

Streiche Punkt 3)

Sechs Tasten geht, Lösung lässt sich aus den weiter oben gezeichneten 
Schaltungen ableiten! ;-)

von Hannes (Gast)


Lesenswert?

1) naja, das ist ja immer so eine Sache. letztendlich kann ich über 4 
Pins 16 Zustände darstellen. Jedoch haben wir ja jetzt egrade gelernt 
das mit einem Trick auch 3 reichen. Genau wie beim Charlieplexing auf 
mal mit 9 Pins 9-7Segmentanzeigen steuerbar sind...

2) vielleicht ist noch ein Trick in der Kiste der übersehen wurde... 
zwischen den 4 Leitungen gibt es jedenfalls 6 Verbindungsmöglichkeiten, 
nur bekomme ich dann die LEDs nicht mehr dazwischen...

3) die Hoffnung stirbt zuletzt.
Hannes

von Norbert (Gast)


Lesenswert?

Du darfst die LEDs nicht getrennt von den Tasten betrachten, dazu hast 
du nicht wirklich genug I/Os.

Noch's kleiner Tip. Für den kurzen Moment der Tastenabfrage zeigen die 
LEDs nicht das an was du haben willst (aber nur für ein paar µs)

von Hannes (Gast)


Lesenswert?

>>Sechs Tasten geht

wie?

>>Du darfst die LEDs nicht getrennt von den Tasten betrachten

wird ja auch nicht gemacht, es sind nur keine Zustände mehr frei...

eine Sache fällt mir noch ein, doppelverbindungen zwischen den punkten

A >taste1 B
A <taste2 B

B >taste3 C
B <taste4 C

C >taste5 D
C <taste6 D

D >LEDA 1/2 B
D <LEDA 2/2 B

C >LEDB 1/2 A
C >LEDB 2/2 A

Aber dann habe ich durch die LEDs eine Verbindung zwischen den Punkten A 
und C sowie B und D was zu Problemen mit der Tastenabfrage führen 
wird...


Hannes

von Hannes (Gast)


Angehängte Dateien:

Lesenswert?

so...

lass mich nicht dumm sterben.

Hannes

von Norbert (Gast)


Lesenswert?

Schaltung ist ja fast schon komplett.

Du musst jetzt nur noch dafür sorgen, das die LEDs nicht die Pegel zu 
weit runterziehen.

Wenn die I/Os auf Input mit Pull-up gesetzt sind, würde sich 
normalerweise ein (Taster offen) ein High Pegel ergeben. V_ih_ muss laut 
Datenblatt beim m8 min. 0,6*Vcc sein.
Bei Vcc == 5V wären das min. 3V.

Die LEDs in deiner Schaltung würden aber V_ih_ auf ca. 1,8V ziehen und 
damit die Tastenauswertung verhindern.

Also muß man dafür sorgen, das die LEDs das Potential nicht auf weniger 
als 3V ziehen. (Dioden in Serie bis passt) und dann die Vorwiderstände 
anpassen.

Schon geht's

von Norbert (Gast)


Lesenswert?

Ach ja, in der alternativen Version würde man die vier LEDs jeweils über 
einen R mit der Anode auf Vcc und mit den vier Kathoden auf die vier 
Eingänge legen.

Ein Output Low lässt die Dinger leuchten und für die paar Mikrosekunden 
der Tastaturabfrage schaltet man die I/Os eben wie man's braucht.

Ist eigentlich sogar noch eleganter als meine erste Version.

von Hannes (Gast)


Lesenswert?

...ich habe noch mal drüber nachgedacht. Wenn ich Taster oben links und 
oben mitte gedrückt halte, kann die LED nicht mehr leuchten... oder?

Es sind Duo LEDs mit 2 Pins, da kann man die Anode nicht auf Vcc 
legen...

Hannes

von Norbert (Gast)


Lesenswert?

Hannes schrieb:
> ...ich habe noch mal drüber nachgedacht. Wenn ich Taster oben links und
> oben mitte gedrückt halte, kann die LED nicht mehr leuchten... oder?

Darum kann man diese Art von Schaltungen auch nur mit Tastern und nicht 
mit Schaltern nutzen.

Für die (kurze) Dauer der Betätigung werden die LEDs nicht wie 
programmatisch geplant angesteuert.

von Hannes (Gast)


Lesenswert?

...:-) das ist aber bei der mit 5 pins anders. Sie ist darauf ausgelegt 
einen Taster für eine Schnelllauffunktion gedrückt zu halten, das geht 
auch mit >1 gleichzeitig, trotzdem funktionieren die LED. Da steckt 
schon viel Schmalz dahinter, denkt man bei so einer übersichtlichen 
Aufgabe eigentlich garnicht...

Ich denke das ist mit 4 Pins einfach nicht machbar, zumindest nicht wenn 
man nur Dioden nutzt...

Hannes

von Norbert (Gast)


Lesenswert?

Tja, so ist das. Jede Aufgabe braucht eine eigenständige, auf sie 
zugeschnittene Lösung.

von Hannes (Gast)


Lesenswert?

>>Jede Aufgabe braucht eine eigenständige, auf sie zugeschnittene Lösung

Naja, meistens gibt es eine Lösung die immer passt, wenn sie das Maximum 
an dem was denkbar ist einfach mit bringt. Bei Tasten und LEDs in einer 
zusammenschaltung ist es gegeben wenn:

sich jede LED unabhängig und zu jeder Zeit ansteuern lässt.
sich jede Taste unabhängig und zu jeder und für jede Zeit betätigen und 
separat auswerten lässt.

So eine Schaltung suche ich für 6 Tasten und 2 Duo LEDs an 4 Portpins. 
Zugabe maximal Hühnerfutter wie beim 5 Tasten Beispiel...

Hannes

von Norbert (Gast)


Lesenswert?

Hannes schrieb:
> Naja, meistens gibt es eine Lösung die immer passt, wenn sie das Maximum
> an dem was denkbar ist einfach mit bringt.

Da möchte ich widersprechen, eine solche Lösung ist bestenfalls 
universell, kann aber nur in einem Spezialfall optimal sein. Die 
Spezialfall ist dann gegeben, wenn die Anforderungen sich präzise mit 
der angebotenen Lösung decken.

> sich jede LED unabhängig und zu jeder Zeit ansteuern lässt.
> sich jede Taste unabhängig und zu jeder und für jede Zeit betätigen und
> separat auswerten lässt.

Nur dann, wenn man das auch genau so braucht!

Andere Anforderungen könnten jedoch auch sein:
1) Weniger genutzte I/Os
2) Mehr Tasten
3) weniger Softwareoverhead (timing/flash)
...
Ich all solchen Fällen muß man eine Speziallösung schneidern.

von Hannes (Gast)


Lesenswert?

ok, wenn man es so sieht :-)

Nunja, dann muss ich wohl mal weitertüfteln bis ich alles durch habe :-)

Dank dir trotzdem! :-)

Hannes

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.