Forum: Mikrocontroller und Digitale Elektronik Matrixtastatur 3x4 Probleme


von Stefan K. (zerb287)


Lesenswert?

Hallo zusammen,

ich habe mir gerade eine Matrixtastatur 3x4 zusammengebaut. Ich möchte 
mit dieser einen Atmega32 Controller ansteuern.

Ich habe folgendes Problem. Als Schalter habe ich Schließer verwendet. 
Jeder Schalter ist mit VCC und 2 Ports verbunden.

Ich habe nur nicht bedacht, sobald ein Schalter gedrückt ist, dass sich 
die Spannung in der kompletten Schaltung fortpflanzt.


Code:

#include <avr/io.h>
#include <avr/delay.h>

int main (void) {

   DDRC  = 0xff;
   PORTC = 0x00;

   while(1) {



   /* Fuehre Aktion aus, wenn Bit Nr. 1 (das "zweite" Bit) in PINC 
gesetzt (1) ist */
   if (( PINC & (1<<PINC1)) && (PINC & (1<<PINC3)) ) {
  /* Aktion */
    PORTA = 0xff;
  _delay_ms(262);

    }  else { PORTA = 0x00; }


   }


   return 0;
}


Wie das Problem entsteht weiss ich, wie ich es lösen kann jedoch nicht.

Könnt ihr mir dabei helfen?


Vielen Dank und Gruß,

Stefan

von was-willst-du (Gast)


Lesenswert?


von Stefan K. (zerb287)


Lesenswert?

Wenn ich das also richtig sehe, dann kann ich die Schaltung über 
Software zum Funktionieren bringen?

von Guido Körber (Gast)


Lesenswert?

Mit Vcc und zwei Ports verbunden????

Was denn nun, diskrete Schalter oder Matrix?

von Stefan K. (Gast)


Lesenswert?

Hallo,

ja, mein Fehler. Ich weiss wo der Fehler ist und kenne nun auch die 
Lösung.

PIN 0..2 als Ausgang schalten

PIN 3..6 als Eingang schalten wobei Pegel im Ruhezustand auf 5V log. 1

Zur Überprüfung dann die Ausgänge nach und nach auf 0 setzen, wenn ein 
Schalter gedrückt wurde, dann hat ein Eingang eine 0 stehen.

Ich denke so müsste es funktionieren.

Oder?

Gruß Stefan

von STK500-Besitzer (Gast)


Lesenswert?

Zu dem Thema Matrix-Tastatur gibt es eine (oder sogar zwei) Application 
Notes von Atmel. Suchen und angucken!

Den einen Port (z.B. Spalten) schaltet man auf GND und am anderen 
(Zeilen) die Pull-Ups ein und als Eingang.
Die Eingänge sind log.1 wenn keine Taste gedrückt wird.
Das Spiel muss man dann noch in die andere Richtung treiben (Zeilen und 
Spalten vertauschen) und kann dann die Postition der gedrückten Taste 
sehr leicht erkennen. Probleme gibt es nur bei der Auswertung, wenn mehr 
als eine Taste gedrückt wird.

von Stefan K. (zerb287)


Lesenswert?

Vielen Dank,

mal sehen ob ich die Matrix-Tastatur zum Laufen bringe ;-))


Gruß Stefan

von Fabian (Gast)


Lesenswert?

Wer ist Laufen? Kennt der sich damit aus?

von Stefan K. (zerb287)


Lesenswert?

Sorry, mein Fehler. Den Herr Laufen kenne ich noch nicht. Aber, da ich 
ein Anfänger bin, entschuldigt bitte die Wortwahl. Ich meinte gehen ;-)) 
wie es geht! Außerdem, bein uns im Schwabenland, sind das gängige 
Bezeichnungen ;-))


Gruß Stefan

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.