Ввод с клавиатуры
- Войдите на сайт для отправки комментариев
Втр, 08/05/2018 - 23:34
У меня есть клавиатура 4 на 4. Мне бы хотелось сделать что-нибуть вроде домофона.
Проблема в том, что я не могу получаемые значения соеденить в одну строку с паролем.
Вот код:
#include <Keypad.h>
const byte rows = 4;
const byte cols = 4;
char Keymap[cols][rows] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rPins[rows] = {11,10,9,8};
byte cPins[cols] = {7,6,5,4};
Keypad kpd = Keypad(makeKeymap(Keymap), rPins, cPins, rows, cols);
void setup(){
Serial.begin(9600);
}
void loop(){ /*
int pass = 1234;
int y = 0;
int i;
int z[4] = {1, 10, 100, 1000};
char keypressed = kpd.getKey();
if (keypressed != NO_KEY){
for (i = 0; i < 4; i++){
y = keypressed * z[i];
}
Serial.println(y);
}
}
При нажатии на клавиатуре кнопки от 0 до 9, будет выдовать только цифру, с последней нажатой кнопкой. Вам необходимо делать математический расчет. data1 = data1*10+customKey-48; Кусок кода набора цифр на клавиатуре, вставь его в loop и подкорректируй под себя. Создай перед этим переменную int data1=0;
char customKey = customKeypad.getKey(); if (customKey){ if(customKey =='1'||customKey =='2'||customKey =='3'||customKey =='4'||customKey =='5'||customKey =='6'|| customKey =='7'||customKey =='8'||customKey =='9'||customKey =='0'){ //если нажата кнопка от 0-9 data1 = data1*10+customKey-48; //передвигаем каретку в право и присваеваем data1 это значениеSerial.println(data1);