Search Code

Lolenge ya kosalela 4x4 Soft Keypad na Arduino

Lolenge ya kosalela 4x4 Soft Keypad na Arduino

Na boyekoli oyo, tokotalela ndenge ya kokɔta mpe kosalela keypad ya pete 4x4 na Arduino. Keypad oyo ezali na bato zomi na motoba (seize) kasi esengeli kaka na ba pin mwambe (huit) mpo na kokɔta, yango esalaka ete ezali esaleli ya moke mpe ya kitoko mpo na misala ndenge na ndenge. Na suka ya boyekoli oyo, okokoka kotanga ba entrées na keypad mpe kosala ba actions kolanda ba entrées yango.

4x4 soft keypdad

Tokosalela bibliothèque ya Keypad mpo na kosangisa na keypad, mpo na koyeba pete nini ya key oyo epresé. Programme oyo tokosalela ekolakisa key oyo epresé na écran ya serial mpe ekosala action soki key moko ya sikisiki epresé, lokola key '4'. Mpo na lisungi ya kotala, tala vidéo na (na vidéo na 00:00).

Explication ya Matériel

Élément principal ya projet oyo ezali keypad ya pete 4x4, oyo ezali na ba boutons zomi na motoba (16) oyo ebongisami na forme ya grille. Chaque bouton ekɔtaka na pin moko ya sikisiki na Arduino, mpo na koyeba soki bouton epresé. Keypad esalelaka méthode ya scanning ya matrice, epai ba lignes mpe ba colonnes eactivé na séquence mpo na koyeba nini ya key oyo epresé.

Mpo na kokɔta keypad, esengeli kosalela ba pin mwambe (8) ya digitale na Arduino. Ba lignes (rows) ekɔtaka na ba pins 2 téé 5, mpe ba colonnes ekɔtaka na ba pins 6 téé 9. Bokabwani oyo esalaka ete Arduino akoka kotanga état ya chaque key na ndenge ya malamu.

Détails ya Datasheet

Largeur69mm
Longueur76mm
Longueur ya câble84mm
Largeur ya connecteur20mm
Espacement ya ba trous ya connecteur2.56mm

  • Kokamba malamu ba fils ya lignes mpe ba colonnes mpo na kokima ba erreurs ya kotanga.
  • Sala uso ya ba résistances ya pull-up soki esengeli mpo na kopesa stabilité na ba lectures ya entrée.
  • Debouncer ba keys na logiciel mpo na kokima ba lectures ebele mpo na pression moko.
  • Meka chaque key moko na moko mpo na koyeba soki esalaka malamu.
  • Keba ete keypad ezala na mokili mpe peto mpo na kobatela performance na yango.

Ba Instructions ya Kokɔta (Wiring)

Arduino wiring for 4x4 soft keypad
Arduino wiring for 4x4 soft keypad

Mpo na kokɔta keypad 4x4 na Arduino, kokɔta ba pins ya lignes ya keypad na ba pins ya digitale na Arduino ndenge oyo: kokɔta ligne ya liboso na pin 2, ligne ya mibale na pin 3, ligne ya misato na pin 4, mpe ligne ya minei na pin 5. Mpo na ba pins ya colonnes, kokɔta colonne ya liboso na pin 6, colonne ya mibale na pin 7, colonne ya misato na pin 8, mpe colonne ya minei na pin 9.

Bokabwani oyo esalaka ete Arduino akoka koscaner ba lignes mpe ba colonnes na ndenge ya malamu. Tika ete okamba malamu ba connexions mpo na koyeba ete chaque pin ekɔtani na ligne to colonne na yango ya sikisiki. Na vidéo, ba configurations ya kokɔta mosusu etali mokuse (na vidéo na 01:15). Soki oponi kokɔta na ndenge mosusu, kaka bongola ba numéro ya ba pins na code ndenge esengeli.

Ba Exemples ya Code & Explication

Na code, tobandi na kosangisa bibliothèque ya Keypad mpe na kopesa définition ya mise en page ya keypad. Ba lignes mpe ba colonnes ebongisami na ba tableaux, epai rowPins ekɔtani na ba pins ya digitale oyo ekɔtani na ba lignes mpe colPins ekɔtani na ba colonnes.

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

Na eteni oyo, topesaka nombre ya ba lignes mpe ba colonnes, mpe mpe mise en page ya ba caractères ya ba keys. Bokabwani oyo ezali mpenza ntina mpo na koyeba nini ya key oyo epresé kolanda ligne mpe colonne oyo eactivé.

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

Fonction setup ebandisaka communication ya serial na vitesse ya 9600 baud. Oyo ezali ntina mpo na kotinda ba données ya pression ya key na écran ya serial mpo na débogage mpe vérification.

void loop(){
  char key = keypad.getKey();
  if (key){
    Serial.println(key);
  } 
  if (key =='4'){
    Serial.println("Key 4 epresé");
  }
}

Na fonction loop, tozali koluka mbala na mbala mpo na key oyo epresé na kosalela keypad.getKey(). Soki key epresé, ekomaka valeur ya key na écran ya serial. Na libanda, soki key '4' epresé, ekomaka message ya sikisiki oyo elakisi ete key '4' eactivé. Eteni oyo ya code esalaka ete interaction ezala na tango ya solo kolanda ba entrées ya utilisateur.

Démonstration / Nini Okokanela

Ntango nyonso esili kobongisama mpe code ekomi na Arduino na yo, okomona ba keys oyo epresé na écran ya Serial Monitor. Soki opresi key '4', message "Key 4 epresé" ekomonana, mpo na kolakisa ete entrée yango emonani malamu. Keba na ba pièges ya mbala mingi, lokola ba entrées oyo ezali na flottement to kokɔta ya mabe, oyo ekoki komemela ba lectures ya mabe (na vidéo na 02:30).

Ba Timestamps ya Vidéo

  • 00:00 - Introduction na keypad
  • 01:15 - Ba instructions ya kokɔta
  • 02:30 - Explication ya code mpe démonstration

Images

4x4 soft keypdad back view
4x4 soft keypdad back view
4x4 soft keypdad
4x4 soft keypdad
4x4 soft keypdad connector
4x4 soft keypdad connector
4x4 soft keypdad
4x4 soft keypdad
Arduino wiring for 4x4 soft keypad
Arduino wiring for 4x4 soft keypad
41-Resources for this code
Langue: 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: 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");
  }
}

Nko o na nki.

Mokili na bisika

Pas encore de ressources.

Fichiers📁

Maktabat ya Arduino (zip)