Регистр сдвига 74HC595, корпус DIP-16
Рассмотрим типичную ситуацию, когда вам нужно больше выходов (пинов), чем может предложить контроллер Arduino. В этом случае самый простой выход — использовать сдвиговый регистр.
![]() |
Пины 1-7, 15 | Q0 " Q7 | Параллельные выходы |
Пин 8 | GND | Земля | |
Пин 9 | Q7" | Выход для последовательного соединения регистров | |
Пин 10 | MR | Сброс значений регистра. Сброс происходит при получение LOW | |
Пин 11 | SH_CP | Вход для тактовых импульсов | |
Пин 12 | ST_CP | Синронизация ("защелкивание") выходов | |
Пин 13 | OE | Вход для переключения состояния выходов из высокоомного в рабочее | |
Пин 14 | DS | Вход для последовательных данных | |
Пин 16 | Vcc | Питание |
Пт, 18/02/2011 - 21:59 | by Alexander
Рассмотрим типичную ситуацию, когда вам нужно больше выходов (пинов), чем может предложить контроллер Arduino. В этом случае самый простой выход — использовать сдвиговый регистр. В данном примере используется 74HC595.
74HC595 — восьмиразрядный сдвиговый регистр с последовательным вводом, последовательным или параллельным выводом информации, с триггером-защелкой и тремя состояниями на выходе.
Другими словами этот регистр позволяет контролировать 8 выходов, используя всего несколько выходов на самом контроллере. При этом несколько таких регистров можно объединять последовательно для каскадирования. Другие подходящие регистры можно поискать по комбинации "595" и "596" в серийном номере. Так, например, STP16C596 может управлять 16 светодиодами одновременно без использования дополнительных резисторов.
В данной схеме используется принцип синхронизированной последовательной передачи сигнаналов. Необходимые значения сигнала (биты HIGH или LOW) передаются в регистр один за другим, при этом регистр получает синхронизирующий сигнал, который заставляет его считать сигнал с входа. Когда байт (1 байт = 8 бит) считан, значения всех 8 бит распределены по выходам. То есть передаем в регистр сигналы последовательно, на выходах регистра имеем параллельно 8 сигналов.
74HC595 может отдавать сигналы не только параллельно, но и последовательно. Это необходимо при объединении нескольких регистров, для получения 16 и более выходов. В этом случае первые 8 бит сигнала передаются на следующий регистр для параллельного вывода на нем, об этом будет рассказано более подробно во втором примере.
Три возможных состояния на выходе, упомянутые выше, означают, что выход регистра может иметь не только логический ноль или единицу (HIGH или LOW), но и быть в высокоомном (высокоимпедансном) состоянии — когда выход отключен от схемы. В высокоомное состояние не может быть переведен отдельный выход, а только все выходы регистра разом. Если мы говорим об управлении светодиодами, это может быть полезно в случае, когда мы хотим переключить управление ими на другой контроллер. В примере ниже это состояние никак не используется и довольно редко может быть полезно.
![]() |
Пины 1-7, 15 | Q0 " Q7 | Параллельные выходы |
Пин 8 | GND | Земля | |
Пин 9 | Q7" | Выход для последовательного соединения регистров | |
Пин 10 | MR | Сброс значений регистра. Сброс происходит при получение LOW | |
Пин 11 | SH_CP | Вход для тактовых импульсов | |
Пин 12 | ST_CP | Синронизация ("защелкивание") выходов | |
Пин 13 | OE | Вход для переключения состояния выходов из высокоомного в рабочее | |
Пин 14 | DS | Вход для последовательных данных | |
Пин 16 | Vcc | Питание |
Подключим:
Итак, мы запитали регистр и сделали все выходы активными. Это несколько упрощенный способ подключения, так как в момент подачи питания на схему на выходах будут случайные значения. Можно контролировать пин MR и OE непосредственно с Arduino, чтобы обнулить входы и/или подключить выходы в нужный момент. Для упрощения схемы и минимизации количества задействованных выходов Arduino мы будем использовать более простую схему, так как значения регистров и выводов будут перезаписаны, как только программы начнет работать.
Соединяем с Arduino:
Далее эти выходы в тексте и коде именуются dataPin, clockPin и latchPin соответственно. Обратите внимание на конденсатор 0.1 микрофарада на latchPin, он минимизирует шум в схеме при подаче "защелкивающего" импульса.
Подключаем светодиоды к выходам регистра 74HC595, катод (короткая ножка) светодиода подключается к общей земле, а анод (длинная ножка) через ограничительный 220-ОМ резистор к выходам регистра. При использовании регистров отличных от 74HC595 следует свериться с документацией и проверить схему подключения. К некоторым регистрам светодиоды подключаются наоборот — катод к выходам.
Схема подключения