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

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

Проверка 1.

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

Проверка 2.

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

Проверка 3.

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

Проверка 4.

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

Проверка 5.

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

Проверка 5.

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

Соединение ардуино с BreadBoard

Потом подключаем к контактам 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 Плата Arduino Arduino Nano 3.0 1
Е8, Е9 Резистор 220 Ом 2 SMD
Е6 Светодиод АЛ102Г 1 Красный
Е7 Светодиод АЛ307Г 1 Зелёный
Е3 LCD-дисплей С I2C интерфейсом 1 Зелёная подсветка
Е5 Сервопривод SG90 1 180 градусов
Е2 Зуммер 1 Bu
Е4 Клавиатура 4Х4 1 Матричная
Нет BreadBoard 640 точек 1 Без пайки