Регистр сдвига 74hc595: Arduino: Сдвиговый регистр 74HC595

Содержание

74hc595 как работает

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


Поиск данных по Вашему запросу:

Схемы, справочники, даташиты:

Прайс-листы, цены:

Обсуждения, статьи, мануалы:

Дождитесь окончания поиска во всех базах.

По завершению появится ссылка для доступа к найденным материалам.

Содержание:

  • SPI и Arduino: плодим входы
  • Сдвиговый регистр 74HC595
  • Сдвиговый регистр 74hc595 Arduino
  • shiftOut() и последовательное соединение регистров 74HC595
  • Arduino Nano и 74HC595 — расширяем порты вывода
  • AVR Урок 25. SPI. Подключаем сдвиговый регистр 74HC595
  • Сдвиговый регистр не работает
  • Сдвиговый регистр 74HC595 или увеличение выходов Arduino с минимальными затратами
  • Сдвиговый регистр 74HC595 и семисегментный индикатор
  • Primary Menu

ПОСМОТРИТЕ ВИДЕО ПО ТЕМЕ: Как получить OVER Много каналов — сдвиговый регистр 74HC595 (ЧАСТЬ 1)

SPI и Arduino: плодим входы


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

Микрофон, хороший звук, подсветка. Внедряю в павербанк. Зарегистрироваться Логин или эл. Напомнить пароль Пароль. Войти Запомнить меня. Войти или Зарегистрироваться. Добавить обзор.

Блог Ebay. RSS блога Подписка. Этот обзор посвящен, собственно, начинающим пользователям Arduino или желающим приобщиться к этому делу. Речь пойдёт об увеличении количества выходов микроконтроллера при помощи сдвигового регистра, причём что это не требует больших затрат по сравнению с покупкой Arduino Mega, например.

Самое простое применение — помигать светодиодами, вот и попробуем это на практике. Да, можно использовать мультиплексирование сигнала, встречное включение и множество других ухищрений, но всё равно максимальное количество подключаемых светодиодов ограничено, и необходимо искать другое решение.

Было решено сразу же их заказать, а в перспективе даже собрать светодиодный куб с их применением. От последнего правда пришлось отказаться, нашёл более простой вариант, но это — тема другого обзора.

Заказал сразу 20 штук 74HCN, благо стоят сущие копейки. Буква N в конце маркировки обозначает, что микросхема в корпусе DIP, очень удобно для экспериментов на макетной плате, ничего даже паять не надо. Выглядит вот так: Что же собой представляет эта микросхема? Это восьмиразрядный сдвиговый регистр с последовательным вводом, последовательным или параллельным выводом информации, с триггером-защелкой и тремя состояниями на выходе.

Проще говоря, используя всего 3 выхода контроллера можно управлять 8 выходами сдвигового регистра. А если микросхемы соединить последовательно друг за другом, то количество контролируемых выходов можно наращивать до любого разумного предела не нашёл предельного количества, но сотнями вроде как объединяются без проблем; если кто знает, от чего зависит предельное количество включенных в каскад микросхем — интересно было бы узнать в комментариях. Данные к микросхеме передаются последовательно. Биты 0 и 1 передаются в регистр друг за другом, считывание битов происходит при поступлении синхроимпульса.

Передал 8 бит — получил 8 выходных состояний на выходах регистра. При каскадном включении 74HC при необходимости получения 16, 24 и т. Выход регистра может находиться не только в состоянии логических 0 или 1, но и быть в высокоимпедансном состоянии, когда выход отключен от схемы. В это состояние могут быть переведены только все выходы сразу. Это редко используется, но может быть полезно при переключении управления на другой контроллер, например. Теперь к сдвиговому регистру подключено питание и все выходы активны.

Между землёй и защелкой рекомендуется поставить конденсатор на 0,1 мкФ для минимизации шумов. Осталось подключить светодиоды — через резисторы Ом подключаем их от выходов регистра к земле. Собственно и всё. Вот нашёл схему, кто любит наглядные материалы обратите внимание, распиновка реальной микросхемы и схематическое изображение на данной схеме различаются! Собрал схему на макетной плате, у меня получилось вот так.

С практическим применением для системы полива. Восстанавливаем новогоднюю елку. Предельное число регистров ограничивается требуемой скоростью обновления информации и объёмом кода. ВВ55 и на нее уже цеплять регистры — вот это будет бомба один контроллер — управляет сотнями устройств, лишь бы мозгов хватило. Я правильно понимаю, что обзор написан на базе вот этой статьи: arduino. Если вам надо много а скорости мозгов не хватает, то попробуйте КРИР9 — Аналог SN74ALS представляет собой восьмиразрядный сдвиговый регистр с параллельной записью и имеет два режима работы: параллельная загрузка и сдвиг.

Те же 16 ног. При необходимости можно динамически переключиться на параллельную запись с экономией по тактам. Клок ведь для каждой следующей ступени нужен отдельный? Выставили на первой ступени восемь бит данных, дрыгнули ногой синхронизации второй ступени — биты ушли во вторую ступень. Значит количество ступеней таки ограничено количеством ног? Или я неправильно понимаю? Serg32 22 октября , 0.

Регистры подключаются последовательно, клок идет на все сразу. Действительно, что-то я чрезмерно все усложнил.

А кто нам мешает подклить параллельный регистр? Можно и ИР22 74hc подцепить и его же в качестве буфера использовать ;- Если кого смущает нагрузочная способность — буферни выходА :- А если LCD к платке подключен — вешай ИР34 74hc на те же выходы сколько угодно, только стробировать не забывай! Для опроса клавиатуры с платы тяенется всего одна веревка и вешается на вход прерывания. На нее вешай сколько угодно кнопок и подтяни к питанию, для ожидания обнули шифтер, а по прерыванию опрашивай через SPI ;- Yours sincerely, Dmitry aka wcat.

А почему не дешифратор или не счетчик? Или регистр защелка? Еще столько обзоров можно написать Жаль большинство аудитории не поймет о чем речь. Кстати для управления матрицей светодиодов можно использовать MAX переходите на более высокий уровень. А почему не дешифратор В данном случае неприменим или не счетчик? В данном случае неудобен Или регистр защелка?

Менее эффективен с т. У сдвигового регистра уж больно производительность падает при масштабировании. DDimann 22 октября , 0. Ну, если не ставить D-триггер перед каждым светодиодом. А если все же использовать регистры защелки, то можно и память нарастить внешнюю прилично с экономией по выводам. С Arduino к сожалению не сталкивался, организацию внутреннюю не знаю.

А кто спорит? Можно вообще ПЛИС поставить и зашить в ней любую логику. Все зависит от задачи. То же и тут — надо смотреть, что хочется, и соответственно делать. В данном случае неприменим Два восьми светодиодов вполне себе применим.

Те же три ноги потребуются. Для куба 5х5х5 уже да, сложновато. Ещё можно добавить, что подобным образом ножно и входы размножать :. NikitosZs 22 октября , 0. Входы-кнопки или входы цифровые? Для цифровых входов нужен P2S, а это же S2P. Мне казалось, что массовое управление рой удобнее делать по 2 проводам, с дешифратором на каждом диоде? WS — и ничего делать уже не надо. Сорвали с языка. Если просто светить лампочками, то лучше WS и т. Ну, я много чего не встречал… Раз и два А вот что бы вмонтированы прямо при сборке, возле кристалла, в линзе — не встречал….

Такие варианты знаю. Просто было бы удобно паять матрицы какой угодно формы, хотя думаю возникли бы уже проблемы с быстродействием. Тогда не пойму — почему не это? А быстродействие… Никто ведь не заставляет делать одну линии на светодиода — можно сделать 4 по , к примеру.

Это если имеется в виду быстродействие именно светодиодов, время распространения сигнала. Если про контролер — то тут только выбирать контролер пошустрее, оптимизировать программу…. В объёмной матрице выглядят не столь интересно, а для двухмерной, согласен, самое то. И по цене класс! Есть ebay. Есть WS — а светодиоды уже можете сами подключить какие пожелаете. В последнее время Mysku как будто следит за моими мыслями.

Все угадывает. Чуть более дорогой вариант max, но имеет преимущества — 1 микросхема может управлять матрицей 8х8 светодиодов, для нее нужен всего 1 резистор, позволяет управлять общей яркостью.


Сдвиговый регистр 74HC595

Особенно если хотим сделать что нибудь на светодиодах. Гирлянду какую-нибудь навороченную. Что делать? Брать под это дело ATMega с ее полусотней выводов? Избыточно — для ламеров.

В данной статье я постараюсь рассказать простым языком как управлять сдвиговым регистром 74hc, объяснить на примерах, как.

Сдвиговый регистр 74hc595 Arduino

Для того чтобы защелкнуть данные в регистре, применим команду PulseOut. Эта команда выводит импульс на ногу микроконтроллера с заданной длительностью. Конфигурация команды выглядит следующим образом:. Pulseout Portb , 0 , 5. Когда не хватает ног. Часть 2. Сдвиговый регистр 74HC В прошлый раз был рассмотрен вариант увеличения выходов микроконтроллера при помощи микросхемы — дешифратора ИД3 , сегодня рассмотрим более продвинутый вариант на сдвиговом регистре 74HC

shiftOut() и последовательное соединение регистров 74HC595

В какой-то момент времени вы неизбежно столкнетесь с проблемой отсутствия достаточного количества контактов на вашем ардуино для удовлетворения потребностей вашего проекта или прототипа. Решение этой проблемы? Каждый кто делал проекты на Ардуино, где использовал много светодиодов, понимал, что в значительной степени ограничен контактами Arduino и не может создавать огромные проекты, требующие большого количества контактов. В нашем конкретном проекте 16 светодиодов управляются всего лишь тремя контактами Arduino.

Я пытаюсь узнать, как сделать работу регистра сдвига. Я работал от Arduino ShiftOut tutorial.

Arduino Nano и 74HC595 — расширяем порты вывода

Из этого руководства вы узнаете, как управлять 16 светодиодами используя всего 3 линии управления. Мы осуществим это путем последовательной передачи данных в сдвиговые регистры 74HC Микросхема 74HC содержит 8 битный регистр хранения и 8 битный сдвиговый регистр. Данные последовательно передаются в сдвиговый регистр, затем фиксируются в регистре хранения. К регистру хранения подключены 8 выходных линий.

AVR Урок 25. SPI. Подключаем сдвиговый регистр 74HC595

Я сократил все до такой простой установки, как мог, и потратил несколько часов, пытаясь понять, в чём дело идет не так Источник Поделиться. Создан 31 авг. Один из других серьезных хотя и более тонких разломов с этим бедной Arduino учебником резисторов слишком низки ,Включите слишком много светодиодов, и вы набираете больше тока через чип 74HC, чем он может справиться. Вы можете попытаться нарисовать ок. Majenko Если бы вместо этого у нас было, скажем, 40 светодиодов и 5 последовательных сдвиговых регистров, то какие резисторы и конденсаторы были бы уместны, чтобы не сдуть сдвиговые регистры?

Работает это так. На входе данных D выставляется 1 или 0, потом тактовый вход CLK из 0 переходит в 1 и потом снова в 0. При этом.

Сдвиговый регистр не работает

Когда необходимо подключить к контроллеру два десятка светодиодов или еще чего на помощь приходят сдвиговые регистры. Посмотрим что из себя представляет эта микруха. Распиновка на рисунке ниже:.

Сдвиговый регистр 74HC595 или увеличение выходов Arduino с минимальными затратами

Сегодня мы продолжим работать с шиной SPI , которую мы изучили на предыдущем занятии. Вернее мы продолжим её — эту шину изучать, только занятие теперь будет практическое. Мы возьмём определённое устройсто и попробуем данным устройством поуправлять. А в качестве устройства мы возьмём простейшую микросхему 74HC , которая управляется именно по интерфейсу SPI и представляет собой сдвиговый регистр. Судя по технической документации на данный регистр, разработчиком его является компания Philips. Обратим внимание на некоторые технические характеристики данного регистра сдвига.

Зато есть проект для Atmel Studio 6.

Сдвиговый регистр 74HC595 и семисегментный индикатор

Сгорает сдвиговый регистр 74HC Данное задание необходимо выполнить в браузерном симуляторе программно-аппаратной платформы Arduino Сдвиговый регистр 74HC Можно ли на одной микросхеме 74HC одновременно использовать порты ввода и вывода? Можно ли Не правильно работает сдвиговый регистр shl Здравствуйте, пытаюсь портировать фунцию с delphi 7 на delphi Нашел проблему с shl, которая Сдвиговый регистр Нужно реализовать сдвиговый регистр. Есть массив А и В, состоящие из рендомных нулей и единиц

