Найти в Дзене
Электроника и жизнь

Подключение сдвигового регистра 74HC595 к светодиодному индикатору на примере ATtiny13 и Ардуино

Здравствуйте, уважаемые читатели! В прошлой статье мы говорили о семисегментном индикаторе и о его подключении к Ардуино. Сегодня поговорим о подключении данного индикатора к микроконтроллерам семейства ATtiny с помощью сдвигового регистра 74HC595. Подключать я буду на примере ATtiny13.

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

Если посмотреть схему подключения из прошлой статьи, в которой мы задействовали 9 пинов Arduino UNO (8 цифровых пинов и землю), то очевидно, что у малыша ATtiny просто не хватит ног. У него всего 8 ног, из которых только 5 мы можем использовать как цифровые.

В этом случае у нас есть два варианта: либо взять микроконтроллер с большим количеством пинов, например, очень популярный вариант ATtiny2313, либо использовать сдвиговый регистр, который задействует только 3 пина микроконтроллера, а на выходе даст результат работы 8 цифровых пинов.

Об ATtiny2313 подробно поговорим в одной из следующих статей, а сейчас разберемся, что такое сдвиговый регистр, принцип его работы и схему подключения.

Изначально мы соберем схему на Arduino UNO, протестируем, а затем, вместо Ардуино подключим ATtiny13 и адаптируем подключение и схему для него.

Распиновка сдвигового регистра выглядит следующим образом:

Распиновка сдвигового регистра 74HC595
Распиновка сдвигового регистра 74HC595

Пины с 1 по 7, на схеме обозначенные от Q1 до Q7 и еще пин номер 15, обозначенный на схеме как Q0 – это цифровые выходы, которые и будут зажигать секции светодиодного индикатора.

8 пин – пин для подключения земли, а 16 пин для подачи напряжения 5В.

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

10 пин – это reset. Он очищает память регистра, при подаче низкого уровня сигнала, т.е. логического нуля. Нам это не нужно, поэтому данный пин будет постоянно подключен к питанию 5В.

С помощью подачи 5 В на 13 пин мы можем отключить выходные пины Q0-Q7. При этом значение, записанное в память регистра сохраняться. Т.е. этот пин, можно использовать для включения и отключения светодиодного индикатора. А пока что соединим его с землей.

Самое интересное происходит с пинами 11, 12 и 14, которые мы и подключаем к микроконтроллеру и по ним передаем данные, управляющие сдвиговым регистром.

Начнем с 12 пина (ST). При подаче низкого уровня сигнала на данный пин, мы подготавливаем регистр к приему цифровых данных от микроконтроллера. А при подаче высокого уровня сигнала, записывает данные во внутреннюю память регистра и одновременно, передаем сигналы на цифровые выходы регистра.

14 пин (Ds) принимает значение для выбранного бита. Т.е. при получении высокого уровня сигнала 5 В, записывается в память единица, а при получении низкого уровня сигнала, записывается 0.

А при подаче 5 В на 11 пин (SH), мы произведем сдвиг битов влево, чтобы освободить место получения нового значения через 14 пин Ds.

Более подробно о принципах работы сдвигового регистра и о их последовательном подключении я расскажу в отдельной статье.

В среде Arduino IDE есть стандартная функция shiftOut(), которая значительно упрощает работу со сдвиговым регистром.

shiftOut (dataPin, clockPin, bitOrder, value)

В качестве первого аргумента (dataPin) нужно указать пин микроконтроллера, который соединен с 14 пином (Ds) сдвигового регистра.

В качестве второго аргумента (clockPin) нужно указать пин микроконтроллера, который соединен с 11 пином (SH) сдвигового регистра.

Третий аргумент (bitOrder) задает порядок чтения передаваемых регистру байт – слева направо (MSBFIRST) или справа налево (LSBFIRST).

Четвертый аргумент (value) – собственно битовое представление передаваемой цифры.

Вначале соберем схему на макетной плате с Arduino UNO.

Схема подключения сдвигового регистра 74HC595 к Ардуино
Схема подключения сдвигового регистра 74HC595 к Ардуино

Разместим на макетной плате светодиодный индикатор и рядом сдвиговый регистр.

Пины 5 В и GND Arduino UNO соединим с плюсом и минусом макетной платы.

Пины с 1 по 7 сдвигового регистра соединим с пинами светодиодного индикатора, в том же порядке, в каком они идут у светодиодного индикатора, пропуская 3 пин, связанный с землей, 5-й пин связанный с точкой и 8-й пин снова связанный с землей.

3 пин светодиодного индикатора соединим через резистор 220 Ом с землей.

Всё, со светодиодным индикатором закончили, возвращаемся к регистру. 8 его пин соединяем с землей, 16 пин с плюсом макетной платы. Еще с плюсом соединим 10 пин, а с минусом 13 пин.

Остались у нас пины для связи с микроконтроллером. Подключим 11 пин (SH) ко второму пину Arduino UNO, 12 пин (ST) к 3 пину Ардуино, а 14 пин (Ds) к 4 пину Ардуино.

Возьмем скетч, из прошлой статьи, где мы последовательно включали цифры на индикаторе, и адаптируем его для работы со сдвиговым регистром.

Скетч для работы сдвигового регистра 74HC595 и Ардуино
Скетч для работы сдвигового регистра 74HC595 и Ардуино

В функции setup() настроим пины со 2 по 4 для работы с выходным сигналом.

А в функции loop() в цикле будем последовательно выводить все цифры от 0 до 9.

В начале подаем низкой уровень сигнала, на 12 пин (ST) регистра, подготавливая его к приему новых данных. Далее с помощью функции shiftOut() указываем номера пинов связанных с пином 14 (Ds) и 11 (SH) сдвигового регистра и передаем регистру битовое представление текущей цифры. После этого, подаем высокий уровень сигнала на 12 пин (ST), сообщая регистру, что записанные данные можно отправлять на цифровые выводы.

Загружаем скетч в Ардуино. И видим как цифры последовательно сменяют друг друга.

Подключение сдвигового регистра 74HC595 к Arduino UNO на макетной плате
Подключение сдвигового регистра 74HC595 к Arduino UNO на макетной плате

Кстати, если переподключить 13 пин сдвигового регистра с минуса на плюс, то светодиодный индикатор гаснет, но перебор цифр продолжается. Т.е. как будто отключился экран, в режиме энергосбережения.

Теперь вместо Arduino UNO подключим ATtiny13. Подключение аналогичное. Только у ATtiny13 мы задействуем 5,6 и 7 ножки, которые в Arduino IDE обозначаются 0, 1 и 2.

-6

Видоизменяем скетч для работы с ATtiny. Загружаем скетч в ATtiny.

Скетч для работы сдвигового регистра 74HC595 и ATtiny13
Скетч для работы сдвигового регистра 74HC595 и ATtiny13

Все ссылки на статьи по прошивке микроконтроллеров ATtiny, а так же схемы и скетчи я оставлю в конце статьи.

Устанавливаем ATtiny13 на макетную плату. 5, 6 и 7 его ножки соединяю с 11, 12 и 14 пинами сдвигового регистра. 4 ножку с минусом, а 8 с землей.

Схема подключения сдвигового регистра 74HC595 к ATtiny13
Схема подключения сдвигового регистра 74HC595 к ATtiny13

А в качестве источника питания буду использовать LiPo аккумулятор на 3,7 В.

Как только подаем питание на схему, видим как последовательно выводятся все цифры от 0 до 9.

Подключение сдвигового регистра 74HC595 к ATtiny13 на макетной плате
Подключение сдвигового регистра 74HC595 к ATtiny13 на макетной плате

Таким образом, можно выводить на светодиодный индикатор информацию, которую получает микроконтроллер с датчиков, в том числе, которую он хранит в памяти. Я обязательно вернусь к теме работы со светодиодными индикаторами, когда необходимо будет извлекать из энергонезависимой памяти EEPROM информацию, которую туда в течение какого-то периода записывал микроконтроллер ATtiny.

О 4-х символьных индикаторах поговорим в одной из следующих статей. Т.к. есть вариант использования вот таких готовых модулей. Существенно упрощающих подключение светодиодного индикатора к микроконтроллеру. Что в каких случаях лучше использовать и о способах подключения светодиодного индикатора и модуля на его основе к Ардуино и ATtiny мы обсудим далее.

Схема подключения сдвигового регистра 74HC595 к Ардуино - https://yadi.sk/i/aq6c40LjqrmxaA

Схема подключения сдвигового регистра 74HC595 к ATtiny13 - https://yadi.sk/i/aq6c40LjqrmxaA

Скетч семисегментный индикатор + сдвиговый регистр 74HC595 + Arduino UNO -https://yadi.sk/d/pO3-qut4WgpLUQ

Скетч семисегментный индикатор + сдвиговый регистр 74HC595 + ATtiny13 - https://yadi.sk/d/pO3-qut4WgpLUQ

Видео по материалам статьи:

_________________________________________________________

Спасибо, что дочитали до конца! Если статья понравилась, нажмите, пожалуйста, соответствующую кнопку. Если интересна тематика электроники и различных электронных самоделок, подписывайтесь на канал. До встречи в новых статьях!

Другие публикации по теме: