Всем привет, сегодня я хочу показать вам как сделать кодоый замок на Arduino.
И так, достаём Arduino Nano, Uno или любую другую.
подключаем клавиатуру с 5 по 11 контакт Arduino, подключаем зелёный светодиод на 13 контакт и спикер подключаем к 12 контакту.
После того как всё готово, открываем Arduino IDE копируем и зашиваем скетч.
Скетч:
// размеры клавиатуры
#define KP_ROWS 4
#define KP_COLS 4
int pass = 0;
int buzz = 12;
// пины подключения (по порядку штекера)
byte colPins[KP_COLS] = {7, 6, 5, 4};
byte rowPins[KP_ROWS] = {11, 10, 9, 8};
// массив имён кнопок
char keys[KP_ROWS][KP_COLS] = {
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};
// подключаем либу
#include <SimpleKeypad.h>
// создаём клавиатуру
SimpleKeypad pad((char*)keys, rowPins, colPins, KP_ROWS, KP_COLS);
void setup() {
pinMode(13, OUTPUT);
pinMode(buzz, OUTPUT);
Serial.begin(9600);
}
void(* resetFunc) (void) = 0;//объявляем функцию reset с адресом 0
void loop() {
digitalWrite(13, LOW);
digitalWrite(buzz, LOW);
// получить текущую нажатую клавишу
// вернёт 0 символ если ничего не нажато
// если кнопка нажата (не 0 символ)
// выводим в порт
char key = pad.getKey();
Serial.println(key);
// можно разобрать через
switch (key) {
case '1':
pass++;
break;
}
key = pad.getKey();
Serial.println(key);
// можно разобрать через
switch (key) {
case '1':
pass++;
break;
}
key = pad.getKey();
Serial.println(key);
// можно разобрать через
switch (key) {
case '1':
pass++;
break;
}
key = pad.getKey();
Serial.println(key);
// можно разобрать через
switch (key) {
case '1':
pass++;
break;
}
if(pass == 4){
digitalWrite(13, HIGH);
digitalWrite(buzz, HIGH);
delay(75);
digitalWrite(buzz, LOW);
delay(75);
digitalWrite(buzz, HIGH);
delay(75);
digitalWrite(buzz, LOW);
digitalWrite(buzz, HIGH);
delay(75);
digitalWrite(buzz, LOW);
delay(75);
digitalWrite(buzz, HIGH);
delay(75);
digitalWrite(buzz, LOW);
delay(7000);
resetFunc(); //вызываем reset
}
else{
}
}