Оглавление:
- Шаг 1: Требования и список деталей
- Шаг 2: Дисплей
- Шаг 3: Подключение Arduino Mega:
- Шаг 4: Подключение Arduino UNO:
- Шаг 5: как это работает
- Шаг 6: все готово
Видео: Беспроводной кодовый замок Arduino с NRF24L01 и 4-значным 7-сегментным дисплеем: 6 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:54
Этот проект начал свою жизнь как упражнение по созданию 4-значного 7-сегментного дисплея.
Что я придумал, так это возможность вводить 4-значное комбинационное число, но как только это было закончено, это было довольно скучно. Я построил его с помощью Arduino UNO. Это сработало, но больше ничего не помогло.
Затем у меня возникла идея, что у него должна быть кнопка для принятия выбранного числа и, возможно, еще одна кнопка для изменения комбинации и, возможно, светодиод, чтобы показать состояние, в котором он был в любое время. Хотя это звучало как план, это также означало, что у меня кончатся контакты в ООН. Возможно, есть способ мультиплексирования этого устройства, но я не уверен, с чего начать, поэтому я потянулся за Arduino Mega.
Теперь, когда я использовал плату большего размера и у меня было больше контактов, я также решил добавить возможности Wi-Fi для связи с другим Arduino, который фактически будет управлять каким-то переключателем.
Шаг 1: Требования и список деталей
Подумав обо всем этом, у меня появился список требований:
- Чтобы иметь возможность ввести 4-значную комбинацию.
- Начнем с жестко запрограммированной комбинации по умолчанию.
- Чтобы иметь возможность изменить комбинацию и сохранить новую комбинацию в EEPROM Arduino.
- Отображение состояния замка с помощью красного светодиода для заблокированного и зеленого светодиода для открытия.
- Отображение статуса при изменении комбинации с помощью синего светодиода.
- Когда состояние разблокировано, оставайтесь на некоторое время, а затем вернитесь в заблокированное состояние.
- Передайте заблокированное / разблокированное состояние на другой Arduino.
- Отображение того же состояния с помощью красных и зеленых светодиодов на принимающей Arduino.
- В демонстрационных целях используйте сервопривод, который действует как механизм блокировки на основе полученного состояния.
Исходя из требований, теперь я могу создать список деталей:
Передатчик:
- Arduino Mega.
- Макетная плата.
- 4-значный 7-сегментный дисплей.
- 2 переключателя без фиксации, с крышками.
- 1 светодиод RGB.
- 9 резисторов по 220 Ом. 8 для дисплея и 1 для светодиода RGB.
- 2 резистора по 10 кОм. Понижающие резисторы для 2 кнопок. (На самом деле я использовал 9,1 кОм, потому что это то, что у меня было)
- 1 потенциометр 10 кОм.
- 1 х NRF24L01
- [опционально] 1 коммутационная плата YL-105 для NRF24L01. Это позволяет подключать 5 В и упростить электромонтаж. Провода перемычки
Получатель:
- Arduino UNO.
- Макетная плата.
- 1 светодиод RGB.
- 1 резистор 220 Ом. Для светодиода.
- 1 х сервопривод. Я использовал SG90 только в демонстрационных целях.
- 1 х NRF24L01
- опционально] 1 коммутационная плата YL-105 для NRF24L01. Это позволяет подключать 5 В и упростить электромонтаж.
- Провода перемычки
Шаг 2: Дисплей
Я использовал 4-значный 7-сегментный дисплей
Протестировано с SMA420564 и SM420562K (контакты одинаковые)
Контакты 1 и 12 отмечены.
Расположение штифтов сверху вниз 12, 11, 10, 9, 8, 7 1, 2, 3, 4, 5, 6
Контакты 12, 9, 8, 6 включают или выключают цифры с 1 по 4 слева направо
Шаг 3: Подключение Arduino Mega:
Расположение выводов дисплея и Arduino
- 1 к контакту 6 через резистор 220 Ом (E)
- 2 к контакту 5 через резистор 220 Ом (D)
- 3 к контакту 9 через резистор 220 Ом (DP), здесь не используется
- 4 к контакту 4 через резистор 220 Ом (C)
- 5 к контакту 8 через резистор 220 Ом (G)
- 6 к контакту 33 (цифра 4)
- 7 к контакту 3 через резистор 220 Ом (B)
- 8 к контакту 32 (цифра 3)
- 9 к контакту 31 (цифра 2)
- 10 к контакту 7 через резистор 220 Ом (F)
- 11 к контакту 2 через резистор 220 Ом (A)
- 12 к контакту 30 (цифра 1)
Потенциометр 10 кОм для изменения числа на отображаемой цифре
- Внешний вывод на 5В
- Центральный штифт к A0
- Другой внешний контакт к GND
Принять цифровую кнопку
- Пин 36.
- И вывод 36 через понижающий резистор 10 кОм к GND.
Кнопка изменения комбинационного номера
- Пин 37.
- И вывод 37 через понижающий резистор 10 кОм к GND.
Светодиод RGB (общий катод)
- Катод к GND через резистор 220 Ом
- Красный к контакту 40
- Зеленый к контакту 41
- Синий к контакту 42
NRF24L01 с коммутационной платой:
- MISO к контакту 50 (обязательно через специальный контакт)
- MOSI к контакту 51 (обязательно через специальный контакт)
- SCK к контакту 52 (обязательно через специальный контакт)
- CE к штырю 44 (номер штыря необязательный, но определен на эскизе)
- CSN к контакту 45 (номер контакта необязательный, но определен на эскизе)
- Vcc на Arduino 5 В (или 3,3 В, если не используется коммутационная плата)
- GND к Arduino GND
Шаг 4: Подключение Arduino UNO:
Светодиод RGB (общий катод)
- Катод к GND через резистор 220 Ом
- Красный к контакту 2 Зеленый к контакту 3
- Синий (здесь не используется)
Сервопривод:
- Красный к Arduino 5 В или отдельный источник питания, если используется
- Коричневый к Arduino GND и отдельный источник питания, если используется
- Оранжевый к контакту 6
NRF24L01 с коммутационной платой:
MISO к контакту 12 (обязательно через специальный контакт)
MOSI к контакту 11 (обязательно через специальный контакт)
SCK к контакту 13 (обязательно через специальный контакт)
CE к контакту 7 (необязательный номер контакта, но определен на эскизе)
CSN к контакту 8 (необязательный номер контакта, но определен в эскизе)
Vcc на Arduino 5 В (или 3,3 В, если не используется коммутационная плата)
GND к Arduino GND
Шаг 5: как это работает
Когда оба макета готовы и на них загружен соответствующий скетч, мы можем его протестировать.
При включенном питании на обеих платах.
На обеих платах должны гореть красные светодиоды.
На дисплее отобразится число в первой цифре. Это число будет зависеть от того, где в настоящее время установлен потенциометр.
Поверните потенциометр, чтобы получить желаемое число.
Как только номер будет найден, нажмите кнопку подтверждения. В моем случае это тот, который находится слева от потенциометра.
Проделайте то же самое с тремя другими числами.
Если введенная комбинация верна, отобразится слово OPEn, на обеих платах загорится зеленый светодиод, а сервопривод повернется на 180 градусов.
Дисплей погаснет, а зеленый светодиод будет гореть еще примерно 5 секунд.
По истечении времени разблокировки оба светодиода загорятся красным, а сервопривод повернется на 180 градусов к своему началу.
Если введенная комбинация неверна, отобразится слово OOPS, а красные светодиоды останутся включенными.
В скетче есть жестко закодированная комбинация по умолчанию: 1 1 1 1.
Чтобы изменить комбинацию, вы должны сначала ввести правильную комбинацию.
Как только слово OPEn исчезнет, у вас будет около 5 секунд, чтобы нажать другую кнопку.
После того, как вы введете последовательность изменения комбинации, светодиод главной платы станет синим, в то время как другой останется зеленым и, следовательно, открытым.
Введите новую комбинацию так же, как и раньше.
Как только новая комбинация будет принята (при последнем нажатии кнопки), она будет сохранена в EEPROM.
Оба Arduinos перейдут в заблокированный режим.
Введите новую комбинацию, и она откроется, как и ожидалось.
Как только комбинация была изменена и сохранена в EEPROM, жестко заданное по умолчанию значение 1 1 1 1 игнорируется.
Шаг 6: все готово
Я построил его, используя базовый NRF24L01 со встроенной антенной, и обеспечил хорошую связь на расстоянии около 15 футов через одну стену.
Поскольку макетная плата Arduino Mega была немного занята проводами, в некоторых местах я использовал прямые перемычки. Это, учитывая тот факт, что на одной макетной плате много, затрудняет отслеживание изображений.
Тем не менее, я думаю, что я объяснил все, штырь за штифтом, и даже если вы новичок, вы сможете построить этот небольшой проект, просто взяв по одному проводу или штифту за раз.
Оба эскиза полностью прокомментированы для удобства чтения и доступны для скачивания здесь.
Эскиз для Arduino Mega довольно большой, около 400 строк, но разбит на управляемые фрагменты, поэтому за ним легко следить.
Рекомендуемые:
Кодовый замок ESP32 с сенсорным экраном: 5 шагов
Кодовый замок ESP32 с сенсорным экраном: многие люди просили меня дать очень простой пример кода для ArduiTouch, чтобы протестировать их работу, а также в качестве отправной точки для собственных разработок. Этот очень простой кодовый замок продемонстрирует основные функции Arduitouch без каких-либо наворотов и
Электронный кодовый замок: 4 ступени
Электронный кодовый замок: цифровые кодовые замки очень популярны в электронике, где вам нужно ввести определенный «код», чтобы открыть замок. Этот тип замков требует микроконтроллера для сравнения введенного кода с предопределенным кодом для открытия замка. Есть такие
Простой секретный кодовый замок!: 5 шагов
Простой секретный кодовый замок !: Всем привет! Сегодня я хочу показать вам свою идею создания очень простого и крутого кодового замка. Он не похож на другие замки, он не имеет цифровой клавиатуры и состоит всего из 4 частей! Заинтересованы? Итак, начнем
EAL - Embedded - Кодовый замок: 4 шага
EAL-Embedded - Кодовый замок: это один из школьных проектов, который я сделал, чтобы выбрать предмет 2.1 C-программирование в EAL. Это первый раз, когда я делал проект Arduino и C-программирование. Это проект, в котором присутствует кодовый замок. Кодовый замок
Цифровой кодовый замок!: 7 шагов (с изображениями)
Цифровой кодовый замок !: Мне всегда было интересно, как работают электронные замки, поэтому, закончив базовый курс цифровой электроники, я решил построить один сам. И я помогу тебе построить свой собственный! Вы можете подключить его к чему угодно от 1 до 400 В (или м