Tastatura matriceala 4*4

In acest articol vom folosi o tastatura matriceala 4*4 impreuna cu un Arduino Mega.

Aceasta tastatura se conecteaza la arduino prin intermediul celor 8 terminale. Vom conecta cele 8 terminale la 8 pini digitali ai Arduinoului.

Pentru a folosi aceasta tastatura vom folosi libraria Keypad, librarie creata de catre Mark Stanley si Alexander Brevig.

Aeasta librarie este inclusa in managerul de librarii al editorului Arduino (versiunea 1.6.2 sau mai noua) si care oate fi instalata foarte usor accesand meniul Schita > Incarcare biblioteca > Gestionare biblioteci. In fereastra care se va deschide vom cauta dupa "Keypad" (ne vom asigura ca libraria este creata de catre cei 2 autori mentionati mai devreme) si o vom instala.

 Poza cu tastatura folosita in acest articol si cu schema de conexiuni a butoanelor le puteti vedea mai jos:

 

Sketch-ul pentru testarea functionalitatii este inclus in exemplele cu care vine aceasta librarie si poate fi accesat de aici: Fisier > Exemple > Keypad > CustomKeypad.

Conectarea tastaturii se face in felul urmator (citim pinii de pe modulul cu tastatura de la stanga la dreapa, de la 1 la 8):

Tastatura            Arduino Mega

1   ------------------   D22

2   ------------------   D23

3   ------------------   D24

4   ------------------   D25

5   ------------------   D26

6   ------------------   D27

7   ------------------   D28

8   ------------------   D29

Sketch-ul modificat arata asa:

#include <Keypad.h>

const byte ROWS = 4;
const byte COLS = 4; 
char hexaKeys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'E','0','F','D'}
};
byte rowPins[ROWS] = {26, 27, 28, 29}; 
byte colPins[COLS] = {22, 23, 24, 25}; 

Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); 

void setup(){
  Serial.begin(9600);
  Serial.println("Testare tastaura matriceala....");
}
  
void loop(){
  char customKey = customKeypad.getKey();
  
  if (customKey){
    Serial.println(customKey);
  }
}

Mai departe vom incerca sa afisam caracterele pe un display LCD 1604. Conectarea acestui display este facuta ca in acest articol.

Sketch-ul este afisat mai jos:

#include <LiquidCrystal.h>
#include <Keypad.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const byte ROWS = 4;
const byte COLS = 4; 
char hexaKeys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'E','0','F','D'}
};
byte rowPins[ROWS] = {26, 27, 28, 29}; 
byte colPins[COLS] = {22, 23, 24, 25}; 
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
int i = 0;
void setup() {
  lcd.begin(16,4); 
  lcd.setCursor ( 0, 0 ); 
  lcd.print (" www.");  
  lcd.setCursor (0, 1 ); 
  lcd.print ("electronicstore");
  lcd.setCursor (0, 2 );
  lcd.print ("            .ro");
  lcd.setCursor (0, 3 );
  lcd.print ("****************");
  delay (2000); 
  lcd.clear(); 
  lcd.setCursor ( 0, 0 ); 
  lcd.print ("Tastatura");  
  lcd.setCursor (0, 1 ); 
  lcd.print ("matriceala");
  lcd.setCursor (0, 2 );
  lcd.print ("4*4 butoane");
  lcd.setCursor (0, 3 );
  lcd.print ("****************");
  delay (2000); 
  lcd.clear();

}

void loop() {
  lcd.setCursor ( 0, 0 ); 
  lcd.print ("Tasteaza....");  
   
  char customKey = customKeypad.getKey();
  if (customKey){
    if (i >=15) {
      i=0;
      lcd.clear();
    }
    lcd.setCursor (i, 1 );
    lcd.print(customKey);
    i++;  
  }
  delay(5);
}

 Un filmulet cu montajul se poate vedea mai jos:

 

Nu sunt comentarii in “Tastatura matriceala 4*4”

Lasa un comentariu

Raspuns lui Some User

Autentificare