Tastertur im Eigenbau - schrotte ich damit meinen Uno?

Hallo! Ich habe mir in der letzten Zeit eine Tastertur gelötet nach dem Prinzip, wie ihr es im Anhang seht. Es werden am Anfang alle Port-A-Pins angeschaltet und dann wird einer ausgemacht, so dass er einen Minuspol darstellt. Der Port A steht auf INPUT_PULLUP. Nach der Port-A-Geschichte wird der Port B und zwei analoge Pins mit angebautem Pullup abgefragt. Dann wird der Pin vom Port A wieder angeschaltet und der nächste Pin wird ausgeschaltet. So kann ich alle Buttons ohne Pinmangel abfragen. Über I2C werden die Daten zu einem anderen Arduino gesendet.
Meine Frage ist: Bau ich mir damit 'nen Kurzen? Ich habe mir letztens schon einen Due-Dac durchgeschossen, sowas will ich ab jetzt vermeiden.

Tastertur_skizze.jpg

Ich verstehe deinen Text nicht.

https://www-user.tu-chemnitz.de/~heha/Mikrocontroller/Tastenmatrix.htm

combie: Ich verstehe deinen Text nicht.

https://www-user.tu-chemnitz.de/~heha/Mikrocontroller/Tastenmatrix.htm

Trotzdem vielen Dank für den Link! Der hat mir schon ein bisschen weiter geholfen. Allerdings: 3 ist zwar ähnlich wie meine Schaltung, allerdings habe ich nicht nach jedem Button eine Diode, sondern nur an den Spaltentreibern. Da wusste ich nicht genau, ob ich mir da 'nen Kurzen ziehe. Mehr Dioden einzubauen wird bei 60 Buttons doch irgendwie etwas unrealistisch.

Ja, Du baust einen Kurzen wenn Du 2 Tasten gleichzeitig drückst.

Auf der "Ausgangsseite" darf nur 1 Pin Ausgang sein, alle anderen müssen als Eingänge definiert sein. Man kann ohne probleme den Modus der Pins nach belieben ändern, nicht nur einmal am anfang. Grüße Uwe

Hast Du noch ne ältere PS/2-Tastatur (die mit dem runden Stecker). Die kannst Du an den Arduino anschließen.

Gruß Tommy

Tommy56: Hast Du noch ne ältere PS/2-Tastatur (die mit dem runden Stecker). Die kannst Du an den Arduino anschließen.

Gruß Tommy

Ja, ich habe eine. Aber die ist kaputt.

uwefed:
Ja, Du baust einen Kurzen wenn Du 2 Tasten gleichzeitig drückst.

Auf der “Ausgangsseite” darf nur 1 Pin Ausgang sein, alle anderen müssen als Eingänge definiert sein. Man kann ohne probleme den Modus der Pins nach belieben ändern, nicht nur einmal am anfang.
Grüße Uwe

Moment mal, ich habe jetzt mal den (mMn. richtigen) Weg des Stroms eingezeichnet, wenn die beiden Buttons unter D0 gedrückt sind. Wo ist da der Kurze?

uwefed:
“Ausgangsseite”

Was genau meinst du damit?

Tastertur_skizze2.jpg

Dann frag mal rum. Das ist die einfachste Lösung. Oder schieß Dir eine in der Bucht.

Gruß Tommy

Tommy56: Oder schieß Dir eine in der Bucht.

Definitiv NEIN!

Tommy56: Dann frag mal rum. Das ist die einfachste Lösung.

Also, ich habe jetzt endlich meine Tastertur fertig (was das Button-Löten betrifft) und mir fehlt für 60 Dioden einfach der letzte Nerv. Und ich scheue mich immer vor einfachen Lösungen, wenn man's auch irgendwie anders machen kann, so dass ich Aufwand und Elektronik spare.

Klar, Deine Entscheidung aber da musst Du dann auch bis zum Ende durch und die Dioden einbauen. Was nützt Dir Deine "gesparte Elektronik" wenn die Finger mal zu breit sind und 2 Tasten drücken und das Dir Deinen Arduino grillt?

Gruß Tommy

Tommy56:
Klar, Deine Entscheidung aber da musst Du dann auch bis zum Ende durch und die Dioden einbauen. Was nützt Dir Deine “gesparte Elektronik” wenn die Finger mal zu breit sind und 2 Tasten drücken und das Dir Deinen Arduino grillt?

Gruß Tommy

Ich verstehe eben nicht, wo der Kurze ist. Siehe Anhang

Tastertur_skizze2.jpg

D1, D8 und D9 auf INPUT_PULLUP, D0 auf LOW, dann sehe ich keinen Kurzschluß, auch wenn alle Tasten gedrückt werden. Eine eindeutige Erkennung bei mehrfach gedrückten Tasten ist allerdings nicht möglich.

und mir fehlt für 60 Dioden einfach der letzte Nerv.

(Wenn dich sowas überfordert, bist du auf der falschen Baustelle unterwegs)

Tipp: Du brauchst die Dioden nur, wenn du mehrere Tastendrücke "gleichzeitig" auswerten/unterscheiden willst. Mit einem schlankem Finger brauchst du keine einzige Diode.

agmue: D1, D8 und D9 auf INPUT_PULLUP, D0 auf LOW, dann sehe ich keinen Kurzschluß, auch wenn alle Tasten gedrückt werden. Eine eindeutige Erkennung bei mehrfach gedrückten Tasten ist allerdings nicht möglich.

Warum sollte die Erkennung von mehreren Buttons nicht klappen? Wenn D1, D8 und D9 auf INPUT_PULLUP, D0 auf LOW und D1 auf HIGH stehen und alle Buttons gedrückt sind, bekomme ich von D8 LOW und von D9 auch - denke ich. Oder verhält sich das anders?

HTML-Fan:
Warum sollte die Erkennung von mehreren Buttons nicht klappen?

Die rechten beiden Taster seien gedrückt, links der untere, dann sind D8 und D9 LOW, obwohl der linke obere nicht gedrückt ist:

Tastertur_skizze3.jpg

uwefed:
Ja, Du baust einen Kurzen wenn Du 2 Tasten gleichzeitig drückst.

Auf der “Ausgangsseite” darf nur 1 Pin Ausgang sein, alle anderen müssen als Eingänge definiert sein. Man kann ohne probleme den Modus der Pins nach belieben ändern, nicht nur einmal am anfang.
Grüße Uwe

Also gibt es eine Möglichkeit, das Hardwareproblem mit Software zu beheben?

Welches Hardwareproblem?

Hi

Wenn es einen Kurzschluss gibt, muß man den Strom begrenzen (macht der Arduino von selbst ... ok, Er stirbt dabei). Das 'überlebbare' Begrenzen geht nur mit zusätzlichen Bauteilen - also entweder in jeden möglichen Zweig eine KSQ - bei begrenztem Strom misst Du dann wohl LOW - oder eine Diode. Beides gibt es als praktischen Di-Pol (also nur zwei Anschlußbeinchen) zum 'dazwischenlöten'.

Von den KSQs hast Du keinen Mehrwert, Die verhindern auch nur, daß 'was durchbrennt' - auch werden sich die Messwerte von der Dioden-Lösung unterscheiden.

Es gibt die Dioden auch als SMD - ein Stück Leiterbahn weggekratzt, Diode drüber, fertig (ok, 1/60stel fertig).

Oder eben immer nur mit einem Finger tippen (wie funktioniert dann Shift?) und immer schon mittig treffen. Vll. einen Sack Arduinos als Ersatz bereit legen ;)

MfG

combie:
Welches Hardwareproblem?

Ich möchte mehrere Buttons auf einmal drücken können - die Shift-Taste habe ich ja nicht zum Spaß drangebaut.

postmaster-ino: Hi

Wenn es einen Kurzschluss gibt, muß man den Strom begrenzen (macht der Arduino von selbst ... ok, Er stirbt dabei). Das 'überlebbare' Begrenzen geht nur mit zusätzlichen Bauteilen - also entweder in jeden möglichen Zweig eine KSQ - bei begrenztem Strom misst Du dann wohl LOW - oder eine Diode. Beides gibt es als praktischen Di-Pol (also nur zwei Anschlußbeinchen) zum 'dazwischenlöten'.

Von den KSQs hast Du keinen Mehrwert, Die verhindern auch nur, daß 'was durchbrennt' - auch werden sich die Messwerte von der Dioden-Lösung unterscheiden.

Es gibt die Dioden auch als SMD - ein Stück Leiterbahn weggekratzt, Diode drüber, fertig (ok, 1/60stel fertig).

Oder eben immer nur mit einem Finger tippen (wie funktioniert dann Shift?) und immer schon mittig treffen. Vll. einen Sack Arduinos als Ersatz bereit legen ;)

MfG

Blöde Frage: Was ist ein KSQ und was ein Di-Pol? Und wie soll man die SMD-Dioden dranlöten? Die sind doch zu klein, oder? Ich würde wenn schon meine normalen Dioden dranloten - zwischen zwei Buttons ist immer eine Reihe frei.