Primary Menu

Иногда возникает задача, когда не хватает выводов для светодиодов или индикаторов, вобщем там, где требуется что-то задействовать из дискретных исполнительных или указательных устройств в большом количестве. Для этого используются расширители портов на регистрах. В данной статье разбираются 2 регистра, управление которыми отличается немного, хотя они по своему назначению совпадают.


PWM (ШИМ) управление LED матрицей 8х8 через регистр сдвига 74HC595

Есть матрица 8х8, одноцветная. Выглядит так:

Всего, соответственно, 16 выходов: 8 на столбцы и 8 на строки.

Проблема номер один – понять какой контакт чем управляет. Хотелось бы, что бы один ряд из 8 контактов был столбцами, а другой – строками. Но это не так. Контакты, мягко говоря, стоят, как попало.

После того, как определили, какой контакт за что отвечает, через резюки в минимум 20 Ом (а лучше больше и посчитать так, чтобы ток не было более 100 мА) подключаем на входы двух шифтиков 74HC595. (я резюки не ставил, так как шифты реально боле 80мА выдать не могут, но это НЕПРАВИЛЬНО и годится только чтобы на коленках демку собрать).

595-е шифты – особенно приятные, так как у них есть отдельно регистр загрузки и отдельно буфер выдачи. Поэтому, когда идет загрузка нового байта, предыдущий продолжает выводиться, а после загрузки, одним импульсом, новый байт перегружается из шифта в буфер вывода. И скорость у него до 50МГц, что ни с одной AVR и не светит.

Как подключать (нулевой бит шифта к самой левой колонке или к самой правой или к самому верхнему ряду или к самому нижнему) – дело хозяйское. Потом в программе просто придется порядок загрузки в шифт поменять.

Итак, по схеме.

Выводы шифтов одного шифта – на колонки. Выводы другого – на строки.
Перепутаете полюсность – будет все в инверсии.

OE (он же G) с шифта для СТРОК кидаем на PD6
OE (он же G) с шифта для КОЛОНОК кидаем на GND (всегда активно)
SCRL (clear) обоих – кидаем на Vcc
SI (serial input) обоих – кидаем на PD1
RCK (latch output, storage register clock input) СРОК – на PD2
RCK (latch output, storage register clock input) КОЛОНОК– на PD4
SCK (shift register clock input) обоих — PD3

Т. е. все у всех шифтов висит на одних и тех же ногах МК, кроме G (он же OE).

Подключаем Vcc и GND для шифтов.

В собранном состоянии так выходит:

Компилим и заливаем прошивку.

Должно получиться что-то вроде такого:

Данная прошивка позволяет задавать 16 уровней (4 бита) на 1 пиксель. В ней есть несколько хитростей, чтобы все было быстрее на С. Но если ее переписать на ассемблере, то можно цикл вывода сделать еще раза в 2 быстрее (из-за того, что в C нет команды roll для байта, а есть только shift, а тут был бы очень нужен именно roll).

В замедленных кадрах прорисовка идет так:

Замер быстродействия на 12Мгц показал, что отрисовка идет со скоростью 600 кадров в секунду. Соответственно, если ускорить еще в 2 раза (или ассемблером или разгоном чипа на 24Мгц), то будет около 1200 кадров в сек. В практическом смысле это означает, что если в матрице будут RGB светодиоды, то скорость будет в 3 раза меньше (400 кадров в сек), и далее если кубиков 8х8 будет 4, то будет 100 кадров в сек., и меньше этого делать уже не стоит, так как будет видно моргание при определенных обстоятельствах. Если сделать на ассемблере и разогнать на 24Мгц, то можно сделать до 8 RGB кубиков 8х8 (т.е. экран 64х16).

Скачать исходный код на C под WinAVR (2 Кб). Загрузок: 413

Автор статьи: Артем Кучин E-mail: [email protected]

Просмотров: 5365

Печать

74HC595 Shift Register Pinout, Features, Circuit & Datasheet

