Acest tutorial face parte din: Tastaturi
Toate videoclipurile cu tastaturi sunt listate aici.
Cum să folosești tastatura soft 4x4 cu Arduino
În acest tutorial, vom explora cum să conectăm și să folosim o tastatură moale 4x4 cu un Arduino. Această tastatură are șaisprezece taste, dar necesită doar opt pini pentru conectare, fiind un dispozitiv de intrare compact și eficient pentru diverse proiecte. Până la sfârșitul acestui ghid, veți putea citi intrările de la tastatură și declanșa acțiuni pe baza acestor intrări.

Vom folosi biblioteca Keypad pentru a interfața cu tastatura, permițându-ne să detectăm cu ușurință care tastă este apăsată. Programul pe care îl vom implementa va afișa tasta apăsată pe monitorul serial și va acționa atunci când o anumită tastă este apăsată, cum ar fi tasta '4'. Pentru mai multă îndrumare vizuală, asigurați-vă că urmăriți videoclipul (în videoclip la 00:00).
Hardware Explicat
Componenta principală a acestui proiect este tastatura moale 4x4, care constă din 16 butoane aranjate într-o grilă. Fiecare buton se conectează la un pin specific de pe Arduino, permițând detectarea când un buton este apăsat. Tastatura funcționează folosind o metodă de scanare matriceală, unde rândurile și coloanele sunt activate în secvență pentru a determina care tastă este apăsată.
Pentru a conecta tastatura, va trebui să folosiți opt pini digitali pe Arduino. Rândurile sunt de obicei conectate la pinii 2 până la 5, în timp ce coloanele se conectează la pinii 6 până la 9. Această aranjare permite Arduino să citească eficient starea fiecărei taste.
Detalii din Fișa Tehnică
| Lățime | 69mm |
|---|---|
| Lungime | 76mm |
| Lungime cablu | 84mm |
| Lățime conector | 20mm |
| Distanța dintre găurile conectorului | 2.56mm |
- Asigurați-vă de cablarea corectă a pinilor de rând și coloană pentru a evita citirile greșite.
- Folosiți rezistențe de pull-up dacă este necesar pentru a stabiliza citirile de intrare.
- Debounce tastele în software pentru a evita citirile multiple pentru o singură apăsare.
- Testați fiecare tastă individual pentru a vă asigura de funcționalitate.
- Păstrați tastatura uscată și curată pentru a menține performanța.
Instrucțiuni de Cablare

Pentru a cabla tastatura 4x4 la Arduino, conectați pinii de rând ai tastaturii la pinii digitali de pe Arduino astfel: conectați primul rând la pinul 2, al doilea rând la pinul 3, al treilea rând la pinul 4 și al patrulea rând la pinul 5. Pentru pinii de coloană, conectați prima coloană la pinul 6, a doua coloană la pinul 7, a treia coloană la pinul 8 și a patra coloană la pinul 9.
Această configurare permite Arduino să scaneze eficient rândurile și coloanele. Asigurați-vă că verificați de două ori conexiunile pentru a vă asigura că fiecare pin corespunde corect rândului sau coloanei desemnate. În videoclip, configurații alternative de cablare sunt discutate pe scurt (în videoclip la 01:15). Dacă alegeți să cablați diferit, actualizați pur și simplu numerele pinilor în cod în consecință.
Exemple de Cod și Explicații
În cod, începem prin includerea bibliotecii Keypad și definirea aspectului tastaturii. Rândurile și coloanele sunt configurate folosind array-uri, unde rowPins se mapează la pinii digitali conectați la rânduri și colPins se mapează la coloane.
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, precum și aspectul caracterelor tastelor. Această configurare este crucială pentru identificarea care tastă este apăsată pe baza rândului și coloanei activate.
void setup(){
Serial.begin(9600);
}
Funcția setup inițializează comunicarea serială la o rată de 9600 baud. Acest lucru este important pentru trimiterea datelor de apăsare a tastelor către monitorul serial pentru depanare și verificare.
void loop(){
char key = keypad.getKey();
if (key){
Serial.println(key);
}
if (key =='4'){
Serial.println("Tasta 4 este apăsată");
}
}
În funcția loop, verificăm continuu dacă o tastă este apăsată folosind keypad.getKey(). Dacă o tastă este apăsată, se afișează valoarea tastei pe monitorul serial. În plus, dacă tasta '4' este apăsată, se afișează un mesaj specific indicând că tasta '4' a fost activată. Această secțiune a codului permite interacțiunea în timp real pe baza intrărilor utilizatorului.
Demonstrație / Ce să Vă Așteptați
Odată ce totul este configurat și codul este încărcat pe Arduino, ar trebui să vedeți tastele apăsate afișate în Monitorul Serial. Dacă apăsați tasta '4', mesajul "Tasta 4 este apăsată" va apărea, confirmând că intrarea a fost detectată cu succes. Fiți atenți la capcanele comune, cum ar fi intrările flotante sau cablarea incorectă, care pot duce la citiri eronate (în videoclip la 02:30).
Marcaje Temporale din Videoclip
- 00:00 - Introducere la tastatură
- 01:15 - Instrucțiuni de cablare
- 02:30 - Explicația codului și demonstrație
Acest tutorial face parte din: Tastaturi
- Utilizarea tastaturii 4x3 cu Arduino
- Cod Arduino și Video pentru o Tastatură cu Patru Taste
- Cod Arduino și Video: Tastatură Neagră cu Matrice 4x4
- Build a Simple Electronic Lock with Keypad and LCD Using Arduino
- Controlling an 8-channel relay with a 4x3 keypad
- How to Use a 5x4 20-Key Keypad with Arduino to Detect Strings
- Lesson 67: Controlling an 8-Channel Relay with a Keypad Using Arduino
- 1602 LCD Keypad Shield: Cod de bază
/*
* Original source: https://playground.arduino.cc/Code/Keypad
* This is the Arduino code for a 4x4 keypad.
* Watch the video for details and demo: http://youtu.be/qIDzzG2LUtg
*
* Written by Ahmad Nejrabi for Robojax Video channel: www.Robojax.com
* Date: December 18, 2017, 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'}
};
byte rowPins[ROWS] = {2, 3, 4, 5}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {6,7,8,9}; //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.println(key);
}
// This checks if 4 is pressed, then do something. Here we print the text, but you can control something.
if (key =='4'){
Serial.println("Key 4 is pressed");
}
}
Lucruri de care ai putea avea nevoie
-
AmazonBuy 4x4 keypad from Amazonamzn.to
-
AliExpressBuy soft keypad from AliExpresss.click.aliexpress.com
Resurse și referințe
Încă nu sunt resurse.