Помощь с клавиатурой 4х4

Тема в разделе "Arduino & Shields", создана пользователем Kanduba128, 7 янв 2017.

  1. Kanduba128

    Kanduba128 Нуб

    Помогите написать код, который будет считывать значения с матричной клавиатуры, и когда наберется 7 значений они отправлялись в сериал. Я пробовал разными способами, результат один- не ждет, пока я введу все 7 символов, а шлет в сериал всякий мусор непрерывно. Вот одна из попыток :
    Код (C++):
    #include <Keypad.h>
    char num[6];
    int i = 0;
    const byte ROWS = 4;
    const byte COLS = 3;
    char keys[ROWS][COLS] = {
      {'1','2','3'},
      {'4','5','6'},
      {'7','8','9'},
      {'#','0','*'}
    };
    byte rowPins[ROWS] = {5, 4, 3, 2};
    byte colPins[COLS] = {8, 7, 6};
    Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
    void setup(){
      pinMode(13,OUTPUT);
      Serial.begin(9600);
      digitalWrite(13,LOW);
    }
    void loop(){
      char key = keypad.getKey();
      if (key){
     
       num[i]=key;
       i++;}

     
        for(i = 0;i<=6;i++){
          Serial.print(num[i]);
       
      }
    }
     

    Вложения:

  2. Mihail Vasilev

    Mihail Vasilev Нерд

    Перед циклом поставьте
    Код (C++):
    if(i>5) {
    После -
    Код (C++):
    i=0;
    а переменную в цикле - замените на j.