Ввод с клавиатуры

popacola
Offline
Зарегистрирован: 24.02.2018

У меня есть клавиатура 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);             
  } 
}

 

IVAN222
Offline
Зарегистрирован: 19.04.2017

При нажатии на клавиатуре кнопки от 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);