#define DRIVER_STEP_TIME 10 // меняем задержку на 10 мкс
#include <Keypad.h> //инициализация библиотки для работы с клавиатурой
unsigned long time; //Объявление перемеенной где мы будем принимать значение времене, через команду milllis()
////Переменные для программы
boolean SetToOpen = false;
boolean Access = false;
char Pass[4] = {"5","4","3","2"};
char UserPass[4];
int i = 0; //Переменная для текущего места массива
////Инициализация Клавиатуры
const byte ROWS = 4; //к-ов строк
const byte COLS = 4; //к-ов столбцов
char keys[ROWS][COLS] = { //инициализация клавиш
{'1','4','7','*'},
{'2','5','8','0'},
{'3','6','9','#'},
{'A','B','C','D'}
};
byte rowPins[ROWS] = {5, 4, 3, 2}; //к каким выводам подключеены строки
byte colPins[COLS] = {9, 8, 7, 6}; //к каким выводам подключеены столбцы
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); //Инициализация клавиатуры
////Основной код исполнения
void setup() //Инициализация при запуске
{
Serial.begin(9600); //Скорость передачи данных между пк и арудино
}
void loop()
{
while(1)
{
//Выбор режимов работы
char key = keypad.getKey();
if (key)
{
Serial.println(key);
if(key == '#')
{
Serial.println("Введите код: ");
SetToOpen = true;
}
if(key == '*')
{
SetToOpen = false;
Access = false;
i = 0;
break;
}
if(SetToOpen == true && i < 4)
{
UserPass[i] = key;
i++;
}
if(SetToOpen == true && i == 4)
{
int good = 0;
for(int t = 0; t < 4; t++)
{
if(Pass[t] == UserPass[t]) {good++;}
}
if(good == 4)
{
//Открываем дверь и рабогтаем с прогой
Serial.println("Sucsessful ");
Access = true;
SetToOpen = false;
}
else
{
Serial.println("Error UserPass ");
}
}
Serial.println("Error");
}
}
//выполнение условий выбора вывода данный на дисплей
//if(millis() - time > 2000 )
//{
// time = millis();
//}
//if(illis() - time > 2000 )
//{
// time = millis();
//}
}