Оглавление:

Каскад регистров сдвига 74HC595, управляемых через Arduino и Ethernet: 3 шага
Каскад регистров сдвига 74HC595, управляемых через Arduino и Ethernet: 3 шага

Видео: Каскад регистров сдвига 74HC595, управляемых через Arduino и Ethernet: 3 шага

Видео: Каскад регистров сдвига 74HC595, управляемых через Arduino и Ethernet: 3 шага
Видео: Лекция 111. Сдвиговый регистр 2024, Ноябрь
Anonim
Каскад регистров сдвига 74HC595, управляемых через Arduino и Ethernet
Каскад регистров сдвига 74HC595, управляемых через Arduino и Ethernet

Сегодня я хочу представить проект, который я реализовал в двух вариантах. В проекте используются 12 регистров сдвига 74HC595 и 96 светодиодов, плата Arduino Uno с экраном Ethernet Wiznet W5100. К каждому сдвиговому регистру подключено 8 светодиодов. Цифры 0-9 представлены светодиодами. Каждый сдвиговый регистр оборудован 8 выходными клеммами.

Каждый из 4 регистров сдвига 74HC595 образует логическую единицу - дисплей для перечисления 4-значного числа. Всего в проекте 3 логических дисплея, состоящих из 12 регистров сдвига.

Реализации совместимы с платами Arduino Nano, Mega, Uno, а также с экранами Ethernet и модулями из семейства Wiznet, в частности, с моделями W5100 и W5500 (с использованием библиотеки Ethernet2).

Запасы

  • Ардуино Уно / Нано
  • Ethernet Wiznet W5100 / W5500
  • Регистр сдвига от 4 до 12 74HC595
  • От 32 до 96 светодиодов

Шаг 1: Реализованные реализации в проекте с помощью Arduino:

  • Веб-сервер - HTTP-сервер, работающий непосредственно на Arduino, позволяет интерпретировать HTML-код.
  • WebClient - клиент, способный отправлять HTTP-запросы на удаленный сервер, отправлять / загружать данные.

Веб сервер:

  • Предоставляет веб-страницу HTML с формой, позволяющей ввести 3 четырехзначных числа.
  • После отправки формы данные обрабатываются и сохраняются в памяти EEPROM, пользователь информируется об обработке данных на отдельной подстранице.
  • После сохранения данных пользователь перенаправляется обратно на форму.
  • Память EEPROM энергонезависима, данные доступны даже после восстановления питания, а также перезапуска платы.
  • Затем все числа отображаются на трех дисплеях, состоящих из 12 регистров сдвига 74HC595.

Веб-клиент:

  • Связь с веб-сервером происходит каждые 5 секунд после протокола
  • Веб-сервер запускает веб-приложение PHP, которое позволяет вводить 3 четырехзначных числа через HTML-форму.
  • Данные из формы хранятся в базе данных MySQL.
  • Arduino запрашивает данные из этой базы данных через запрос к серверу.
  • Обработанные данные анализируются Arduino, а затем строятся с использованием регистров сдвига 74HC595.
  • Данные также хранятся в памяти EEPROM Arduino, они используются в случае сбоя подключения к веб-серверу / при перезапуске плат Arduino, они используются для первоначального рендеринга данных в регистрах сдвига.
  • Данные перезаписываются в EEPROM только при изменении данных, ячейки EEPROM сохраняются от ненужной перезаписи.

Шаг 2: Подключение и снимок экрана

Подключение и снимок экрана
Подключение и снимок экрана
Подключение и снимок экрана
Подключение и снимок экрана

Каскадное соединение для сдвиговых регистров 74HC595 (может быть расширено на x больше) - Экспорт из TinkerCAD. Скриншот есть из интерфейса веб-сервера, когда он получает данные через HTML-форму, обрабатывает их и сохраняет в памяти EEPROM.

Шаг 3: 74HC595 + исходные коды

Из схемы видно, что для управления регистрами сдвига используются только 3 провода данных:

  • Выход данных - (от SER до 74HC595)
  • Тактовый выход - (SRCLK на 74HC595)
  • Выход с защелкой - (RCLK до 74HC595)

Регистры сдвига могут быть объединены в каскад, в то время как другие периферийные устройства также могут управляться регистрами сдвига - например, реле для переключения силовых элементов. Также возможно управление 500 отдельными реле (с достаточным количеством регистров сдвига и источником питания) с одним выходом данных.

При управлении выходами регистров также можно изменить порядок байтов на самый старший бит - MSB FIRST или на LSB - младший бит. В результате он инвертирует выходы. В одном случае, например, горят 7 диодов, в другом - 1 диод в зависимости от входа и порядка байтов.

Обе реализации используют память EEPROM, которая может хранить данные даже после сбоя питания или после перезапуска платы. Второе использование этой памяти - это также возможность представлять последние известные данные в случае, если невозможно связаться с веб-сервером (ошибка подключения, сервер).

Память ограничена 10 000–100 000 расшифровок. Реализации рассчитаны на минимально возможную нагрузку на память. При изменении данные не будут перезаписаны. Если те же данные считываются с веб-сервера / клиента, они не перезаписываются в памяти EEPROM.

Программную реализацию (сторона Arduino) для WebClient можно бесплатно попробовать по адресу:

Arduino взаимодействует с веб-интерфейсом, в котором можно изменить 3 четырехзначных числа:

Запросите код для Arduino в качестве веб-сервера по адресу: [email protected] Пожертвуйте для получения дополнительных инструкций:

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