Как подключить сдвиговый регистр 74HC595 к Arduino. Зачем нужен сдвиговый регистр. Какие преимущества дает использование 74HC595. Как программировать Arduino для работы со сдвиговым регистром. Какие проекты можно реализовать с помощью 74HC595 и Arduino.
Что такое сдвиговый регистр 74HC595 и зачем он нужен
Сдвиговый регистр 74HC595 — это интегральная микросхема, которая позволяет значительно расширить возможности микроконтроллеров вроде Arduino по управлению внешними устройствами. Основные характеристики и преимущества 74HC595:
- Преобразует последовательный ввод в 8 параллельных выходов
- Позволяет управлять 8 устройствами, используя всего 3 пина Arduino
- Можно каскадировать несколько регистров для еще большего расширения
- Работает на частотах до 100 МГц
- Низкое энергопотребление
- Доступная цена (менее $1 за штуку)
Благодаря этим особенностям 74HC595 часто используется в проектах, где нужно управлять большим количеством светодиодов, семисегментных индикаторов, реле и других устройств, имея ограниченное число выводов микроконтроллера.
Схема подключения 74HC595 к Arduino
Для базового подключения одного сдвигового регистра 74HC595 к Arduino нужно соединить следующие выводы:
- 74HC595 pin 14 (DS) -> Arduino pin 11 (MOSI)
- 74HC595 pin 11 (SHCP) -> Arduino pin 13 (SCK)
- 74HC595 pin 12 (STCP) -> Arduino pin 10 (SS)
- 74HC595 pin 13 (OE) -> Ground
- 74HC595 pin 10 (MR) -> 5V
- 74HC595 pin 16 (Vcc) -> 5V
- 74HC595 pin 8 (GND) -> Ground
Выходы Q0-Q7 (пины 15 и 1-7) подключаются к управляемым устройствам через резисторы. При каскадировании нескольких регистров выход Q7′ (пин 9) первого соединяется с входом DS следующего.
Программирование Arduino для работы с 74HC595
Для управления сдвиговым регистром 74HC595 с Arduino используется специальная функция shiftOut(). Вот базовый пример кода:
«`cpp #define dataPin 11 // DS #define clockPin 13 // SHCP #define latchPin 10 // STCP void setup() { pinMode(dataPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(latchPin, OUTPUT); } void loop() { digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, MSBFIRST, B10101010); digitalWrite(latchPin, HIGH); delay(1000); } «`Этот код поочередно включает и выключает светодиоды, подключенные к выходам регистра. Функция shiftOut() последовательно передает биты в регистр, а сигнал на latchPin заставляет регистр выдать новое состояние на выходы.
Практические применения 74HC595 с Arduino
Сдвиговый регистр 74HC595 в сочетании с Arduino открывает широкие возможности для различных проектов. Вот несколько популярных применений:
- Управление большими светодиодными матрицами и дисплеями
- Создание бегущих строк и световых эффектов
- Контроль множества семисегментных индикаторов
- Управление несколькими сервоприводами или шаговыми двигателями
- Расширение возможностей домашней автоматизации
- Создание игровых контроллеров с большим числом кнопок
Рассмотрим пример использования 74HC595 для управления 8-сегментным светодиодным индикатором:
«`cpp #define dataPin 11 #define clockPin 13 #define latchPin 10 byte digits[] = { B11111100, // 0 B01100000, // 1 B11011010, // 2 B11110010, // 3 B01100110, // 4 B10110110, // 5 B10111110, // 6 B11100000, // 7 B11111110, // 8 B11110110 // 9 }; void setup() { pinMode(dataPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(latchPin, OUTPUT); } void loop() { for (int i = 0; i < 10; i++) { digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, MSBFIRST, digits[i]); digitalWrite(latchPin, HIGH); delay(1000); } } ```Этот код последовательно отображает цифры от 0 до 9 на 7-сегментном индикаторе, используя всего 3 пина Arduino вместо 8, которые потребовались бы при прямом подключении.
Преимущества использования 74HC595 в проектах Arduino
Применение сдвиговых регистров 74HC595 в проектах на базе Arduino дает ряд существенных преимуществ:
- Экономия пинов микроконтроллера для других задач
- Возможность управлять большим количеством устройств
- Упрощение монтажа при работе с множеством светодиодов или других компонентов
- Снижение нагрузки на выходы Arduino
- Возможность легко масштабировать проекты, добавляя новые регистры
- Повышение скорости работы за счет аппаратной реализации сдвига
Эти преимущества делают 74HC595 незаменимым компонентом для многих проектов, особенно связанных с светодиодными дисплеями, системами управления и автоматизацией.
Советы по работе с 74HC595 и Arduino
При использовании сдвиговых регистров 74HC595 с Arduino следует учитывать несколько важных моментов:
- Всегда используйте подтягивающие резисторы на выходах регистра для защиты светодиодов или других устройств.
- Обратите внимание на максимальный ток, который может обеспечить регистр (около 70 мА на выход).
- При каскадировании нескольких регистров убедитесь, что все они имеют общее заземление.
- Используйте конденсаторы для фильтрации питания, особенно при работе на высоких частотах.
- Помните о возможности использования библиотек, таких как ShiftRegister74HC595, для упрощения работы с регистрами.
Соблюдение этих рекомендаций поможет избежать ошибок и повысить надежность ваших проектов с использованием 74HC595 и Arduino.
Заключение: расширяя горизонты Arduino с 74HC595
Сдвиговый регистр 74HC595 значительно расширяет возможности Arduino и других микроконтроллеров, позволяя реализовывать более сложные и масштабные проекты. Благодаря простоте использования, низкой стоимости и высокой эффективности, эта микросхема стала стандартным инструментом для многих разработчиков электроники.
Освоив работу с 74HC595, вы сможете создавать впечатляющие светодиодные дисплеи, эффективные системы управления и многое другое, преодолевая ограничения по количеству выводов Arduino. Экспериментируйте, комбинируйте несколько регистров и не бойтесь воплощать в жизнь самые смелые идеи!
Сдвиговый регистр 74HC595 SN74HC595N DIP
Сдвиговый регистр 74HC595 SN74HC595N DIPКонтакты Заказать звонок Написать письмо Оптовикам Статьи
109
724
Описание
Микросхема 74HC595 — один из самых распространённых сдвиговых регистров: синхронный, с регистром данных (latch). Она позволяет увеличивать количество выходов микроконтроллера.
Чип преобразовывает входящий последовательный сигнал на 1 пине (Ds) в выходной параллельный на 8 пинах (Qx). Последовательная передача синхронна: для такта используется дополнительный пин (SHcp). Также отдельным пином управляется регистр данных (STcp), что позволяет изменять сигнал на 8 выходах единовременно, когда все данные переданы.
Таким образом образом из трёх пинов микроконтроллера, такого как Arduino, можно получить 8 цифровых выходов. Из регистров 74HC595 можно делать каскады, подключая один за другим (через пин Q7’), и таким образом из всё тех же 3 входящих линий получать 16, 24, 32 и т. д. цифровых выходов.
Используйте сдвиговый регистр для увеличения количества выходов микроконтроллера. Например, для управления большим количеством светодиодов.
Для удобной работы с чипом через Arduino, существует встроенная функция shiftOut
Дополнительно
Назначение | Для плат |
Тип | Макетные плати и компоненты |
Комментарии
0Пока не было комментариев.
Прокомментировать
Для покупки регистрация не обязательна! Если хотите сделать заказ, — просто добавьте нужные вам товары в корзину, укажите свои данные и нажмите кнопку «Оформить заказ». Мы свяжемся с вами в ближайшее время. Оплата — перевод на карту-ключ счета ПБ — онлайн без комиссии картой любого банка (LiqPay) — безналичный расчет без НДС для юридических лиц — наличными или картой при доставке (только Новой Почтой при заказе от 100 грн) — наличными или через терминал в нас в магазине Нашли дешевле? Напишите нам об этом в чат — кнопка в левом нижнем углу экрана. В сообщении укажите ссылку на активную страницу такого же товара в украинском интернет-магазине и мы пересмотрим цену. Доставка — Новая Почта — Укрпочта (только при предоплате) — Самовывоз (можете также вызвать курьера Глово по Ивано-Франковску) Отправка товара происходит каждый рабочий день. В большинстве случаев, ваш заказ уедет в день заявки/оплаты или на следующий день.. Заказы самовывозом можно забрать в нашем магазине, после заявки позвоним вам и скажем, когда посылка с заказом будет готова к выдаче. Гарантия и возврат — возврат в течение 14 дней, если товар не подошел — гарантия от 6 месяцев на товары собственного изготовления |
Arduino sn74hc595n
Доброго времени суток! Ситуация, когда в микроконтроллере не хватает выходов, встречается довольно часто. Для решения подобной проблемы воспользуемся сдвиговым регистром 74HC Регистр контролирует 8 выходов, занимая всего 3 выхода микроконтроллера. Кроме этого можно собрать каскад из нескольких таких регистров. Регистр использует принцип синхронизированной последовательной передачи сигнала.
Поиск данных по Вашему запросу:
Схемы, справочники, даташиты:
Прайс-листы, цены:
Обсуждения, статьи, мануалы:
Дождитесь окончания поиска во всех базах.
По завершению появится ссылка для доступа к найденным материалам.
Содержание:
- Как подключить сдвиговый регистр к Arduino (или увеличиваем число выводов микроконтроллера)
- Сдвиговый регистр 74HC595
- Сдвиговый регистр 74hc595 Arduino
- Arduino Nano и 74HC595 — расширяем порты вывода
- Сдвиговый регистр 74HC595 или увеличение выходов Arduino с минимальными затратами
- Эксперимент 14. Счётчик нажатий
- Программирование Arduino урок 13 — сдвиговый регистр 74HC595
- Как подключить сдвиговый регистр 74HC595 к Arduino
ПОСМОТРИТЕ ВИДЕО ПО ТЕМЕ: Arduino Tutorial #3 — Shift Registers (74HC595)
Как подключить сдвиговый регистр к Arduino (или увеличиваем число выводов микроконтроллера)
В одной из предыдущих статей мы уже бегло касались применения сдвигового регистра, в частности, 74HC Давайте более детально рассмотрим возможности и порядок работы с данной микросхемой.
Конструктивно микросхема выполняется в нескольких типах корпусов; я буду использовать микросхему в выводном корпусе DIP, так как его проще использовать с макетной платой бредбордом. Коротко напомню о последовательном интерфейсе SPI, который мы будем использовать для передачи данных в сдвиговый регистр. SPI — это четырёхпроводный двунаправленный последовательный интерфейс, в котором принимают участие ведущее и ведомое устройства. Ведущим в нашем случае будет являться Arduino, ведомым — регистр 74HC Среда разработки для Arduino имеет встроенную библиотеку работы по интерфейсу SPI.
Думаю, тут всё понятно. Единственный комментарий — справа на монтажной плате — ряд из 8-ми штырьков разъём типа PLS , с которых удобно снимать параллельные данные сдвигового регистра.
Я также подключу ко всем ножкам микросхемы регистра сдвига логический анализатор. С помощью него мы увидим, что же происходит на физическом уровне, какие сигналы куда идут, и разберёмся, что они означают.
У меня получилось так, как показано на фотографии. Напишем вот такой скетч и загрузим в память Arduino. Здесь мы по циклу будем записывать два числа — и 0 — в сдвиговый регистр с небольшими временными интервалами между ними. Да, только и всего.
В ранних версиях Arduino IDE например, 1. В принципе, мы могли бы с таким же успехом использовать любой другой цифровой вывод Arduino; тогда пришлось бы в программе объявить его и не забыть задать режим работы — OUTPUT. После передачи мы снова поднимаем напряжение в HIGH, и обмен заканчивается. Включим схему в работу и посмотрим, что покажет логический анализатор.
Общий вид временной диаграммы — на рисунке. Голубой пунктирной линией показаны 4 линии SPI, красной пунктирной — 8 каналов параллельных данных регистра сдвига. Точка A на шкале времени — это момент передачи в регистр сдвига числа «», B — момент записи числа «0», C — завершение текущей итерации цикла и начало новой.
Как видно, от А до B — 10,03 миллисекунд, а от B до С — 90,12 миллисекунд, почти как мы и задали в скетче. Небольшая добавка в 0,03 и 0,12 мс — время передачи последовательных данных от Arduino, поэтому мы тут имеем не ровно 10 и 90 мс.
Обратите внимание на временной масштаб. Теперь это микросекунды, а на предыдущем были миллисекунды. То есть это сильно укрупнённый по сравнению с первой диаграммой участок. Для передачи одного байта генерируется 8 тактовых импульсов. Я выделил это голубой пунктирной линией и подписал значения для наглядности.
Опять всё начинается с выбора ведомого и генерирования 8-ми тактовых импульсов первый и второй каналы сверху. То есть мы записываем в этот момент в регистр число «0». Оно выводится на параллельные выводы Q Такое подключение называется независимым. Независимое подключение ведомых SPI устройств например, регистров 74HC к ведущему например, Arduino изображено на левой части рисунка. Думаю, это уже достаточно просто для нас, так как оно почти ничем не отличается от подключения одного сдвигового регистра.
Поэтому давайте рассмотрим другой тип подключения — каскадный. В разделе 3 этой статьи была дана схема подключения одного регистра 74HC к Arduino. Схема, когда к Arduino подключены несколько ведомых устройств в каскадном режиме, отличается не сильно. Остальные выводы сдвиговых регистров подключены так же, как на предыдущей схеме. У Arduino же используются те же 4 стандартных пина SPI, что и при подключении к единственному регистру сдвига.
В моём случае — из ти светодиодов, каждый из которых будет представлять один из разрядов параллельных выходов на все 24 не хватило места на монтажке. Обратите внимание, мы обращались к параллельным выходам 3-х сдвиговых регистров как к большому разрядному числу. Но что делать, если вы подключили к Arduino большее количество 74HC? Такими большими числами Arduino, конечно же, оперировать не умеет. В таком случае придётся работать с байтами. То есть передавать в каждый регистр своё 8-разрядное значение.
На видео в конце статьи результат наглядно показан в динамике. Таким образом, мы детально изучили вопрос информационного обмена между ведущим устройством, в роли которого выступил Arduino, и сдвиговым регистром 74HC Научились подключать сдвиговый регистр, записывать в него данные и считывать из него данные. Нам понадобится: Arduino UNO или иная совместимая плата; сдвиговый регистр 74HC ; соединительные провода например, вот такой набор ; макетная плата ; логический анализатор не обязательно ; персональный компьютер со средой разработки Arduino IDE.
Схема подключения сдвигового регистра 74HC к Arduino Думаю, тут всё понятно. Подключение сдвигового регистра 74HC к Arduino 4 Тестовый скетч для изучения работы регистра сдвига Напишем вот такой скетч и загрузим в память Arduino. Временная диаграмма работы микросхемы 74HC Как видно, от А до B — 10,03 миллисекунд, а от B до С — 90,12 миллисекунд, почти как мы и задали в скетче. Рассмотрим подробнее участок A. Теперь обратим внимание на участок B.
Диаграмма передачи числа «» по SPI Опять всё начинается с выбора ведомого и генерирования 8-ми тактовых импульсов первый и второй каналы сверху. Независимый и каскадный типы подключений по интерфейсу SPI Независимое подключение ведомых SPI устройств например, регистров 74HC к ведущему например, Arduino изображено на левой части рисунка.
Соберём в соответствии с этим нашу схему. А вот так это выглядит в действии: Каскадное подключение трёх сдвиговых регистров к Arduino в действии На видео в конце статьи результат наглядно показан в динамике. Последнее изменениеСуббота, 03 Август Прочитано раз.
Сдвиговый регистр 74HC595
В этой статье я приведу несколько реальных примеров, где может пригодиться сдвиговый регистр, а также постараюсь объяснить как его использовать. Как всем известно, arduino имеет достаточно много пинов, которые можно использовать в разработке, но бывают проекты, для которых недостаточно существующих пинов, и тогда на помощь приходят сдвиговые регистры. Они дают возможность значительно увеличить количество выходов, так задействовав всего 3 штуки, на выходе мы получим 8 дополнительных. Не сложно подсчитать, что мы с помощью одного сдвигового регистра 74HC мы получим 5 дополнительных пинов. А так же у 74HC есть прекрасная возможность выстраивать каскады, то есть при подключении двух регистров получим уже 16 выходов, заняв всего 3 пина на ардуино. Каскады можно выстраивать и из большего количество сдвиговых регистров. В качестве дисплея я использовал светодиодную матрицу размеров 8х8.
In ARDUINO we have 20 I/O pins, so we can program 20 pins of UNO to be used as either input or output. Although there are more pins on controller than on.
Сдвиговый регистр 74hc595 Arduino
Благодаря заметке Два способа мультиплексирования светодиодов на примере микроконтроллеров AVR мы с вами знаем, что можно управлять сотней светодиодов, используя всего лишь 11 пинов микроконтроллера. Но что делать, если нужно управлять двумястами или, скажем, тысячью светодиодами? Оказывается, что изученные способы мультиплексирования могут быть улучшены, да так, что используя всего лишь три пина микроконтроллера можно управлять абсолютно любым количеством светодиодов! И в этом нам помогут следующие микросхемы. Примечание: Если вы пропустили предыдущий пост, посвященный микросхемам 74xx, вот он — Интегральные схемы: чипы стандартной логики 74xx. Впрочем, тот пост был посвящен логическим вентилям, и для понимания представленного далее материала читать его не требуется. Сдвиговые регистры — это микросхемы, позволяющие, очень грубо говоря, добавить пинов вашему микроконтроллеру : Для добавления пинов на запись, используются SIPO сдвиговые регистры. Надеюсь, идея ясна — мы последовательно передаем на сдвиговый регистр восемь бит информации по одному биту. Затем сдвиговый регистр параллельно выводит полученные биты на восемь пинов.
Arduino Nano и 74HC595 — расширяем порты вывода
Зарегистрироваться Логин или эл. Войти Запомнить меня. Блог Ebay Помощь по покупкам. Этот обзор посвящен, собственно, начинающим пользователям Arduino или желающим приобщиться к этому делу. Речь пойдёт об увеличении количества выходов микроконтроллера при помощи сдвигового регистра, причём что это не требует больших затрат по сравнению с покупкой Arduino Mega, например.
В этом эксперименте мы выводим на семисегментный индикатор количество нажатий на кнопку единицы.
Сдвиговый регистр 74HC595 или увеличение выходов Arduino с минимальными затратами
Данный пример демонстрирует как создать гистограмму расстояния с 8-ю светодиодами задействуя только 3 цифровых контакта Arduino и ИК-датчик расстояния. В этом нам поможет сдвиговый регистр 74HC Схема работы кода o — светодиод не горит, к — красный светодиод горит, з — зеленый светодиод горит, ж — желтый светодиод горит , где справа указаны значения которые мы будет передавать регистру сдвига:. Сдвиговый регистр это синхронное устройство, он принимает данные по нарастающему фронту сигнала. Данные из последней ячейки или отбрасываются или передаются на выход Q7″ при каскадном подключении.
Эксперимент 14. Счётчик нажатий
Авторизация Зарегистрироваться Логин или эл. Напомнить пароль Пароль. Войти Запомнить меня. По сути, это преобразователь последовательного интерфейса в параллельный: получает данные по SPI, а потом разом выставляет уровни на 8 ножках согласно полученным битам. Биты, выставляемые ведущим на выводе SI, проталкиваются по цепочке D-триггеров с каждым тактовым импульсом от ведущего на ноге SCK. Другими словами, она «вращает» биты по кругу. А если нам нужно больше выводов? В результате мы получаем независимое управление двумя регистрами по одной шине SPI.
Матрица светодиодная 8×8 на 74hc -> Arduino проект all-audio.pro
Программирование Arduino урок 13 — сдвиговый регистр 74HC595
Рассмотрим типичную ситуацию, когда вам нужно больше выходов пинов , чем может предложить контроллер Arduino. В этом случае самый простой выход — использовать сдвиговый регистр. В данном примере используется 74HC Другими словами этот регистр позволяет контролировать 8 выходов, используя всего несколько выходов на самом контроллере.
Как подключить сдвиговый регистр 74HC595 к Arduino
ВИДЕО ПО ТЕМЕ: 74HC595 Shift Register (Arduino Tutorial Series)
Одно из основных предназначений микроконтроллеров — это управление относительно простыми устройствами и системами, что очевидно требует опроса датчиков и выдачи управляющих сигналов на исполнительные устройства. Зачастую имеющихся портов микроконтроллера для подобных целей может оказаться недостаточно. Одним из способов увеличения количества подключаемых внешних устройств может служить сдвиговый регистр SN74HCN. Данная микросхема приобретена на Ru.
Войдите , пожалуйста.
Причем это не предел, добавив еще одну микросхему получим на выходе уже 16 выходов, и так добавлять микросхемы можно до бесконечности, а на Arduino будут заняты всё те же 3 выхода. Как уже стало понятно из логики работы микросхемы, мы побитово вводим байт информации. Вот таким способом можно расширить выходы Arduino и подключить например несколько сегментных индикаторов, чем мы и займемся в следующей статье. Ваш e-mail не будет опубликован. Skip to content Найти:. Главная Обратная связь. Q0…Q7 — выходы для управления, это те самые новые выходы.
Люблю рок, в основном старый и зарубежный, хотя нравится и современная музыка, в том числе и новая британская волна типа Arctic Monkeys. Любые совпадения случайны Собралась сестра замуж тут. Ну, и стали по этому поводу как-то чаще общаться. Хотя отношения у нас хорошие, но всё равно….
— 200 светодиодов через arduino через сдвиговый регистр SN74HC595N
спросил
Изменено 2 месяца назад
Просмотрено 1к раз
\$\начало группы\$
Я новичок в любых формах мультиплексирования, не говоря уже об электронике. Из того, что я исследовал, я могу добавить больше входов/выходов в Arduino через сдвиговый регистр. Я купил 10 SN74HC595N сдвиговых регистров, каждый из которых имеет 10 выходов (я думаю). Мне нужно управлять двумя основными полосами светодиодов, которые разветвляются на определенные сегменты.
Я очень хорошо разбираюсь в электронике и думаю, что использование мультиплексирования даст мне больше входов/выходов. Если у меня есть 10 сдвиговых регистров, каждый из которых дает мне 10 входов, это дает мне 100 дополнительных входов/выходов. в идеале мне нужно было бы только попытаться получить два светодиода на вход, поэтому технически я мог бы использовать charlieplexing. Может кто-нибудь объяснить, что нужно сделать, чтобы подключить 2 отдельные полосы светодиодов (по 100 штук) к сдвиговому регистру с помощью мультиплексирования.
- Arduino
- мультиплексор
- сдвиговый регистр
- charlieplexing
\$\конечная группа\$
7
\$\начало группы\$
Насколько я понимаю, вы хотите управлять двумя полосами светодиодов, где каждая полоса имеет 100 светодиодов, и вы хотите управлять каждым отдельным светодиодом в каждой полосе. Так что на самом деле вам нужно знать, как это сделать с одной полосой, а затем просто скопировать схему еще раз для другой полоски. Я объясню, как это сделать, создав собственную светодиодную ленту. Вам нужно подключить достаточно 74hc595 чипов вместе в конфигурации «гирляндная цепочка» — чтобы создать столько выходов, сколько вам нужно (100 в вашем случае). Вам необходимо подключить «гирляндную цепь» к MCU. MCU фактически создаст шаблоны, которые вам нужны, отправив шаблон в цепь «гирляндной цепи», а схема «гирляндной цепи» 74hc595 просто расширяет выход MCU. Вам нужно будет подключить светодиод к каждому из 100 выходов, чтобы построить светодиодную ленту. Вам также понадобится подходящий источник питания для освещения такого количества светодиодов. Лично я думаю, что сборка вручную будет слишком утомительна для такого количества светодиодов.
\$\конечная группа\$
\$\начало группы\$
TL;DR: Мультиплексирование не может устранить сложность. На самом деле, ничто не может устранить сложность. Если что-то сложно по своей сути, все, что вы можете сделать, это перенести эту сложность в область, где вы можете с ней справиться.
В случае мультиплексирования это перемещает сложность тонны отдельных проводов, которые относительно медленны
на несколько проводов, которые должны работать как сумасшедшие, чтобы передать всю эту информацию через
. За некоторыми исключениями, такими как charlieplexing, большинство методов сводятся к использованию какой-то предопределенной связи для MCU, работающего с программным обеспечением, чтобы сказать другому, относительно тупому чипу, такому как сдвиговый регистр, что делать.
Несколько лет назад я сделал это с SPI (последовательным периферийным интерфейсом). На самом деле, у меня были и входы (кнопки), и выходы (светодиоды), объединенные всего в 4 контакта MCU. Поскольку вы спрашивали о выходах, вот моя схема светодиодов:
Этот конкретный регистр сдвига может не совпадать с вашим, но это та же идея. Использование имен сигналов SPI:
- CS = выбор чипа
- Когда он становится низким (чип выбран для передачи данных), регистры сдвига сдвигают один бит за такт.
- Когда он становится высоким, сдвиговые регистры выводят любой байт, с которым они закончились, на свои выводы Qx.
- Это единственный сигнал из четырех, которым не управляет периферийное устройство SPI (фрагмент аппаратно запрограммированной логики, встроенной в микросхему MCU для управления этим типом связи, в то время как программное обеспечение отключается и делает что-то еще). Таким образом, это может быть любой удобный выходной контакт MCU.
- SCK = серийные часы
- Каждый переход из неактивного в активное сдвигает один бит из MOSI в первый сдвиговый регистр. Все биты перемещаются на единицу, а тот, что выходит с другого конца, переходит в следующий регистр сдвига, и так далее, насколько вы хотите.
- Здесь я не могу сказать, высокий или низкий, потому что SPI позволяет разработчику определить, какое состояние что означает. Но в этом случае таблица данных сдвигового регистра, вероятно, определит это для вас.
- MOSI = Master Out Slave In
- Это фактические данные, которые вы хотите отобразить, представить побитно и зафиксировать соответствующим фронтом тактового сигнала.
- MISO = Master In Slave Out
- Это данные, полученные в то же время, когда вы управляете всеми этими выходами. Он не используется на этой конкретной плате, а подключен напрямую к другому разъему.
- У меня есть другой вариант этой платы, который делает то же самое с кнопками и может последовательно подключаться к этой плате в любом порядке и с любым количеством копий, так что одно и то же периферийное устройство SPI и один и тот же программный драйвер могут считывать массу кнопок. и управлять кучей светодиодов одновременно.
Такова аппаратная часть.
В программном обеспечении I:
- Настройте периферийное устройство SPI и два массива одинакового размера, один для светодиодов и один для кнопок
- Они должны быть одинакового размера в программном обеспечении, даже если они не физически, потому что на каждый исходящий байт приходится один входящий. Конечно, вы можете обойти это требование, немного усложнив ISR, но в моем проекте они были достаточно близки, чтобы сравняться, так что я не видел необходимости.
- Определите соответствующие процедуры обслуживания прерываний (ISR), чтобы этот драйвер мог «просто работать» без необходимости основного программного обеспечения делать что-либо особенное.
- Таймер ISR запускает полное обновление, загружая первый байт светодиода в регистр сдвига периферийного устройства SPI (встроенный в MCU), запуская эту передачу и активируя ISR со сдвигом
- ISR со сдвигом продолжает обновление, помещая все, что попало в сдвиговый регистр периферийного SPI, в массив кнопок, записывая на его место следующее значение светодиода и начиная эту передачу. Если он только что прошел через весь массив, он также отключается.
- Напишите основное программное обеспечение, чтобы просто использовать эти массивы, как если бы они были волшебством. Обо всем остальном позаботятся ISR.
Конечно, это упрощенное объяснение. Вам также придется где-то явно крутить сигнал CS в ISR. Просмотрите таблицы данных и хорошенько подумайте о сроках.
\$\конечная группа\$
\$\начало группы\$
Многие светодиодные ленты продаются со светодиодами, в которые встроен драйвер последовательного порта. Если вы получите правильную полосу, вам понадобится всего один или два сигнала для независимого управления всеми светодиодами в каждой полосе. Существует дискретный чип, который может обеспечить эту функциональность. TLC5973, он управляет 3 светодиодами и использует один последовательный поток данных. Также у Adafruit Industries есть адресные дискретные светодиоды с серийным номером белого цвета. P/N: 2351
Это гораздо более простое решение для реализации, при этом обеспечивается ШИМ-управление током каждого светодиода независимо.
\$\конечная группа\$
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Требуется, но никогда не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie
Как связать регистр сдвига 74HC595 с Arduino?
В этом проекте я расскажу о регистрах сдвига, одной из популярных микросхем регистров сдвига — 74HC595 и, наконец, о том, как использовать регистр сдвига 74HC595 с Arduino и о преимуществах этого интерфейса.
[adsense1]
Схема
Введение
Обычно рассмотрим небольшое приложение, в котором вы хотите управлять 8 светодиодами с помощью Arduino (или любого микроконтроллера). Это приложение, хотя и очень простое, потребует от вас использования 8 доступных входных/выходных контактов вашей платы Arduino: по одному для каждого светодиода.
Теперь рассмотрим немного продвинутый проект, в котором ваши требования включают управление теми же 8 светодиодами, а также выполнение других действий, таких как отображение сообщения или любой информации на ЖК-дисплее 16×2 или подключение устройства Bluetooth для управления светодиодами через смартфон. !!!
Этот тип более крупных проектов потребует много контактов ввода-вывода на плате Arduino, и может не хватить контактов для подключения дополнительных устройств.
На помощь приходит микросхема регистра сдвига.
[adsense2]
Что такое сдвиговый регистр?
Сдвиговый регистр — это, по сути, микросхема последовательно-параллельного преобразователя. По сути, он принимает последовательный ввод через один контакт (ну, технически вам нужно как минимум 3 контакта, о которых я расскажу позже) и преобразует его в 8-битный параллельный вывод, тем самым эффективно уменьшая количество интерфейсных контактов между микроконтроллером и его устройства вывода.
Существуют и другие разновидности сдвиговых регистров, такие как последовательный вход, параллельный выход (тот, который нас интересует), последовательный вход, последовательный выход, параллельный вход, последовательный выход и параллельный вход, параллельный выход. Дополнительные сведения о регистрах сдвига см. на странице 9.0039 ТИПЫ СМЕННЫХ РЕГИСТРОВ И ПРИМЕНЕНИЕ .
В этом проекте я буду использовать микросхему регистра сдвига типа Serial IN и Parallel OUT под названием 74HC595.
Краткое примечание 74HC595 ИС регистра сдвига
Как упоминалось ранее, ИС 74HC595 представляет собой 8-битный регистр сдвига с последовательным вводом и параллельным выводом. Это 16-контактная микросхема, доступная в различных корпусах, таких как DIP, SOIC, SSOP и TSSOP.
Схема контактов регистра сдвига 74HC595
На следующем рисунке показана схема контактов 74HC59.5 Сдвиговый регистр.
Описание контактов регистра сдвига 74HC595
В следующей таблице кратко описаны контакты регистра сдвига 74HC595.
Номер контакта | Название контакта | Описание |
15, 1-7 | QA, QB – QH | QA – QH (8) Выходные контакты |
8 | ЗЕМЛЯ | Контакт заземления |
9 | QH’ | QH’ Выход |
10 | СРЦЛР’ | Сброс ввода |
11 | СРКЛК | Ввод часов |
12 | РКЛК | Вход тактового сигнала регистра хранения |
13 | ОЕ’ | Включение выхода |
14 | СЕР | Последовательный ввод |
16 | ВКЦ | Напряжение питания |
ПРИМЕЧАНИЕ: Существует несколько производителей микросхемы регистра сдвига 74HC595, и соглашение об именах у каждого производителя может отличаться. Ознакомьтесь с техническими данными на основе производителя. Приведенные выше названия выводов взяты из таблицы данных, предоставленной Texas Instruments.
Как использовать регистр сдвига 74HC595 с Arduino?
Позвольте мне построить простую схему, в которой я буду использовать только три контакта Arduino UNO и управлять 8 светодиодами. Это будет возможно при использовании 74HC59.5 Сдвиговый регистр с Arduino.
Три контакта регистра сдвига, которые необходимо подключить к Arduino, — это контакты 11 (тактовый вход), 12 (тактовый вход регистра хранения или просто вход-защелка) и 14 (вход данных).
Все 8 светодиодов будут подключены к микросхеме сдвигового регистра. (подробнее в разделе схемотехника).
Принципиальная схема
На следующем изображении показана принципиальная схема интерфейса сдвигового регистра 74HC595 с Arduino UNO.
Необходимые компоненты
- Arduino UNO
- 74HC595 ИС регистра сдвига
- Макет
- 8 светодиодов
- 8 резисторов по 1 кОм
- Источник питания 5 В
- Соединительные провода
Схема
Сначала подключите контакт последовательного входа сдвигового регистра 74HC595 к контакту 4 Arduino.