23 апреля 2018 — 0 комментариев

          74HC595 8-битный сдвиговый регистр
          74HC595 Распиновка

      Конфигурация контактов

      Номер контакта

      Название контакта

      Описание

      1,2,3,4,5,6,7

      Выходные контакты (от Q1 до Q7)

      74hc595 имеет 8 выходных контактов, из которых 7 являются этими контактами. Им можно управлять серийно

      8

      Земля

      Подключен к земле цепи

      9

      (Q7) Серийный выход

      Этот контакт используется для подключения более чем одного 74hc595 в качестве каскада

      10

      (MR) Общий сброс

      Сбрасывает все выходы как низкие. Для нормальной работы должен быть высоким

      11

      (SH_CP) Часы

      Это тактовый вывод, на который должен поступать тактовый сигнал от MCU/MPU

      .

      12

      (ST_CP) Защелка

      Контакт-защелка используется для обновления данных на выходных контактах. Активен высокий

      13

      (OE) Включение выхода

      Разрешение выхода используется для выключения выходов. Для нормальной работы должен поддерживаться низкий уровень

      14

      (DS) Серийные данные

      Это контакт, на который отправляются данные, на основе которых осуществляется управление 8 выходами

      15

      (Q0) Выход

      Первый выходной пин.

      16

      Вкк

      Этот вывод питает микросхему, обычно используется +5В.

       

      Особенности
      • 8-бит, последовательный вход – параллельный выход Сдвиговый регистр
      • Рабочее напряжение: от 2 В до 6 В
      • Потребляемая мощность: 80 мкА
      • Выходной ток источника/приемника: 35 мА
      • Выходное напряжение равно рабочему напряжению
      • Минимальное входное напряжение высокого уровня: 3,15 В при (Vcc=4,5 В)
      • Максимальное входное напряжение низкого уровня: 1,35 В при (Vcc=4,5 В)
      • Можно легко каскадировать с большим количеством микросхем, чтобы получить больше выходов
      • Максимальная тактовая частота: 25 МГц при 4,5 В
      • Доступен в 16-контактных корпусах PDIP, GDIP, PDSO

      Примечание: Полную техническую информацию можно найти в спецификации 74HC595, приведенной в конце этой страницы.

       

      Альтернативные регистры сдвига

      Серийный номер:

      Имя

      Тип

      1

      4035

      4-битный параллельный ввод Параллельный вывод Сдвиговый регистр

      2

      74LS379

      Четырехпараллельный регистр сдвига

      3

      4014

      4-битный статический регистр сдвига

      4

      74LS166

      8-битный регистр сдвига

      5

      74LS323

      8-битный регистр сдвига/хранения

      6

      74LS164

      Сдвиговый регистр S/P

      7

      4015

      Двойной 4-битный статический регистр

      8

      74LS299

      8-битный регистр сдвига/хранения

       

      Где использовать 74HC595 IC

      74HC595 представляет собой 8-битный регистр сдвига с последовательным вводом и параллельным выводом , то есть он может получать (вводить) данные последовательно и управлять 8 выходными контактами параллельно. Это очень удобно, когда на нашем MCU/MPU недостаточно контактов GPIO для управления необходимым количеством выходов. Он часто используется в проектах, где необходимо управлять относительно большим количеством светодиодов через микроконтроллер. Его также можно использовать для интерфейса ЖК-экрана, поскольку они могут выступать в качестве бита данных для ЖК-дисплеев. Его также можно использовать для управления нагрузками 5 В, такими как реле, через микроконтроллер 3,3 В, поскольку напряжение высокого уровня составляет всего 3,15 В. Так что, если вы ищете микросхему, чтобы сэкономить на контактах GPIO на микроконтроллере, то эта микросхема может быть для вас правильным выбором.

       

      Как использовать ИС 74HC595

      Сдвиговый регистр 74HC595 обычно используется с микроконтроллерами или микропроцессорами для расширения функциональных возможностей GIPO. Для этого требуется всего 3 контакта, подключенных к MCU: часы, данные и защелка. Имеет широкий рабочий диапазон напряжения от 2В до 6В. Схема применения микросхемы показана ниже:

      Контакты 11, 14 и 12 подключены к контактам GPIO микроконтроллера. В котором контакт 11 — это часы, которые посылают постоянный импульс для сохранения времени. Контакт 14 — это данные, которые фактически отправляют данные о том, какие выходные контакты должны оставаться низкими, а какие — высокими. Вывод 12 — это защелка, которая обновляет полученные данные на выходных выводах, когда они установлены на высокий уровень, этот контакт также может постоянно удерживаться на высоком уровне. Изображение ниже поможет вам лучше понять.

      Как вы можете видеть, часы продолжают последовательность импульсов, и данные становятся высокими только в соответствующем месте, где выход должен стать высоким. Здесь, например, двоичное значение 0b10110011 передается микроконтроллеру. Штырь Master reset (MR) используется для сброса выходов, когда он не используется, он удерживается на высоком уровне, равном vcc, аналогичным образом контакт должен удерживаться на низком уровне, когда он не используется.

      Еще одним важным преимуществом микросхемы 74hc595 является возможность каскадного управления более чем 8 выходами. Для этого мы используем Q7’ (контакт 9), этот вывод должен быть подключен к выводу данных второй микросхемы 74HC595. Таким образом, первые 8 бит, отправленные из MCU, будут использоваться 1-й ИС, а вторые 8 бит будут использоваться 2-й ИС.

       

      Приложения
      • Расширение контакта GPIO на MCU/MPU
      • Проекты светодиодных матриц/кубов
      • Интерфейс ЖК-дисплея
      • Каскадные приложения
      • Контроллер высокого логического уровня

       

      2D-модель 74HC595 (PDIP)

        Теги

        Сдвиговый регистр



      Как использовать регистр сдвига 74hc595 с Raspberry PI Pico и MicroPython

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

      Опубликовано от peppe8o

      Сложные проекты Raspberry PI Pico могут потребовать большого количества подключений со многими датчиками/устройствами, поэтому богатые 40-контактные GPIO могут стать ограниченными. В этих случаях вы можете получить помощь от простого и дешевого электронного устройства: регистра сдвига 74HC595, также известного как преобразователь последовательного кода в параллельный.

      В этом руководстве я покажу вам, как использовать микросхему 74hc595 с Raspberry PI Pico и MicroPython в простой конфигурации, которая управляет 8 светодиодами. Я также добавлю пример кода, показывающий, как использовать его со случайным светодиодным эффектом.

      Обратите внимание, что если вы хотите подключить этот чип к компьютерной плате Raspberry PI (например, Raspberry PI Zero W, RPI 4 Model B и т. д.), вы можете обратиться к моему руководству по использованию регистра сдвига 74hc595 с Raspberry PI.

      Следите за сообщениями peppe8o в -> Twitter

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

      Микросхема регистра сдвига уже подробно объяснялась в моем разделе «Использование регистра сдвига 74hc595 с Raspberry PI», поэтому я не буду вдаваться в подробности его объяснения. Тем не менее, краткое напоминание о том, как связаны ввод и вывод, полезно, чтобы напомнить об их использовании.

      Сдвиговый регистр получает последовательный поток данных от одного из своих PIN-кодов (PIN-код данных), сохраняет эти данные и предоставляет их в своих 8 выходных PIN-кодах (Q0, Q1, …Q7).

      Каждый выходной контакт может иметь значение 0 (выкл.) или 1 (вкл.). Чтобы установить или отключить каждое из этих значений, мы вводим данные, используя PIN-коды данных и часов чипа на точной временной диаграмме. Часы должны получить девять импульсов. При каждом импульсе (по переднему фронту), если PIN-код данных высокий, в сдвиговый регистр вставляется 1; в противном случае 0,

      Когда все восемь импульсов получены, включение контакта «защелка» сохраняет эти восемь значений для регистрации и отображает их в выходных PIN-кодах.

      Помимо выходных PINS (Q0…Q7), данные, часы и защелка, другие PINS доступны от 74hc595:

      • Vcc и GND: конечно, 5 В и земля на выход питания
      • OE (Output Enable): этот PIN включает или отключает вывод. 74hc595 предоставляет вывод, когда OE низкий (0)
      • MR (Master Reclear): этот PIN-код очищает память при установке в 0. Итак, имея 74hc595 рабочих средств MR, подключенных к 1.
      • serOut (Serial Output): используется, когда вам нужно управлять вторым сдвиговым регистром, подключенным к этому.

      Что нам нужно

      Как обычно, я предлагаю с этого момента добавить в корзину вашего любимого интернет-магазина все необходимое оборудование, чтобы в конце вы могли оценить общие затраты и решить, продолжать ли проект или удалить их из корзины. Итак, оборудование будет только:

      • Обычный компьютер (возможно с Windows, Linux или Mac). Это также может быть компьютерная плата Raspberry PI 9.0200
      • Микроконтроллер Raspberry PI Pico (с обычным кабелем micro USB)
      • Проводка Dupont
      • Макетная плата без пайки
      • Резисторы
      • 74HC9595 Чип

      ).

      Ознакомьтесь с ценами на оборудование по следующим ссылкам:

      Схема подключения

      На следующем рисунке приведена схема подключения для этого проекта. Обратите внимание, что более длинный PIN-код светодиода (положительный) указывает на сдвиговый регистр. SerOUT остается неподключенным. Для портов микроконтроллера вы можете обратиться к моей статье о распиновке Raspberry PI Pico.

      Ниже приведены подробные изображения:

      Пошаговая процедура

      Подготовьте кабели в соответствии с предыдущим параграфом. Подключите RPI Pico к Thonny (вы можете обратиться к моему руководству о первых шагах с Raspberry PI Pico).

      Получите и поймите мой код pico74HC595.py

      Теперь загрузите мой основной файл для проверки вашего датчика DHT11:

      • pico74hc595.py

      Я объясню все строки кода в следующих абзацах.

      В первую очередь импортируются необходимые библиотеки:

       из пин-кода импорта машины
      импортировать ютайм
      import random 

      utime и random не являются строго обязательными для использования регистра сдвига 74hc595, но это требуется только для нашего тестового примера.

      Затем переменным присваиваются PIN-коды для лучшего управления и понимания кода. Эти значения совпадают с показанной схемой подключения. Если вы используете разные GP, отредактируйте их в соответствии с вашими кабелями (номера портов можно найти в распиновке Raspberry PI Pico):

       данные PIN = 13
      защелкаPIN = 15
      clockPIN = 14 

      Со следующими строками мы выполняем два действия с каждой отдельной строкой. Каждая строка преобразует переменную dataPIN, latchPIN или clockPIN (которые представляют собой простые целые числа) в объекты PIN микропитона и устанавливает их для вывода:

       dataPIN=Pin(dataPIN, Pin.OUT)
      latchPIN=Pin(latchPIN, Pin.OUT)
      clockPIN=Pin(clockPIN, Pin.OUT) 

      Мы используем функцию для управления вызовом обновления сдвигового регистра. Эта функция требует 4 параметра:

      • ввод -> строка, содержащая 8 символов, состоящая только из «1» и «0»
      • данные -> для идентификации передачи данных PIN
      • часы -> для идентификации тактового сигнала PIN
      • защелка -> для идентификации защелки PIN

      Эта функция также управляет тактовым сигналом до и после каждого шага:

      • защелка в ноль,
      • передача данных
      • защелка в 1

      по другим данным согласно временной диаграмме.

       def shift_update (ввод, данные, часы, защелка):
        #опустите защелку, чтобы начать отправку данных
        часы.значение (0)
        защелка.значение (0)
        часы.значение(1)
        
        #загружаем данные в обратном порядке
        для i в диапазоне (7, -1, -1):
          часы.значение (0)
          data.value (int (ввод [i]))
          часы.значение(1)
        # поставить защелку для сохранения данных в регистре
        часы.значение (0)
        защелка.значение(1)
        clock.value(1) 

      При наличии этой функции, если вы хотите (например) установить все выходы на 0, вы можете просто использовать:

       shift_update("00000000",dataPIN,clockPIN,latchPIN) 

      Но наш тестовый код также реализует пример использования. Этот пример начинается с конфигурации со всеми выключенными светодиодами. Затем запускается бесконечный цикл, генерирующий на каждой итерации случайное число (0 или 1) и присваивающее его Q0. Все остальные выходы сдвигаются на одну позицию, поэтому предыдущее значение Q0 становится Q1, Q1 переходит в Q2 и так далее, при этом значение Q7 исчезает.

      Добавить комментарий

      Ваш адрес email не будет опубликован. Обязательные поля помечены *