- Платы Ардуино
- Обучение Ардуино
- Мой блог
- Уроки »
- Урок № 1 "Пишем свой первый скетч"
- Урок № 2 "Подключение фоторезистора"
- Урок № 3 "Подключение пищалки(BUZZER)
- Урок № 7 "Модуль часов RTC DS3231"
- Урок № 8 - "Шаговый двигатель 28BYJ-48"
- Урок № 10 - "ИК пульт на Ардуино"
- Урок № 11- "Сканер отпечатка пальца"
- Урок № 12- "Датчик наклона SW-200D"
- Урок № 13- "Гирлянда светодиодная WS2812b"
- Книги
- Мой YOUTUBE
Сдвиговый регистр 74hc595 ардуино. Входы выходы ардуино.
Сдвиговый регистр 74hc595 ардуино. Входы выходы ардуино.
Сдвиговый регистр 74hc595 позволяет добавить Ардуино 8 выходных пинов. Подключив несколько сдвиговых регистров вы можете добавить неограниченное число выходных пинов в Ардуино. В видео рассмотрен принцип работы Сдвигового регистра 74hc595, его схема подключения. Описание встроенной функции в Ардуино shiftOut. Микросхема 74hc595 является выходным сдвиговым регистром при последовательном поступлении бит.
На картинке не фейк. Вы правда можете сделать хоть 100 выходов.
При работе с микроконтроллерами Ардуино часто не хватает свободных пинов. Их всего-то штук 20. Это зависит от модели.
Если вам надо подключить на выход много устройств, а вы упёрлись в нехватку пинов, то не спешите покупать дорогостоящую Мегу.
Сегодня я расскажу как можно просто и дёшево расширить возможности своей Ардуино.
Чтобы сделать дополнительные выходы нужно всего лишь добавить микросхему - 74hc595.
74HC595 — это восьмиразрядный сдвиговый регистр с последовательным вводом, последовательным или параллельным выводом информации, с триггером-защелкой и тремя состояниями на выходе.
Звучит страшно, но на самом деле всё просто. Подключаем к Ардуино 3 вывода, а на выходе получаем 8.
Это говорит о том, что с помощью одного сдвигового регистра вы можете добавить 8 выходов и управлять 8 устройствами, используя всего 3 вывода микроконтроллера.
А соединив несколько регистров, вы можете вообще забыть про нехватку пинов. И вся прелесть таких регистров в том, что вы совсем не потеряете в скорости обмена, так как эта микросхема работает на частотах до 100 мГц, а это значительно больше, чем может выдать микроконтроллер.
Один такой сдвиговый регистр на 74hc595 добавляет 8 выходов, два 16 выходов, 3 - 24 выхода и так далее.
А задействованы будут всего всё те же 3 пина микроконтроллера.
В одном из следующих видео я покажу как можно увеличить количество входов с помощью подобного регистра. Как это сделать вы можете посмотреть в этом видео. Правда оно немного старое и я скоро его пересниму. Но это видео не потеряло актуальности.
Давайте посмотрим как выглядит сдвигового регистра на 74hc595. В разных даташитах он обозначается по разному. Поэтому я приведу 2 варианта.
Это микросхема с 16 выводами по 8 с каждой стороны.
8(GND) и 16(VCC) соответственно это земля и питание.
Напряжение питания от 2 до 6 вольт. Так что она спокойно работает и 3 вольтовой логикой, например ESP8266. Если вам будет интересно, то я могу снять видео о подключении регистра к ESP8266.
Так же надо 10 вывод подключить к + питания, а 13 притянуть к земле.
Вывод 13 используется для включения/отключения выходов. Подав на него 5 вольт мы можем отключить выводы Q0-Q7. При этом значение, записанное в память регистра никуда не пропадёт. Это можно использовать для отключения светодиодного индикатора. Мы этим заниматься не будем, поэтому сразу подключаем к земле.
Тоже и с 10 выводом. отвечающим за Reset, только его надо подключить к питанию. Reset очищает память регистра, при подаче низкого уровня сигнала, т.е. логического нуля.
11 Вывод – это Вход тактовых импульсов. А при подаче 5 В происходит сдвиг битов влево, освобождая место для нового значения которые поступают на вход 14 вывода регистра.
12 вывод это Синхронизация, но все называют её защёлка. И она нужна для выгрузки данных из временной памяти. При приёме данных защёлка должна находиться в Низком состоянии. А для вывода значений должна быть переключена в Высокий уровень. То есть 0 и 1. Этим мы даём указание регистру установить цифровые выходы регистра в нужное состояние.
14 вывод это вход последовательных данных (DATA). принимает значение для выбранного бита. При получении высокого уровня, записывает в память единицу, а при получении низкого уровня сигнала, записывается 0.
Как работают эти 3 вывода.
Если на 14 единица и на 11 единица – то в память записывается 1
Если на 14 ноль, а на 11 единица – то в память записывается 0
Так мы записываем 8 бит информации. Но на выводах регистра ещё ничего нет. Пока всё хранится во внутренней памяти.
Это всё должно происходить при низком состоянии Защёлки.
digitalWrite(latchPin, LOW); // Защёлка для приёма
shiftOut(dataPin, clockPin, LSBFIRST, 0b1010101001); // побитовый сдвиг
digitalWrite(latchPin, HIGH); // Защёлка передача
Для вывода информации наружу, надо подать на Защёлку высокий уровень. Теперь все нули и единицы находятся на выводах Q0 - Q7 микросхемы. И если выходе 1, то светодиод загорится.
Если у вас подключено больше 1 регистра, то надо записать ещё по одной строчке на каждый регистр.
digitalWrite(latchPin, LOW); // Защёлка для приёма
shiftOut(dataPin, clockPin, LSBFIRST, 0b1000000000); // побитовый сдвиг
shiftOut(dataPin, clockPin, LSBFIRST, 0b0000000001); // побитовый сдвиг
digitalWrite(latchPin, HIGH); // Защёлка передача
Сначала загружаются первые 8 бит. Затем загружаются вторая порция битов, продвигая предыдущие вперёд.
В этом примере загорится 1 и последний светодиод. То есть 1 и 16 светодиод.
Выводы Q0 - Q7 — это выходы регистра. Для сегодняшних примеров я подключил к каждому из них по светодиоду, что бы видеть как это всё будет работать. Так как я использую 2 регистра, то я подключил 16 светодиодов.
Не забываем, что светодиоды надо подключать через токоограничивающий резистор от 150 Ом.
9 выход отвечает за последовательное соединения таких же регистров. Его надо подключить к выводу 14 другого регистра.
А 11 и 12 выводы на обоих микросхемах надо соединить с аналогичными.
Принцип работы сдвигового регистра очень прост.
Регистр получает 1 байт информации, то есть 8 бит. По одному биту на каждый выход микросхемы.
Биты могут быть нулями или единицами. Соответственно если вы передали на один из выводов 0, то и на выходе тоже будет ноль. Например, для включения светодиода вам надо передать 1.
Например, передав 00001111 вы получите 4 выхода в состоянии низкого уровня, а другие 4 будут с высоким уровнем.
На выходы можно подключать не только светодиоды, но и, например реле и управлять ими программно или с помощью внешних кнопок.
Скетч.
Для своих примеров я использовал встроенную в Ардуино функцию shiftOut
Её формат такой.
shiftOut (dataPin, clockPin, bitOrder, value)
- Первый параметр (dataPin) - это пин микроконтроллера, который соединен с 14 выводом сдвигового регистра.
- Второй параметр (clockPin) - это пин микроконтроллера, который соединен с 11 выводом сдвигового регистра.
- Третий параметр (bitOrder) устанавливает направление чтения битов – слева направо (MSBFIRST) или справа налево (LSBFIRST).
- И последний, четвёртый параметр (value) – это сами биты переданные из Ардуино.
Схема подключения.
Я покажу схему подклюяения двух регитров, а вы можете подключать любое количество.
Объяснять я здесь ничего небуду. Вроде и так всё понятно. Если что не понятно, то спрашивайте.
На этом я заканчиваю ещё одно видео про работу с Ардуино. Надеюсь, что вам было всё понятно и интересно. Если это так, то вы можете отблагодарить меня поставив лайки написав комментарий под этим видео.
Буду ждать. И до встречи в новых видео. У меня ещё много интересного.
Примеры использования сдвиговых регистров
Сдвиговый регистр 74hc595 ардуино. Входы выходы ардуино.
Как подключить сдвиговый регистр 74HC595 и управлять 16 реле с телефона
Входы и выходы на ардуино. Пример подключения сдвиговых регистров 74hc595 и 74hc165.
Сдвиговый регистр 74hc165 ардуино. Входы ардуино
Расширение возможностей Arduino с помощью сдвиговых регистров 74HC165 и 74HC595
Скетчи