/* исправлена схема подключения регистра */
Сдвиговый регистр 74hc595 Arduino используется для управления семисегментным дисплеем и светодиодами. Регистры сдвига имеют множество применений, одно из самых популярных — умножение выходов платы (используем 3 порта, а на выходе получаем 8). Рассмотрим на примерах, программах и схемах, как использовать сдвиговый регистр 74hc595 Ардуино для подключения светодиодов и 7-сегментного индикатора 5161.
СОДЕРЖАНИЕ
Необходимые компоненты:
- Arduino Uno / Arduino Nano / Arduino Mega
- сдвиговый регистр 74hc595
- светодиоды и резисторы
- 7-сегментный индикатор 5161
- макетная плата
- коннекторы
Дополнительные материалы на эту тему:
Чтобы понять, как работает сдвиговый регистр Arduino, рассмотрим распиновку 74hc595 (datasheet на русском), показанную на рисунке ниже. Контакты DS, ST_CP и SH_CP являются управляющими контактами и подключены ко всем выходам микроконтроллера Ардуино. Выводы Q0 — Q7 являются выходами сдвигового регистра (биты). Посылая байт с платы Arduino Uno, вы можете изменить состояние любого бита (HIGH или LOW).
Ардуино регистр 74HC595 распиновка, характеристики

74hc595 datasheet, характеристики
- Напряжение питания — 5 В
- Ток потребления — 40 мА
- Разрядность параллельного входа (выхода) — 8 бит
- Количество сигнальных линий для передачи данных — 3
- Время установки — 20 нс
- Максимальная частота — 100 МГц
- Диапазон температур от -40 до +85C°
Когда мы пошлем байт: 00011000 на 74hc595d, он изменит состояние (HIGH или LOW) своих выходов. Затем мы увидим, что если к каждому контакту подключен светодиод, то 2 «средних» светодиода (географически говоря) по отношению к соседним LED будут находиться в противоположном состоянии. Таким образом, используя только три цифровых выхода на Arduino, вы можете задействовать 8 цифровых выходов на регистре.
Как подключить сдвиговый регистр 74HC595 Arduino

Теперь мы рассмотрим, как использовать компонент с платами Arduino Uno или Nano. Чтобы полностью понять назначение и работу сдвигового регистра 74hc595 — необходимо подключить регистр к Arduino Uno в соответствии со схемой и загрузить следующий скетч. Следующая программа позволяет попеременно включать/выключать восемь светодиодов, используя только 3 цифровых цифровых пина вашего микроконтроллера Ардуино.
Скетч подключение светодиодов к 74HC595 регистру
#define dataPin 10
#define latchPin 11
#define clockPin 12
byte byteToSend = 0;
void setup() {
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
digitalWrite(latchPin, HIGH);
}
void loop() {
for (byte bitPos = 0; bitPos < 8; bitPos++) {
byteToSend = 0;
bitWrite(byteToSend, bitPos, HIGH);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, byteToSend);
digitalWrite(latchPin, HIGH);
delay(100);
}
for (byte bitPos = 0; bitPos < 8; bitPos++) {
byteToSend = 0;
bitWrite(byteToSend, bitPos, HIGH);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, byteToSend);
digitalWrite(latchPin, HIGH);
delay(100);
}
}
Как подключить семисегментный индикатор к 74HC595

В следующем примере мы подключим к регистру 74HC595 семисегментный индикатор на светодиодах. Регистр сдвига для Ардуино не только упрощает сборку схемы, но и делает программу намного проще. После сборки схемы, изображенной на рисунке выше, загрузите программу для микроконтроллера. Скетч выводит на светодиодном индикаторе цифры от нуля до пяти. Для вас не составит огромного труда продолжить программу.
Скетч управление индикатором от регистра 74HC595
#define dataPin 10
#define latchPin 11
#define clockPin 12
void setup() {
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
digitalWrite(latchPin, HIGH);
}
void loop() {
// один
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, B00110000);
digitalWrite(latchPin, HIGH);
delay(1000);
// два
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, B01101101);
digitalWrite(latchPin, HIGH);
delay(1000);
// три
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, B01111001);
digitalWrite(latchPin, HIGH);
delay(1000);
// четыре
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, B00110011);
digitalWrite(latchPin, HIGH);
delay(1000);
// пять
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, B01011011);
digitalWrite(latchPin, HIGH);
delay(1000);
}
Заключение. Мы рассмотрели особенности, назначение и datasheet на русском сдвигового регистра 74hc595 Arduino (характеристики). Программировать этот модуль не намного сложнее, чем дисплей tm1637 на светодиодах. Мы привели в этой статье несколько примеров схем с рабочими программами для управления светодиодами и семисегментным дисплеем 5161s с помощью регистра 74hc595 от микроконтроллера Ардуино.
