#include <Keypad.h> // Подключаем библиотеку
#include <GyverOLED.h>
GyverOLED<SSD1306_128x64, OLED_NO_BUFFER> oled;
const byte ROWS = 4; // 4 строки
const byte COLS = 4; // 4 столбца
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {11,10, 9, 8};
byte colPins[COLS] = {7, 6, 5, 4};
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
int p=0;
int n=0;
int flag=0;
char password[4]={'_','_','_','_'};
char password1[4]={'0','0','0','0'};
void setup(){
Serial.begin(9600);
oled.init(); // инициализация
oled.clear(); // очистка
oled.setScale(1); // масштаб текста (1..4)
oled.home(); // курсор в 0,0
delay(1000);
}
void loop(){
char key = keypad.getKey();
oled.home();
oled.setScale(1);
oled.print("Введите пароль!");
if (key)
{
Serial.println(key); // Передаем название нажатой клавиши в сериал порт
oled.setCursor(p, 1);
password[n]=key;
oled.print(password[n]);
delay(10);
p=p+10;
n=n+1;
if (key=='*')
{
Serial.print('Ввод');
for (int i=0; i<3; i=i+1)
{
if (password[i]==password1[i])
{
flag=1;
Serial.println(flag);
}
else
{
flag=0;
}
}
if (flag==1)
{
oled.clear(); // очистка
oled.setScale(1); // масштаб текста (1..4)
oled.setCursor(2, 2); // курсор в 0,0
oled.print("Пароль правильный");
delay(10000);
}
if (flag==0)
{
oled.clear(); // очистка
oled.setScale(1); // масштаб текста (1..4)
oled.home(); // курсор в 0,0
oled.print("Пароль не правильный");
delay(10000);
}
}
}
}