Matrix tastatur

Fra Holstebro HTX Wiki
Skift til: navigering, søgning

Denne del dokumenterer forskellige måder at tilslutte et TastaturArduinoen.

Grunden til at der er forskellige måde at tilslutte tastaturer på er, at man kan lave tastaturer i forskellige konfigurationer, som skal tilsluttes forskelligt.

Software

Der er ikke installeret standard software der ligger sammen med installationen af Arduino, så de forskellige typer kræver at man finder andre biblioteker og installerer dem sammen med sin software, eller anvende de biblioteker der kan downloades fra denne side.

Simpelt 4x4 matrix tastatur

Det første vi skal er at prøve at få et af de matrix tastaturer vi køber hjem som standard som dette 4x4 Matrix tastatur fra dx.com.

Matrix 4x4 tastatur
Matrix 4x4 tastatur

Først installeres Keypad i Arduinos Biblioteker som kan hentes fra denne refrence [1]

Når man har genstartet Arduino-programmet åbnes Fil - Eksempler - Keypad - HelloKeypad[2].

Virkemåde

Hele opsætningen laves ved hjælp af en række definitioner i konstanter og variabler som vist her:

const byte ROWS = 4; //four rows
const byte COLS = 3; //three columns
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};
byte rowPins[ROWS] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {8, 7, 6}; //connect to the column pinouts of the keypad

Selve opsætningen sker ved en constructor der anvender disse konstanter og variabler:

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

I funktionen setup() sker der bare en initialisering af den serielle port til den serielle monitor.

I funktionen loop() afvikles den samme kode i en uendelig løkke, der hele tiden læses på Keypad, og hvis der er kommet en key, så udskrives den på en linje for sig.

  char key = keypad.getKey();
  
  if (key){
    Serial.println(key);
  }

Hardware

For at teste programmet fornuftigt skal Tastaturet selvfølgelig tilsluttes.

Benet nærmest knap S1 tilsluttes digital pin 6. Herefter forbindes videre nedad til pin 7, 8, 9, 5, 4, 3 og 2.

Test

For at teste programmet laves opstillingen som beskrevet, hvorefter man starter Seriel overvågning (monitoren), og prøver at taste på alle taster.

Da vi har tilsluttet et 4x4 matrix og softwaren kun er sat op til et 3x4 matrix tastatur, så er der 4 knapper der ikke virker. Knapperne S1, S5, S9 og S13 skulle ikke fungere. S2 skulle gerne give '1', S4 skulle give '3' og S15 skulle give '0'.

Sammenlign med softwaren hvorfor.

Udvidelse 1

Prøv at udvide til 4x4 matrix tastatur med følgende tilføjelse:

const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
char keys[ROWS][COLS] = {
  {'1','2','3','+'},
  {'4','5','6','-'},
  {'7','8','9','x'},
  {'*','0','#','/'}
};
byte rowPins[ROWS] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {9, 8, 7, 6}; //connect to the column pinouts of the keypad

Test at der er kommet +, -, x og / på tastaturet, og at tal-delen er rykket til venstre.

Udvidelse 2

Prøv at lave indtastnig af et tal fra 0 til 999 (afslut evt. tallet med #).

Udvidelse 3

Lav en lommeregner - evt. sammen med et Arduino Display.

4x4 Matrix med 4 ekstra taster og 8 LED

Hvis man sammen med tastaturet har brug for enten nogle ekstra taster som skal fungere separat, eller nogle LED-indikatorer, så er der muligheden for at anvende et Udvidet tastatur fre miniInTheBox.

Matrix-delen er de sorte taster, mens de 4 ekstra taster er røde, som det kan ses herunder.

Matrix 4x4 tastatur - 4 tast - 8 LED
Matrix 4x4 tastatur med 4 separate taster og 8 lysdioder

Software

Matrix-delen er præcis den samme som ved det lille matrix-tastatur.

De ekstra knapper kan håndteres ved at tilslutte dem enkelte input som i tilfældet med Arduino Button, og i samme eksempel er der vist hvordan man kan styre en LED, hvor det så bare er lidt lettere at tilslutte hardwaren her.

Hardware

Matrix-delen skal tilsluttes 8 ben der ligger i stikket ved K1 og K5.

På displayet er benene betegnet som R1-R4 og L1-L4. Hvis man anvender softwaren som den er vist til det lille tastatur, så skal tastaturet tilsluttes Arduinoens ben som følger:

Keyboard Arduino
L4 2
L3 3
L2 4
L1 5
R4 6
R3 7
R2 8
R1 9

De Røde taster har forbindelse til det midterste stik. For at de fungerer skal der tilsluttes både +5V og stel til VCC og GND.

Signalerne fra knapperne S1 til S4 kommer mærkeligt nok ud på de ben der hedder S1 til S4, og de kan tilsluttes hvilket som helst digitalt ben på Arduinoen. Man skal dog lige være opmærksom på at det er aktivt lave, hvilket vil sige at signalet er højt når der ikke er trykket på knappen og lavt når der er trykket på knappen.

Der er anvendt en 1 k ohm pull up på de røde taster.

LED visningen skal tilsluttes ved stikket nede ved lysdioderne. For at de skal virke skal det tilsluttes +5V til VCC i stikket (samme VCC som ved de røde taster).

Dioderne er aktivt lave, hvilket vil sige at de skal have et lavt signal for at lyse, og når de får et højt signal slukker de. Der er anvendt en 1 k ohm formodstand til lysdioderne, hvilket begrænser strømmen til ca. 3 mA pr. lysdiode.

Referencer