Skocz do zawartości

Zamek szyfrowany. Wyświetlanie znaków na LCD [Początkujący]


Pomocna odpowiedź

Napisano

Dzień dobry

Celem mojego projektu jest wykonanie zamka szyfrowanego. Chciałbym, aby podczas wpisywania hasła(5 znaków) znaki wyświetlały się na wyświetlaczu LCD. W obecnej postaci wyświetla się tylko jeden znak. Czy mógłby mi ktoś wytłumaczyć jak powinienem to wykonać?

PS. Próbowałem z funkcją "while", ale jedyny skutek był taki, że od razu dostawałem 5 znaków na wyświetlaczu.

//----------------biblioteki------------
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <Keypad.h>
//#include <EEPROM.h>

//----------------zmienne------------
//LCD
LiquidCrystal_I2C lcd(0x27,20,4);   //adres 27, 16 znaków, 4 wiersze

//klawiatura
const byte ROWS = 4;    //ilość wierszy
const byte COLS = 4;    //ilość kolumn
char keys[ROWS][COLS]=
{
 {'1', '2', '3', 'A'},
 {'4', '5', '6', 'B'},
 {'7', '8', '9', 'C'},
 {'*', '0', '#', 'D'},
};
byte rowPins[ROWS] = {5,6,7,8};   //piny wierszy p1-p4
byte colPins[COLS] = {9,10,11,12};  //piny kolumn p5-p8
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );   //tworzenie klawiatury


volatile int stanAlarmu = 1;
volatile int k=0;


void wpisz()
{
   switch(keypad.getState())
   {
     case PRESSED:
     char key = keypad.getKey();
     switch (key)
     {
       case '#': lcd.print("f_spr_hasla"); break;
       case '*': lcd.clear(); break;
       default: lcd.print('*'); break;
     }
   }
}


//-------------------------------------------------------
void funkcja()
{
 switch(stanAlarmu) 
 { 
   case 1:
   {
     //Uzbrajanie
     lcd.setCursor(0,0);
     lcd.print("Wpisz haslo: ");
     lcd.setCursor(0,1);
     wpisz();
     break;
   }

   case 2:
     //Monitorowanie

   break;

   case 3:
     //Rozbrajanie

   break;

   case 4:
     //Sygnalizacja alarmu

   break;
  }
}
//-------------------------------------------------------



//-------------------------------------------------------
void setup() 
{
 pinMode(22,OUTPUT);
 pinMode(24,OUTPUT);
 lcd.init();
 lcd.backlight();
 lcd.clear();

}
//-------------------------------------------------------

void loop()
{
 keypad.getKey();
 funkcja();
}

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...