Diy

Программирование Arduino — игра с регистрами сдвига (или еще больше светодиодов)

Программирование Arduino - игра с регистрами сдвига (a.k.a еще больше светодиодов)

Сегодня я постараюсь рассказать вам немного о регистрах сдвига. Это довольно важная часть программирования Arduino, в основном потому, что они увеличивают количество выходов, которые вы можете использовать, в обмен только на 3 управляющих контакта. Вы также можете объединить регистры сдвига гирляндной цепи, чтобы получить еще больше выходов.

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

Что такое сдвиговый регистр?

Технически говоря, выходной сдвиговый регистр принимает данные последовательно и выводит их параллельно. С практической точки зрения это означает, что мы можем быстро отправить кучу команд вывода на чип, сказать ему активировать, и выводы будут отправлены на соответствующие выводы. Вместо того, чтобы перебирать каждый вывод, мы просто отправляем вывод, необходимый для всех выводов одновременно, в виде одного байта или более информации.

Если это поможет вам понять, вы можете думать о сдвиговом регистре как о «массиве» цифровых выходов, но мы можем пропустить обычные команды digitalWrite и просто отправить серию битов, чтобы включить или выключить их.

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

Сдвиговый регистр, который мы будем использовать — 74HC595N, включенный в стартовый комплект Oomlout, — требует только 3 управляющих контакта. Первый — это часы — вам не нужно сильно беспокоиться об этом, поскольку последовательные библиотеки Arduino управляют им, — но часы — это, в основном, электрический импульс включения / выключения, который задает темп сигнала данных.

Защелкивающийся штырь используется, чтобы сообщить сдвиговому регистру, когда он должен включать и выключать свои выходы в соответствии с битами, которые мы только что отправили, т. Е. Зафиксировать их на месте.

Наконец, вывод данных — это то место, куда мы отправили фактические последовательные данные с битами, чтобы определить состояние включения / выключения выходов регистра сдвига.

Весь процесс можно описать в 4 этапа:

  1. Установите вывод данных на высокий или низкий для первого выходного контакта на сдвиговом регистре.
  2. Импульсные часы, чтобы «сдвинуть» данные в регистр.
  3. Продолжайте устанавливать данные и пульсировать часы, пока не установите необходимое состояние для всех выходных контактов.
  4. Нажмите на фиксатор, чтобы активировать выходную последовательность.

Реализация

Вам нужны следующие компоненты для этого проекта:

  • 7HC595N чип сдвигового регистра
  • 8 светодиодов и соответствующие резисторы, или все, что вы хотите вывести на
  • Обычный макет, разъемы и базовый Arduino

Если у вас есть стартовый комплект Oomlout , вы можете скачать макет отсюда.

Вот видео сборки: