Hallo, ich plane eine Tastaturmatrix mit 2 Feldern a 5x4. somit 40 Digitaster mit LED. Das ganze nach dem Atmel Beispiel http://www.atmel.com/dyn/resources/prod_documents/doc1232.pdf Der Grundgedanke ist, das ein Taster gedrückt wird, und die dazugehörige Taster LED leuchtet. Wird dann ein anderer Taster betätigt, erlischt die erste LED und die 2te wieder zum Diditaster gehörende LED leuchtet. Somit ist immer der zuletzt gedrückte Taster ersichtlich. das drücken von 2 Tastern gleichzeitig, macht erstmal keinen Sinn. Im End hatte ich an flip flops für die LEDs gedacht? vermutlich gibt es auch eine bessere Lösung die ich noch nicht kenne. Gruß Thorsten
Hmmm ... da fallen mir die Stichworte Diodenmatrix und Tastenmatrix ein. Warum nicht LED und Taster in einer Matrix betreiben? Wenn Du die Dioden parallel zum Taster anschließt - mit Vorwiderstand natürlich - dann kann deine Matrix beides: 1. die Taster auslesen 2. die Dioden zum Leuchten animieren Natürlich abwechselnd. Das einzige Problem ist, daß die Diode im Moment des Tastendrucks nicht leuchten wird, da sie vom Schalter überbrückt wird ... es sei denn man spendiert dem Schalter auch einen Vorwiderstand. 5x4 heißt ja, dass Du 4 Ausgänge und 5 Eingänge (oder umgekehrt) brauchst um das Tastenfeld zu lesen. Man wählt von den Ausgängen ein Bit aus, das auf 1 gesetzt wird und schaut am Eingang nach, wo ne 1 ankommt. Damit weiß man dann, welche Taste gedrückt wurde. Wenn Du nun noch kurz den einen Eingang auf Ausgang umschaltest und ne 0 ausgibst, dann kann die entsprechende LED leuchten - und nur die. Jetzt muss Du Dir nur noch merken bei welcher Kombination das war und wiederholst die Ausgabe mit jedem Tatsatur-lese-zyklus, solange bis eine andere Taste gedrückt wurde.
So habe ich es vermutet, da ich ein Beispiel mit einem Display zu den Tastern gefunden hatte. Da ich recht frisch bin mit dieser Materie, ist mir nicht klar, wie das ganze logisch verknüpft wird. Das die LED im Tastmoment nicht leuchtet ist egal. In diesem Moment ist die LED eh durch den Finger verdeckt ;-) -vermutlich macht es sinn erstmal eine kleine matrix zu bauen. 2x2, da ich nacher das ganze mit DMX verknüpfen möchte sowie das Tastenfeld umschalten möchte, sodas die Taster dann einen anderen wert ausgeben können. somit klein Anfangen und testen. progs du in Assembler? Gruss THORSTEN
Du weißt, wie eine Matrix aussieht! In Deinem Fall 4 Zeilen und 5 Spalten. An jedem Kreuzungs-Punkt werden jetzt die Taster und Dioden (mit ein paar Widerständen) verbunden: Ps1 |__ | | S D |_| | R1 |_____Pz1 | R2 | | - Gnd Ps1 = Port-Pin für Spalte 1 Pz1 = Port-Pin für Zeile 1 S=Taster D = Leuchtdiode R1 = Vorwiderstand der LED (wird so berechnet, daß der gewünschte Strom fließt / natürlich nur max. das, was der Controller Pin verkraften kann) R2 = Pull-Down zum Auslesen der Matrix. Der wiederum muss so groß sein, dass die LED nicht leuchtet. Der Controller geht nun alle Spalten-Pins der Reihe nach durch und gibt da ne 1 aus. Im ersten Schritt sind die Spalten Pins auf Eingang geschaltet und werden durch den Pull-Down auf 0 gehalten. Nur wenn in der gerade aktuellen Spalte eine Taste gedrückt wurde, dann ist der entsprechende Zeilen-Eingang 1. Wird eine 1 gefunden, dann merken und weiter mit dem nächsten Spalten-Pin. Wird keine 1 gefunden, dann schaut man nach, was man sich im letzten Durchgang für diese Spalte gemerkt hat. Ist das ungleich 0, dann kann man die Zeilen-Pins auf Ausgang umschalten und gibt den invertierten gemerkten Wert dort aus. (Also da wo ne 1 angekommen ist muss jetzt ne 0 raus damit die LED leuchten kann). Einfach, oder? Ich progge in allem was gerade nötig oder am sinnvollsten ist.
Korrektur: Der Controller geht nun alle Spalten-Pins der Reihe nach durch und gibt da ne 1 aus. Im ersten Schritt sind die Spalten Pins auf Eingang muss heißen Der Controller geht nun alle Spalten-Pins der Reihe nach durch und gibt da ne 1 aus. Im ersten Schritt sind die ZEILEN Pins auf Eingang
Hallo! Vielleich geht es sogar recht einfach LED und Taster gleichzeitig zu betreiben? Ich habe es gerade nicht komplett durchgeknobelt, deshalb hier der Denkansatz: Wenn man bei einer normalen LED-Matrix an jedem Kreuzungspunkt zur LED parallel die Taste legt, aber in Serie zum Taster eine normale Diode entgegengesetzt gepolt zur LED einfügt, mußte es doch möglich sein, die Tastaturmatrix unabhängig von der LED-Matrix abzufragen? Oder habe ich einen Denkfehler? Was dann bei gleichzeitiger Betätigung mehrere Taster passiert habe ich noch nicht überlegt...
Versteh nicht ganz wozu das gut sein soll?! Es muss doch trotzdem der Zeilen-Port einmal als Eingang und einmal als Ausgang benutzt werden. Wenn wirklich beides Parallel möglich sein soll, dann hilft nur noch mehr Port-Pins zu verwenden. Aber die sind ja bekanntlich wertvoll.
Überleg Dir erstmal die konstruktive Gestaltung. Sind die Taster und LEDs alle auf einem Haufen, daß man einen Drahtverhau verwenden kann? Oder sind die Taster und LEDs verteilt? Wenn jeweils eine Taste + LED eine Einheit sind, ist es vielleicht günstiger je einen ATtiny13 zu nehmen, die parallel an einem Datenbus hängen. Man hat dann insgesamt nur 3 Drähte (GND, VCC, Daten) zu allen Einheiten. Peter
... Nein geht nicht -> führt beim Tastendruck zum Kurzschluss von Portleitungen mit unterschiedlichem Potential, wenn diese während der LED-Ansteuerungen niederohmig als Ausgänge geschaltet sind. ein Widerstand noch in Serie zum Taster und zur Diode kann das lösen.
"... geht auch mit Serienwiderständen nicht so einfach. Schade." warum? Kann man die Tasten nicht in Sperrrichtung der LED abfragen?
> Kann man die Tasten nicht in Sperrrichtung der LED abfragen?
Das war ja der Hintergedanke. Es geht einfach darum, geschickt die
I/O-Pinzustände (Input, Output, Sink, Source) auszunutzen.
Vielleicht geht es ja doch. Ich werde es einfach mal probieren.
Schon mal jemand meinen Beitrag von 09:12 gelesen? Wieso sollte das so nicht gehen?
@MagIO >Wieso sollte das so nicht gehen? Natürlich geht das so! Ich hatte nur die Idee, Die LED auch beim Betätigen der Taste weiter leuchten zu lassen - falls man in einer Frontplatte z.B. Taster und Schalter kombinieren möchte. Und da bin ich mir halt nicht sicher, was passiert bei mehreren gleichzeitig betätigten Eingängen.
Wie gesagt, spendiert man dem Taster und der LED getrennt einen Widerstand, dann sollte auch das "gleichzeitige" betreiben möglich sein. Ist natürlich immer noch gemultiplext. .... Ok ... das steht in meinem Post von 8:12 ... aber Thorsten hat ja zwischendurch schon erwähnt, dass für Ihn "ausgehen beim drücken" OK ist.
Hui, danke für die vielen Ideen. @ magIO: ich werde mir nach Karneval, noch ein paar Bauteile besorgen, sodas ich mal nen pobe Aufbau machen kann. Danach bzw bis dahin überlegen wir das ganze Programmtechnisch läuft. Das Atmel beispiel ist ja mit einem wakeup und die tasten lassen nur die 2 LED´s lustig blinken. Vermutlich läuft das ganze über eine excl oder verknüpfung? wie gesagt, sauge ich mir das am WE noch was rein.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.