mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 4x3 Tastermatrix Schaltung


Autor: Kalle Kantholz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Detlev (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Willst du mehr als einen Taster gleichzeitig drücken?

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Kalle Kantholz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ 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/Mikrocontroll...

vielen Dank für eure Hilfe.
morgen früh gehts los mit dem programmieren.

Autor: David Z. (sammy1991)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.