Пребарување код

Како да користите 4x4 мек тастатура со Arduino

Како да користите 4x4 мек тастатура со Arduino

Во ова упатство, ќе истражиме како да поврземе и користиме 4x4 мека тастатура со Arduino. Оваа тастатура има шеснаесет копчиња, но бара само осум пинови за поврзување, што ја прави компактна и ефикасна влезна направа за различни проекти. До крајот на ова упатство, ќе можете да читате влезови од тастатурата и да активирате дејства врз основа на тие влезови.

4x4 soft keypdad

Ќе ја користиме библиотеката Keypad за да комуницираме со тастатурата, што ќе ни овозможи лесно да откриеме кое копче е притиснато. Програмата што ќе ја имплементираме ќе го прикажува притиснатото копче на серискиот монитор и ќе преземе дејство кога ќе се притисне одредено копче, како копчето '4'. За повеќе визуелни насоки, задолжително погледнете го видеото (во видеото на 00:00).

Објаснување на хардверот

Главната компонента на овој проект е 4x4 меката тастатура, која се состои од 16 копчиња распоредени во мрежа. Секое копче се поврзува со одреден пин на Arduino, што овозможува откривање кога е притиснато копче. Тастатурата работи со метод на матрично скенирање, каде редовите и колоните се активираат последователно за да се одреди кое копче е притиснато.

За да ја поврзете тастатурата, ќе треба да користите осум дигитални пинови на Arduino. Редовите обично се поврзуваат со пиновите 2 до 5, додека колоните се поврзуваат со пиновите 6 до 9. Овој распоред му овозможува на Arduino ефикасно да ја чита состојбата на секое копче.

Детали од техничката спецификација

Ширина69мм
Должина76мм
Должина на кабелот84мм
Ширина на конекторот20мм
Растојание помеѓу дупките на конекторот2.56мм

  • Осигурете се правилно поврзување на пиновите за редови и колони за да избегнете погрешни читања.
  • Користете pull-up отпорници ако е потребно за да ги стабилизирате влезните читања.
  • Дебунсирајте ги копчињата во софтверот за да избегнете повеќекратни читања за едно притискање.
  • Тестирајте го секое копче поединечно за да се осигурате дека функционира.
  • Чувајте ја тастатурата сува и чиста за да ја одржите нејзината функционалност.

Инструкции за поврзување

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

За да ја поврзете 4x4 тастатурата со Arduino, поврзете ги пиновите на редовите од тастатурата со дигиталните пинови на Arduino на следниов начин: поврзете го првиот ред со пин 2, вториот ред со пин 3, третиот ред со пин 4 и четвртиот ред со пин 5. За пиновите на колоните, поврзете ја првата колона со пин 6, втората колона со пин 7, третата колона со пин 8 и четвртата колона со пин 9.

Оваа поставка му овозможува на Arduino ефикасно да ги скенира редовите и колоните. Проверете ги врските двапати за да се осигурате дека секој пин одговара правилно на својот назначен ред или колона. Во видеото, накратко се дискутираат алтернативни конфигурации на поврзување (во видеото на 01:15). Ако одберете да поврзете поинаку, едноставно ажурирајте ги броевите на пиновите во кодот соодветно.

Примери на код и објаснување

Во кодот, започнуваме со вклучување на библиотеката Keypad и дефинирање на распоредот на тастатурата. Редовите и колоните се поставени со користење на низи, каде rowPins се мапира на дигиталните пинови поврзани со редовите, а colPins се мапира на колоните.

const byte ROWS = 4; // четири реда
const byte COLS = 4; // четири колони
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};

Во овој извадок, го дефинираме бројот на редови и колони, како и распоредот на карактерите на копчињата. Оваа поставка е клучна за идентификување кое копче е притиснато врз основа на активираниот ред и колона.

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

Функцијата setup ја иницијализира сериската комуникација со брзина од 9600 бауди. Ова е важно за испраќање податоци за притиснати копчиња до серискиот монитор за дебагирање и проверка.

void loop(){
  char key = keypad.getKey();
  if (key){
    Serial.println(key);
  } 
  if (key =='4'){
    Serial.println("Копчето 4 е притиснато");
  }
}

Во функцијата loop, постојано проверуваме дали е притиснато копче користејќи keypad.getKey(). Ако е притиснато копче, ја печати вредноста на копчето на серискиот монитор. Дополнително, ако е притиснато копчето '4', печати специфична порака што означува дека копчето '4' е активирано. Овој дел од кодот овозможува интеракција во реално време врз основа на корисничкиот влез.

Демонстрација / Што да очекувате

Откако сè ќе биде поставено и кодот ќе биде испратен на вашиот Arduino, треба да ги видите притиснатите копчиња прикажани во Серискиот монитор. Ако го притиснете копчето '4', пораката „Копчето 4 е притиснато“ ќе се појави, потврдувајќи дека влезот е успешно откриен. Бидете внимателни на вообичаените замки, како што се лебдечки влезови или неправилно поврзување, кои можат да доведат до погрешни читања (во видеото на 02:30).

Временски ознаки од видеото

  • 00:00 - Вовед во тастатурата
  • 01:15 - Инструкции за поврзување
  • 02:30 - Објаснување на кодот и демонстрација

Слики

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
Јазик: 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");
  }
}

Работи што можеби ќе ви требаат

Ресурси и референци

Сè уште нема ресурси.

Датотеки📁

Arduino библиотеки (zip)