В этой статье я расскажу, как сделать кодовый замок из ардуино. Для этого нам понадобятся красный и зелёный светодиоды, зуммер, ардуино нано, 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)
Прикрепленные файлы: