Search Code

Cod Arduino și Video: Tastatură Neagră cu Matrice 4x4

Cod Arduino și Video: Tastatură Neagră cu Matrice 4x4

În acest tutorial, vom explora cum să folosim o tastatură matriceală 4x4 cu Arduino pentru a efectua acțiuni pe baza apăsărilor de taste. Tastatura vă permite să introduceți valori, cum ar fi '6', 'A', 'B', 'D', și să efectuați sarcini specifice atunci când aceste taste sunt apăsate. Urmărind tutorialul, veți învăța cum să configurați tastatura și să scrieți codul necesar pentru a interacționa cu ea eficient. Pentru clarificări suplimentare, asigurați-vă că vizionați videoclipul (în videoclip la 00:00).

Hardware Explicat

Tastatura matriceală 4x4 constă din 16 taste aranjate într-o grilă 4x4. Fiecare apăsare de tastă conectează rânduri și coloane specifice, permițând microcontrolerului să determine care tastă a fost apăsată. Tastatura este conectată la Arduino folosind pini digitali, care vor fi configurați în cod pentru a citi apăsările de taste.

În acest proiect, vom folosi biblioteca Keypad, care simplifică procesul de citire a intrărilor de la tastatură. Biblioteca gestionează logica de scanare a rândurilor și coloanelor, facilitând concentrarea pe funcționalitatea proiectului dumneavoastră.

Detalii din Fișa Tehnică

ProducătorGeneric
Număr de piesăTastatură Matriceală 4x4
Tensiune logică/IO5 V
Durată de viață a tastelor1.000.000 de apăsări
Dimensiuni68,5 mm x 9,8 mm
Greutate23 g

  • Conectați pinii de rând la pinii digitali 2-5.
  • Conectați pinii de coloană la pinii digitali 6-9.
  • Asigurați o cablare corectă pentru a evita citiri greșite.
  • Utilizați rezistențe pull-up dacă este necesar pentru stabilitate.
  • Debounce apăsările de taste în software pentru a evita citiri multiple.

Instrucțiuni de Cablare

Pentru a cabla tastatura matriceală 4x4 la Arduino, începeți prin conectarea pinilor de rând. Conectați primul pin de rând la pinul digital 5, al doilea pin de rând la 4, al treilea pin de rând la 3, și al patrulea pin de rând la 2. Apoi, conectați pinii de coloană, începând cu primul pin de coloană la pinul digital 9, al doilea pin de coloană la 8, al treilea pin de coloană la 7, și al patrulea pin de coloană la 6. Această configurare urmează o abordare de cablare de la dreapta la stânga, așa cum este descris în videoclip (în videoclip la 00:00).

Asigurați-vă că atașați ferm firele la tastatură și la Arduino pentru a preveni conexiunile slabe. Puteți folosi conectori femei pentru a face conexiunile mai ușor de gestionat. Dacă folosiți o breadboard, asigurați-vă că toate conexiunile sunt bine fixate.

Exemple de Cod și Explicații

Următorul cod inițializează tastatura și configurează comunicarea serială. Acest lucru vă permite să vedeți care tastă este apăsată în monitorul serial.

#include 

const byte ROWS = 4; //patru rânduri
const byte COLS = 4; //patru coloane
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};

În acest fragment, definim numărul de rânduri și coloane și creăm o matrice de caractere keys care mapează tastele de pe tastatură. Această matrice va fi folosită pentru a identifica care tastă este apăsată.

void setup(){
  Serial.begin(9600);
}

În funcția setup, inițializăm comunicarea serială la o rată de transmisie de 9600. Acest lucru ne permite să afișăm apăsările de taste în monitorul serial pentru depanare și observare.

void loop(){
  char key = keypad.getKey();
  if (key){
    Serial.print("Tasta ");
    Serial.print(key);
    Serial.println(" este apăsată");
  } 
}

Funcția loop verifică continuu apăsările de taste folosind keypad.getKey(). Dacă o tastă este apăsată, afișează valoarea tastei în monitorul serial. Aici veți vedea feedback-ul în timp real al intrării dumneavoastră.

4x4 matrix black keypad

Demonstrație / Ce să Vă Așteptați

Odată ce cablarea și codul sunt configurate corect, ar trebui să vedeți apăsările de taste afișate în monitorul serial. Apăsarea tastei '4' va declanșa o acțiune specifică, pe care o puteți personaliza în cod. Această configurare permite diverse aplicații, cum ar fi controlul dispozitivelor pe baza intrărilor utilizatorului. Fiți atenți la polaritatea inversată și asigurați-vă că toate conexiunile sunt sigure pentru a evita probleme (în videoclip la 00:00).

Marcaje Temporale din Videoclip

  • 00:00 Introducere
  • 01:30 Cablarea tastaturii
  • 02:45 Explicația codului
  • 04:00 Demonstrația apăsărilor de taste

Imagini

4x4 matrix black keypad
4x4 matrix black keypad
4x4 matrix black keypad
4x4 matrix black keypad
4x4 matrix black keypad
4x4 matrix black keypad
4x4 matrix black keypad
4x4 matrix black keypad
4x4 matrix black keypad  back
4x4 matrix black keypad back
4x4 matrix black keypad
4x4 matrix black keypad dimensions
4x4 matrix black keypad
4x4 matrix black keypad
92-Arduino Code for 4x4 Black hard key keypad
Limba: C++
/*
 * Original source: https://playground.arduino.cc/Code/Keypad
 * This is the Arduino code for a 4x4 keypad.
 * Watch the video for details and demo: https://youtu.be/1rfrvOTxtrg	
 *  * 
 * Written by Ahmad S. for Robojax Video channel www.Robojax.com
resources page for this code robojax.com/RJT75
 * Date: April 15, 2018, in Ajax, Ontario, Canada
 * Permission granted to share this code given that this
 * note is kept with the code.
 * Disclaimer: This code is "AS IS" and for educational purposes only.
 * This code has been downloaded from https://robojax.com
 * 
 */
/* @file HelloKeypad.pde
|| @version 1.0
|| @author Alexander Brevig
|| @contact alexanderbrevig@gmail.com
||
|| @description
|| | Demonstrates the simplest use of the matrix Keypad library.
|| #
*/
#include <Keypad.h>

const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};

// connect the pins from right to left to pins 2, 3, 4, 5, 6, 7, 8, 9
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

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

void setup(){
  Serial.begin(9600);
}
  
void loop(){
  char key = keypad.getKey();
    // just print the pressed key
   if (key){
    Serial.print("Key ");
    Serial.print(key);
    Serial.println(" is pressed");
  } 
  
  // This checks if 4 is pressed, then do something. Here we print the text, but you can control something.
  if (key =='4'){
    // Do something here if 4 is pressed
    Serial.println("Key 4 is pressed -> Action");
  }
}

Lucruri de care ai putea avea nevoie

Resurse și referințe

Încă nu sunt resurse.

Fișiere📁

Biblioteci Arduino (zip)