хелп, выводит только нажатые клавиши

Тема в разделе "Arduino & Shields", создана пользователем Lukan99, 2 фев 2019.

  1. Lukan99

    Lukan99 Нуб

    Код (C++):

    unsigned int del = 0;
    #define ledred 5
    #define ledrgr A2
    #define ledye A3
    //КЛААВИАТУРА
    #include <Password.h>
    #include <Keypad.h>
    #include "GyverButton.h"
    //пароль
    Password password = Password("1234"); // здесь задаём пароль
    int dlugosc = 4; // количество цифр в пароле
    int ilosc; // number of clicks
    //клавиши
    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'}
    };
    byte rowPins[ROWS] = {13, 12, 11, 10};
    byte colPins[COLS] = {9, 8, 7, 6};
    Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

    //КЛАВИАТУРА
    //СЧЕТЧИК ВРЕМЕНИ
    int digit = 0; //номер цифры
    byte digits[10] = // чифры в двоичнмом бинарном коде
    {
    B01111110,B00110000,B01101101,
    B01111001,B00110011,B01011011,
    B11011111,B01110000,B01111111,B11111011
    };
    //СЧЕТЧИК ВРЕМЕНИ
    //У.З. ДАТЧИК
    long duration, cm; // переменная длины
    //У.З. ДАТЧИК
    void setup() {
    Serial.begin(9600);
    pinMode(ledred,OUTPUT);
    //У.З. ДАТЧИК
    pinMode(A0,OUTPUT);
    pinMode(A1,INPUT);
    //У.З. ДАТЧИК
    //КЛАВИАТУРА
    keypad.addEventListener(keypadEvent);
    //КЛАВИАТУРА
    //СЧЕТЧИК
    for(int pin = 2; pin <= 4; pin++)
    {
    pinMode(pin,OUTPUT);
    digitalWrite(pin,0);
    }
    //СЧЕТЧИК
    }
    void loop() {
      keypad.getKey();
    digitalWrite(A0,0);
    delayMicroseconds(2);
    digitalWrite(A0,1);
    delayMicroseconds(15);
    digitalWrite(A0,0);
    if(millis() - del > 50){
    del = millis();
    duration = pulseIn(A1,1);
    cm = duration/29/2;
    }
    Serial.println(cm);
    if(cm < 10 ){
      timer();

    }

    if(digit == 9){
    digitalWrite(ledye,1);
    digitalWrite(2,0);
    shiftOut(3,4,LSBFIRST,B11111111);
    digitalWrite(2,1);
    }

    }
    //СЧЕТЧИК
    void timer(){
    if(millis() - del > 500){
    del = millis();
    digitalWrite(2,0);
    ++digit;
    shiftOut(3,4, LSBFIRST, digits[digit]);
    digitalWrite(2,1);
    }
    }
    //СЧЕТЧИК
    void checkPassword()
    {
    if (password.evaluate())
    {
    ilosc = 0;
    Serial.println("Success");
    Serial.print(" « OPEN »");
    }
    else
    {
    ilosc = 0;
    password.reset();
    digitalWrite(ledred,1);
    Serial.println("NO");
    if(millis() - del > 2000){
    del = millis();
    Serial.print(" « CLOSE »");
    }
    Serial.print(" :Welcome:");
    Serial.print("PLEASE ENTER PIN");
    }
    }
    //КЛАВИАТУРА
    void keypadEvent(KeypadEvent eKey)
    {
    switch (keypad.getState())
    {
    case PRESSED:
    Serial.print("Pressed: ");
    Serial.println(eKey);
    switch (eKey) {
    {
    case '*':
    password.reset();
    default:
    ilosc=ilosc++;
    password.append(eKey);
    }

    Serial.println(ilosc);
    if(millis() - del > 250){
    del = millis();
    if(ilosc == 1)
    {
    Serial.print(" < PIN >");
    Serial.print("*_");
    }
    if(ilosc == 2)
    {
    Serial.print(" < PIN >");
    Serial.print("**_");
    }
    if(ilosc == 3)
    {
    Serial.print(" < PIN >");
    Serial.print("***_");
    }
    if(ilosc == 4)
    {
    Serial.print(" < PIN >");
    Serial.print("****_");
    }
    if(ilosc == 5)
    {
    Serial.print(" < PIN >");
    Serial.print("*****_");
    }
    if(ilosc == 6)
    {
    Serial.print(" < PIN >");
    Serial.print("******_");
    }
    if(ilosc == 7)
    {
    Serial.print(" < PIN >");
    Serial.print("*******_");
    }
    if(ilosc == 8)
    {
    Serial.print(" < PIN >");
    Serial.print("********");
    }
    if(ilosc == dlugosc)
    {
    checkPassword();
    ilosc = 0;
    }
    }
    }
    }
    }
    \

    выводит только нажатые клавиши

    [​IMG]

    а должен так [​IMG]