Hallo Ich möchte an einen AVR eine Tastermatrix anschließen. Wenn ich einen Port als Eingang nutzen will, dann schalte ich den jeweiligen Pin auf masse. Nun will ich aber eine 4x3 Matrix aus 1 Poligen Tastern aufbauen, und da habe ich nun ein Problem mit der Schaltung. Vielleicht kann mir jemand auf die Sprünge helfen, und mir verraten wie man soetwas Schaltungsmäßig realisiert, Dioden, Schieberegister etc. bin für jede Hilfe dankbar Bye Kai
Nimm einfach einen PORT (8 bit) des µC, Schalte die ersten 4 bit als Ausgang ('0') und die letzten 4 bit als Eingang (Pull-up) als Matrix. Die ersten 4 bit Vertikal und die letzten4 bit horizontal. Das Ganze wird bei der 2. Abfrage umgedreht. Die erste Abfrage fragt Vertikal, die zweite horizontal ab. Nun kannst Du lokalisieren, welche Taste(n) gedrücht wurde(n). Das ist bei einer Tastatur von max. 4x4 echt einfach zu handhaben!
Application Note AVR204 (oder AVR240) beschreibt das gleiche Thema nur mit einer 16er-Tastatur. Sonic hat schon denn richtigen Weg beschrieben. Wenn man zwischen den beiden Überprüfungen noch eine kleine Pause macht, um die Kapazitäten zu entladen, geht das ganz wunderbar.
@ Detlev nein. eine Taste zu einem Zeitpunkt reicht @ Sonic Das ist eine Lösung nach der ich gesucht habe. Vielen Dank Ich habe auch einen guten Link der TU Chemnitz gefunden, wo alles erklärt ist. http://www-user.tu-chemnitz.de/~omat/Mikrocontroller/Tastenmatrix.htm vielen Dank für eure Hilfe. morgen früh gehts los mit dem programmieren.
Guten Tag, ich habe das gleiche Problem, nur größer. Meine Matrix soll 10*18 groß werden. das Prinzip mit den vertikalen und horizontalen Leitungen habe ich verstanden, allerdings bedeutet das, dass ich über mehrere Ports hinweg arbeiten muss. Wie kann ich also per Programm feststellen, welcher Taster gedrückt ist, und wie kann ich hier effektiv entprellen? Ferner soll jede Pinkombination bei aktiviertem Zustand einen Code bereitstellen, der dann zu einem zweiten Controller geschickt wird. Wie sieht hier die Realisierung in C aus? Um eine Antwort wäre ich sehr dankbar, Gruß David Z.
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.