Как да свържете регистър за смяна към Arduino (или да увеличите броя на щифтовете на микроконтролера),

Arduino, Направи си сам и някои от вашите Linux системи.

Как да свържете регистър за смяна към Arduino (или да увеличите броя на щифтовете на микроконтролера)

Чип за преместващ регистър

Рано или късно всеки начинаещ инженер по схеми, преминавайки от прости примери за обучение към реални задачи, задава въпроса: къде мога да получа толкова изходи на микроконтролера, колкото е необходимо? След свързване на един светодиод възниква въпросът - как да свържете пет? десет? двадесет? Стандартните 14 изхода на Arduino Nano или дори 54 на Arduino Mega лесно могат да бъдат недостатъчни за решаване на приложни проблеми. Наистина ли трябва да купите друг микроконтролер, да помислите за синхронизиране на две устройства? Разбира се, че не. Има елегантно решение на проблема с липсата на щифтове - регистърът за изместване на изхода (например микросхемата 74HC595).

Основният параметър на регистъра за смяна е битовата дълбочина. Той определя колко изхода ще има регистърът. Например, посочената по-горе микросхема е 8-битова и ще ви позволи да свържете до 8 устройства без напрежение, като използвате 3 пина на микроконтролера. Спестявания на човек - 3 вместо 8. Но, разбира се, има икономични хора, за които дори такава полза не е достатъчна. Специално за тях ви информираме, че регистрите за смяна могат да се свързват каскадно. Това означава, че като добавим един чип, ние увеличаваме броя на щифтовете с още 8, но не заемаме нови щифтове на Arduino.

Недостатъците на използването на регистър за смяна включват невъзможността за използване на модулация с ширина на импулса (PWM), тъй като изходите на регистъра могат да имат само логическите стойности на HIGH (1) и LOW (0). Ако ще светите с димируеми светодиоди, трябва да обърнете внимание на LED драйвери.

И така, как работи чипът 74HC595?

смяна

Pinout чип 74HC595

За да ориентирате микросхемата, върху нея се прилага маркировка под формата на куг - струва си да потърсите от коя страна да започнете да броите щифтовете.

Пина No.Обозначаванефункция
1-7, 15Q1-Q7, Q0Регистрирайте цифрови пинове
8GNDЗемята
9Q7′Изход за каскадни регистри
10Г-ННулирайте стойностите на регистъра (при нисък сигнал)
единадесетSH_CPВход на часовник
12ST_CPИзходно време
13OEПревключване на изходите от състояние с високо съпротивление в режим на работа (когато е приложен сигнал LOW) и обратно (когато е приложен сигнал HIGH)
14Д.С.Сериен вход на данни
16VccМощност +5V

В изходно състояние изходите на регистъра са във високоомно състояние. Това означава, че други елементи могат да променят напрежението върху тях, без да засягат производителността и логиката на микросхемата. Това може да бъде полезно, ако се планира едни и същи елементи да се управляват с помощта на различни регистри - когато единият е активен (НИСКИ сигнал на входа OE), вторият трябва да бъде превключен в състояние с високо съпротивление (ВИСОК сигнал на входа OE). Ако има само един регистър, можете безопасно да свържете OE към земята. Изходът GND също е свързан към земята.

За нормална работа на регистъра, когато свързвате, трябва да свържете и MR входа към захранващата шина. Там също свързваме Vcc.

смяна

Схема на свързване на регистъра за преместване 74HC595

Щифтове 1-7 са свързани към анодите (дълги крака) на светодиодите (зелени проводници), като се започне с2-ри светодиод

Пин 8 е свързан към земята (син проводник)

Pin 9 не е свързан с нищо.

Пин 10 е свързан към +5 V (червен проводник)

Пин 11 е свързан към щифт 4 на Arduino (черен проводник)

Пин 12 е свързан към щифт 3 на Arduino (друг черен проводник). Също така, щифт 12 е свързан към земята чрез 0,1uF кондензатор (жълт проводник).

Пин 13 е свързан към земята (син проводник)

Пин 14 е свързан към щифт 2 на Arduino (черен проводник)

Пин 15 е свързан към анода (дълъг крак) на първия светодиод (зелен проводник)

Пин 16 свързан +5 V (червен проводник)

Директното управление на регистъра се осъществява чрез входовете DS, SH_CP и ST_CP. Когато SH_CP превключи от LOW на HIGH, стойността от DS (1 бит) се чете в регистъра. При превключване на ST_CP от LOW на HIGH, приемането на информация приключва и изходите преминават в зададеното състояние. Не е необходимо обаче да разбирате логиката на регистъра толкова задълбочено - за Arduino, разбира се, вече има специални библиотеки - просто трябва да свържете тези входове към цифровите изходи на Arduino.

Моля, имайте предвид, че подаването на импулси към входа на микросхемата е високочестотно и за филтриране е желателно да поставите кондензатор с малък капацитет (0,1 μF) на входа ST_CP, за да сведете до минимум смущенията във веригата, когато се прилага сигнал за затваряне. Веригата също така използва светодиоди като товар и 220 ома резистори за ограничаване на тока.

Като пример ще управляваме осем светодиода. Проверете дали елементите са свързани правилно и качете следната скица в Arduino: