Close

Odpověď na: Čtení hesla z

Úvodní stránka Fórum Vaše projekty Arduino Čtení hesla z Odpověď na: Čtení hesla z

#10302
Zbyšek Voda
Správce

Pojďme tedy pokračovat dál 🙂 Koukám na dokumentaci, tak snad ji dobře chápu. (http://playground.arduino.cc/Code/Keypad)

Prozkoumejme pořádně funkci keypadEvent.

void keypadEvent(KeypadEvent eKey){
  for (int i =0; i = 5; i++){
    admpw[i] = keypad.getState();
    Serial.println(admpw[i]);
  }
}

Ta je zavolána kdykoliv, když dojde ke změně stavu klávesy (uvolnění, stisknutí).

Funkce getState() vrací hodnotu podle toho, co se s keypadem děje – vrací hodnoty
IDLE, PRESSED, RELEASED a HOLD. Vy tedy budete ve funkci keypadEvent testovat, jestli je getState() rovna PRESSED a poté zapisovat hodnotu stisknuté klávesy do pole admpw[] na patřičné místo (další v pořadí).

Takže bych postupoval následovně: vytvořte si na začátku programu proměnnou int pos = 0;, která bude udávat pozici načteného znaku. Při stisknutí tlačítka dojde k uložení stisknutého tlačítka do pole admpw na index pos a navýšení proměnné pos o 1. Musíte si také pohlídat, aby pos měla hodnoty 0 – 4. To se dá zařídit operátorem modulo – %.

void keypadEvent(KeypadEvent eKey){
  if(keyboard.getState == PRESSED){
    admpw[pos] = keyboard.getKey();
    pos = (pos + 1) % 5;
  }
}

Takhle by to podle mě mohlo jít 🙂