Найти в Дзене

Кодовый замок на Arduino

Всем привет, сегодня я хочу показать вам как сделать кодоый замок на 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{

}

}