Оглавление:

Беспроводной кодовый замок Arduino с NRF24L01 и 4-значным 7-сегментным дисплеем: 6 шагов (с изображениями)
Беспроводной кодовый замок Arduino с NRF24L01 и 4-значным 7-сегментным дисплеем: 6 шагов (с изображениями)

Видео: Беспроводной кодовый замок Arduino с NRF24L01 и 4-значным 7-сегментным дисплеем: 6 шагов (с изображениями)

Видео: Беспроводной кодовый замок Arduino с NRF24L01 и 4-значным 7-сегментным дисплеем: 6 шагов (с изображениями)
Видео: Спутниковые часы с использованием модуля Arduino Uno + Neo 6M + модуля TM1637 в формате UTC Local 12/24 часа. 2024, Ноябрь
Anonim
Беспроводной кодовый замок Arduino с NRF24L01 и 4-значным 7-сегментным дисплеем
Беспроводной кодовый замок Arduino с NRF24L01 и 4-значным 7-сегментным дисплеем

Этот проект начал свою жизнь как упражнение по созданию 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 Mega
Подключение 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:

Подключение Arduino UNO
Подключение 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: как это работает

Image
Image
Как это работает
Как это работает
Как это работает
Как это работает
Как это работает
Как это работает

Когда оба макета готовы и на них загружен соответствующий скетч, мы можем его протестировать.

При включенном питании на обеих платах.

На обеих платах должны гореть красные светодиоды.

На дисплее отобразится число в первой цифре. Это число будет зависеть от того, где в настоящее время установлен потенциометр.

Поверните потенциометр, чтобы получить желаемое число.

Как только номер будет найден, нажмите кнопку подтверждения. В моем случае это тот, который находится слева от потенциометра.

Проделайте то же самое с тремя другими числами.

Если введенная комбинация верна, отобразится слово 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 строк, но разбит на управляемые фрагменты, поэтому за ним легко следить.

Рекомендуемые: