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

4-03-2020, 16:49 0 комментариев
Сегодня мы с вами рассмотрим подключение 74HC595 к Ардуино, а также поговорим о базовых характеристиках этой модели выходного сдвигового регистра и его применении в современных проектах. В глубины терминологии вдаваться не будем, лишь отметим, что знакомимся с довольно бюджетным и очень распространенным устройством. Оно создано для упрощения работы с сегментными индикаторами и матрицами светодиодов, т.к. позволяет увеличить общее количество выводов платы расширения.

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

Для справки: сдвиговый регистр - это набор последовательно соединённых D-триггеров (которые поддерживают функцию сдвига вправо и влево).

Обратимся к техническим параметрам устройства:
  • напряжение: 2 - 6V;
  • выходной ток: 6 мА;
  • рабочие температуры: от -40°C до +85°C.
Распиновка выводов:

Теперь можно приступать к главному – подключим сдвиговый регистр 74HC595 к Arduino. Схема сборки будет выглядеть следующим образом:
В ней мы использовали следующие аппаратные детали: микроконтроллер Arduino Uno (Arduino Nano также подойдет), модуль регистра 74HC595, 8 светодиодов и столько же резисторов, соединительные провода (комплект), и обратите внимание – 2 макетных платы.

Если желаете использовать одну плату расширения, принципиальная схема подключения изменится и будет выглядеть так:
Ну а мы вернемся все же к первому варианту. Загружаем скетч для проверки работоспособности индикаторов:
int latchPin = 12;
int clockPin = 11;
int dataPin = 13;
byte leds = 0;
int currentLED = 0;

void setup()
{
    pinMode(latchPin, OUTPUT);
    pinMode(dataPin, OUTPUT);
    pinMode(clockPin, OUTPUT);

    leds = 0;
}

void loop()
{
    leds = 0;

    if (currentLED == 7)
    {
        currentLED = 0;
    }
    else
    {
        currentLED++;
    }

    bitSet(leds, currentLED);

    digitalWrite(latchPin, LOW);
    shiftOut(dataPin, clockPin, LSBFIRST, leds);
    digitalWrite(latchPin, HIGH);

    delay(250);
}
Как видите, мы не использовали библиотеки, т.к. коды – простые.

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

Надеемся, собранный материал вам пригодится! Удачных проектов!
Поделись в социальных сетях:
О авторе
Калугин Антон

Программист микроконтроллеров с 8-ми летним стажем, работал в таких компаниях как IBM, ASUS, Microsoft.

В комментариях с радостью отвечу на ваши вопросы.

Все статьи автора
Похожие новости

Сегодня поговорим о том, как воплотить в жизнь подключение FPM10A к Arduino, что это за модуль, где используется, каковы параметры его работы и т.д. Речь идет...

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

Сегодня рассмотрим подключение 74HC165 к Ардуино и основные моменты, с ним связанные. Мы уже рассказывали нашим читателям о расширителях портов, так вот –...

В новом информационном обзоре рассматриваем GSM модуль SIM800L к Arduino. Почему выбрано именно это устройство? Во-первых, оно достаточно известно и популярно...

В этой статье мы рассмотрим подключение ADS1115 к Ардуино. Речь идет о 16-битном аналого-цифровом преобразователе, оснащенном 4 входами непосредственно для...

Оставить комментарий