Съдържание:

Използване на цифрови клавиатури с Arduino: 4 стъпки
Използване на цифрови клавиатури с Arduino: 4 стъпки

Видео: Използване на цифрови клавиатури с Arduino: 4 стъпки

Видео: Използване на цифрови клавиатури с Arduino: 4 стъпки
Видео: Using 28BYJ-48 Stepper Motor Push button Speed with 8 projects: Ultimate Video Tutorial Lesson 107 2024, Ноември
Anonim
Използване на цифрови клавиатури с Arduino
Използване на цифрови клавиатури с Arduino

Цифровите клавиатури могат да предоставят проста алтернатива на крайния потребител за различни интерфейси за вашите проекти. Или ако имате нужда от много бутони, те могат да ви спестят много време по отношение на конструкцията. Ще преминем през свързването им, използвайки библиотеката Arduino и след това ще завършим с полезна примерна скица.

Стъпка 1: Първи стъпки

Приготвяме се да започнем
Приготвяме се да започнем

Независимо откъде получавате клавиатурите си, уверете се, че можете да получите информационния лист - тъй като това ще улесни живота при свързването им. Например - изображението в тази стъпка.

Информационният лист е важен, тъй като ще ви каже кои щифтове или съединители на клавиатурата са за редовете и колоните. Ако нямате лист с данни - ще трябва ръчно да определите кои контакти са за редовете и колоните.

Това може да стане с помощта на функцията за непрекъснатост на мултицет (зумера). Започнете, като поставите една сонда на щифт 1, другата сонда на щифт 2 и натиснете клавишите един по един. Забележете кога бутон завършва веригата, след това преминете към следващия щифт. Скоро ще разберете кое е кое. Например в примера пиновете на клавиатурата 1 и 5 са за бутон „1 ″, 2 и 5 за„ 4 ″ и т.н.

На този етап, моля, изтеглете и инсталирайте библиотеката Arduino на клавиатурата. Сега ще покажем как да използвате и двете клавиатури в прости примери.

Стъпка 2: Използване на 12 -цифрена клавиатура

Ще използваме малката черна клавиатура, съвместима с Arduino Uno и LCD с I2C интерфейс за дисплеи. Ако нямате LCD, винаги можете да изпратите текста на серийния монитор.

Свържете вашия LCD, след това свържете клавиатурата към Arduino по следния начин: Клавиатура ред 1 към Arduino цифрова 5 Клавиатура ред 2 към Arduino цифрова 4 клавиатура ред 3 към Arduino цифрова 3 Клавиатура ред 4 към Arduino цифрова 2 клавиатура колона 1 към Arduino цифрова 8 клавиатура колона 2 към Arduino digital 7Keypad колона 3 до Arduino digital 6 Ако вашата клавиатура е различна от нашата, обърнете внимание на редовете в скицата от:

// определение на типа клавиатура

Тъй като трябва да промените числата в масивите rowPins [ROWS] и colPins [COLS]. Въвеждате цифровите пинови номера, свързани съответно с редовете и колоните на клавиатурата.

Освен това клавишите на масива съхраняват стойностите, показани на LCD дисплея, когато се натисне определен бутон. Можете да видите, че сме го съпоставили с използваната физическа клавиатура, но можете да го промените на каквото имате нужда. Но засега въведете и качете следната скица, след като сте доволни от разпределението на ред/пин номер:

/ * Цифрова клавиатура и I2C LCD https://tronixstuff.com Използва библиотека с клавиатури за Arduino https://www.arduino.cc/playground/Code/Keypad от Марк Стенли, Александър Бревиг */

#include "Keypad.h"

#include "Wire.h" // за I2C LCD #include "LiquidCrystal_I2C.h" // for I2C bus LCD LCD module // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C lcd (0x27, 16, 2); // задайте LCD адреса на 0x27 за 16 символен и 2 -редов дисплей

// определение на типа клавиатура

const байт ROWS = 4; // четири реда const байт COLS = 3; // три колони символни клавиши [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};

байт rowPins [ROWS] = {

5, 4, 3, 2}; // свързване към изводите на реда на байта на клавиатурата colPins [COLS] = {8, 7, 6}; // свързване към изводите на колони на клавиатурата

int брой = 0;

Клавиатура на клавиатурата = Клавиатура (makeKeymap (клавиши), rowPins, colPins, ROWS, COLS);

void setup ()

