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