#include <Keypad.h>
const int relay = 10;
const byte ROWS = 4;
const byte COLS = 4;
char keys [ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3, 2};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
const String Password = ("1234");
String inputCode = "";
void setup() {
Serial.begin(9600);
pinMode(relay, OUTPUT);
digitalWrite(relay, LOW);
}
void loop() {
char key = keypad.getKey();
if (key) {
if (key == '#') {
if (inputCode == Password) {
digitalWrite(relay, HIGH);
delay(5000);
digitalWrite(relay, LOW);
inputCode = "";
}
if (inputCode != Password) {
Serial.println("Ошибка пароля");
digitalWrite(relay, LOW);
inputCode = "";
}
}
inputCode += key;
}
}
//Вопрос 1
//Циклы — это конструкции, которые позволяют повторять выполнение определенного блока кода несколько раз
//цикл for, while, do while. Цикл for: Используется, когда известно количество итераций. Он состоит из трех частей: инициализации, условия и инкремента.
//Цикл while: Используется, когда количество итераций заранее неизвестно, и выполнение продолжается до тех пор, пока условие истинно.
//Цикл do...while: Похож на while, но гарантирует, что код выполнится хотя бы один раз, даже если условие ложно.
//Функция delay() используется для создания временной задержки в программе. Она останавливает выполнение программы на заданное количество миллисекунд.
//Вопрос 2
//Цифровые порты ввода используются для считывания состояния внешних устройств(например кнопки). Каждое состояние может быть HIGH или LOW.
//Для считывания используются кнопки Digital.Read и digital.write. Эти порты позволяют взаимодейстовать с внешними устройствами.
//Функции: Pin.mode: устанавливает режим работы порта, может быть INPUT - вход или OUTPUT - выход.
//Также цифрововй порт может использоваться для считывания аналоговых значений с помощью PWM(Широтно импульсная модуляция)
//С помощью широтно импульсной модуляции можно также управлять цифровыми устройствами считывая аналоговый сигнал
//Аналоговый функции analogWrite - установка состояния, analogRead - чтение