{lcd.init (); // инициализираме lcd lcd.backlight (); // включете LCD подсветката}

void loop ()

{char key = keypad.getKey (); if (ключ! = NO_KEY) {lcd.print (ключ); брой ++; if (брой == 17) {lcd.clear (); брой = 0; }}}

А резултатите от скицата са показани във видеото. Така че сега можете да видите как натискането на бутоните може да се преобразува в данни за използване в скица. Сега ще повторим тази демонстрация с по -голямата клавиатура.

Стъпка 3: Използване на 16 -цифрена клавиатура

Ще използваме по-голямата клавиатура 4 × 4, съвместима с Arduino Uno и за промяна I2C LCD от Akafugu за дисплейни цели. Отново, ако нямате LCD, винаги можете да изпратите текста на серийния монитор. Свържете LCD дисплея и след това свържете клавиатурата към Arduino по следния начин:

  • Клавиатура ред 1 (щифт осем) към Arduino digital 5
  • Ред на клавиатурата 2 (щифт 1) към Arduino digital 4
  • Ред на клавиатурата 3 (щифт 2) към Arduino digital 3
  • Ред на клавиатурата 4 (щифт 4) към Arduino digital 2
  • Колона от клавиатурата 1 (щифт 3) към Arduino digital 9
  • Колоната на клавиатурата 2 (щифт 5) към Arduino digital 8
  • Колона от клавиатурата 3 (щифт 6) към Arduino digital 7
  • Колоната на клавиатурата 4 (щифт 7) към Arduino digital 6

Сега за скицата - обърнете внимание как сме се приспособили за по -голямата цифрова клавиатура: допълнителната колона в клавишите char масива допълнителния щифт в масива colPins и байта COLS = 4.

/ * Цифрова клавиатура и I2C LCD https://tronixstuff.com Използва библиотека с клавиатури за Arduino https://www.arduino.cc/playground/Code/Keypad от Марк Стенли, Александър Бревиг */

#include "Keypad.h"

#include "Wire.h" // за I2C LCD #include "TWILiquidCrystal.h" // https://store.akafugu.jp/products/26 LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

const байт ROWS = 4; // четири реда

const байт COLS = 4; // четири колони символни клавиши [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; байт rowPins [ROWS] = {5, 4, 3, 2}; // свързване към изводите на реда на байта на клавиатурата colPins [COLS] = {9, 8, 7, 6}; // свързване към изводите на колони на клавиатурата int count = 0;

Клавиатура на клавиатурата = Клавиатура (makeKeymap (клавиши), rowPins, colPins, ROWS, COLS);

void setup ()

{Serial.begin (9600); lcd.begin (16, 2); lcd.print ("Тест на клавиатурата!"); забавяне (1000); lcd.clear (); }

void loop ()

{char key = keypad.getKey (); if (ключ! = NO_KEY) {lcd.print (ключ); Serial.print (ключ); брой ++; if (брой == 17) {lcd.clear (); брой = 0; }}}

И отново можете да видите резултатите от скицата по -горе във видеото.

Сега за пример проект, който е може би най -търсената употреба на цифровата клавиатура …

Стъпка 4: Примерен проект - система за достъп до PIN

Най-търсената употреба за цифрова клавиатура изглежда е приложение в стил „ПИН”, където Arduino е инструктирано да направи нещо въз основа на правилен номер, въведен в клавиатурата. Следващата скица използва хардуера, описан за предишната скица, и реализира шестцифрена система за въвеждане на ПИН код.

Действията, които трябва да се извършат, могат да бъдат вмъкнати във функции correPIN () и неправиленPIN (). И ПИН кодът е зададен в ПИН кода на масива [6]. С малко допълнителна работа можете да създадете и своя собствена функция за промяна на ПИН кода.

// ПИН ключ с 16-цифрена цифрова клавиатура // https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

const байт ROWS = 4; // четири реда

const байт COLS = 4; // четири колони символни клавиши [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; байт rowPins [ROWS] = {5, 4, 3, 2}; // свързване към изводите на реда на байта на клавиатурата colPins [COLS] = {9, 8, 7, 6}; // свързване към изводите на колони на клавиатурата

Клавиатура на клавиатурата = Клавиатура (makeKeymap (клавиши), rowPins, colPins, ROWS, COLS);

char PIN [6] = {

„1“, „2“, „А“, „D“, „5“, „6“}; // нашия опит за таен (!) номер char [6] = {'0', '0', '0', '0', '0', '0'}; // използва се за сравнение int z = 0;

void setup ()

{Serial.begin (9600); lcd.begin (16, 2); lcd.print ("PIN Lock"); забавяне (1000); lcd.clear (); lcd.print ("Въведете ПИН …"); }

void correctPIN () // направете това, ако е въведен правилен ПИН

{lcd.print (" * Правилен ПИН *"); забавяне (1000); lcd.clear (); lcd.print ("Въведете ПИН …"); }

void wrongPIN () // направете това, ако е въведен неправилен ПИН

{lcd.print (" * Опитайте отново *"); забавяне (1000); lcd.clear (); lcd.print ("Въведете ПИН …"); }

void checkPIN ()

{int правильно = 0; int i; за (i = 0; i <6; i ++) {

ако (опит == ПИН )

{правилно ++; }} ако (правилно == 6) {правильноPIN (); } else {неправиленPIN (); }

for (int zz = 0; zz <6; zz ++) {опит [zz] = '0'; }}

void readKeypad ()

{char key = keypad.getKey (); if (ключ! = NO_KEY) {опит [z] = ключ; z ++; ключ (ключ) {случай '*': z = 0; прекъсване; случай '#': z = 0; забавяне (100); // за допълнителна информация lcd.clear (); checkPIN (); прекъсване; }}}

void loop ()

{readKeypad (); }

Проектът е демонстриран във видеото.

Така че сега имате възможност да използвате клавиатури с дванадесет и шестнадесет бутона с вашите системи Arduino. Сигурен съм, че в близко бъдеще ще излезете с нещо полезно и интересно с клавиатурите.

Тази публикация ви е предоставена от pmdway.com - всичко за производители и любители на електрониката, с безплатна доставка по целия свят.

Препоръчано: