Кодовый замок из ардуино

В этой статье я расскажу, как сделать кодовый замок из ардуино. Для этого нам понадобятся красный и зелёный светодиоды, зуммер, ардуино нано, LCD дисплей с I2C конвертором, сервопривод и матричная клавиатура 4×4. При включении дисплей будет писать «Enter code.»,

включится красный светодиод,

а зелёный погаснет, сервопривод установится на 0°. При вводе цифр на дисплее будут загораться *.

Если код введён неверно, то дисплей напишет «Enter cod.». Если код правильный, то прозвучит звуковой сигнал, серво привод повернётся на 180°, дисплей напишет «Open.»

включится зелёный светодиод,

а красный отключится. После 3 секунд сервопривод вернётся в начальное положение, включится красный светодиод, а зелёный погаснет, дисплей напишет «Close.»,

далее дисплей напишет «Enter code.». Теперь о схеме. Сначала соединяем ардуино проводами с макетной платой (контакты питания).

Потом подключаем к контактам D9 — D2 матричную клавиатуру.

Далее подключаем дисплей. Контакты питания к макетной плате, SDA — А4, SCL — А5.

Затем сервопривод. Его подключаем к контакту 10.

Красный светодиод к контакту 11.

Зелёный — к контакту 12.

Зуммер — к контакту 13.

Теперь загружаем скетч.

#include <iarduino_KB.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
iarduino_KB KB(9, 8, 7, 6, 5, 4, 3, 2);
LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo servo;
int pass[4] = {3, 6, 1, 8};
int in[4];
int r = 11;
int g = 12;
void setup() {
KB.begin(KB1);
pinMode(r, OUTPUT);
pinMode(g, OUTPUT);
lcd.init();
lcd.backlight();
digitalWrite(g, LOW);
digitalWrite(r, HIGH);
servo.attach(10);
servo.write(0);
lcd.setCursor(0, 0);
}
void loop() {
lcd.clear();
lcd.print(«Enter code.»);
while (!KB.check(KEY_DOWN)) {
delay(1);
}
in[0] = KB.getNum;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(‘*’);
while (!KB.check(KEY_DOWN)) {
delay(1);
}
in[1] = KB.getNum;
lcd.print(‘*’);
while (!KB.check(KEY_DOWN)) {
delay(1);
}
in[2] = KB.getNum;
lcd.print(‘*’);
while (!KB.check(KEY_DOWN)) {
delay(1);
}
in[3] = KB.getNum;
lcd.print(‘*’);
if (in[0] == pass[0]) {
if (in[1] == pass[1]) {
if (in[2] == pass[2]) {
if (in[3] == pass[3]) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(«Open.»);
tone(13, 400, 750);
servo.write(180);
digitalWrite(r, LOW);
digitalWrite(g, HIGH);
delay(3000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(«Close.»);
tone(13, 300, 700);
servo.write(0);
digitalWrite(g, LOW);
digitalWrite(r, HIGH);
delay(1000);
}
}
}
}
}

Вот и всё. Наслаждайтесь кодовым замком!


Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот

Е1
Плата ArduinoArduino Nano 3.01
5ВЕ8, Е9
Резистор220 Ом2
SMDЕ6
СветодиодАЛ102Г1
КрасныйЕ7
СветодиодАЛ307Г1
ЗелёныйЕ3
LCD-дисплейС I2C интерфейсом1
Зелёная подсветкаЕ5
СервоприводSG901
180 градусовЕ2
Зуммер5В1
BuЕ4
Клавиатура4Х41
МатричнаяНет
BreadBoard640 точек1
Без пайкиДобавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Добавить комментарий

Ваш адрес email не будет опубликован.