Сдвиговый регистр 74hc165 ардуино. Входы ардуино

Сдвиговый регистр 74hc165 ардуино. Входы ардуино.

Сегодня рассмотрим пример подключения 20 кнопок к 4 контактам Ардуино используя сдвиговый регистр 74HC165. В следующем видео я объединю оба, а на выходе включать реле, светодиоды или сегментные индикаторы так же в любом количестве, используя всего 7 контактов Ардуино.

После выхода первой части меня стали спрашивать, а зачем нам столько входов, кстати никто не спросил зачем столько выходов. Отвечаю.
Ну во-первых самый напрашиваемый пример - это клавиатура на любое количество кнопок. И это не резистивная клавиатура, которая работает мягко говоря не очень.
Второе это цифровые датчики. Что такое цифровой датчик если не кнопка. Где на выходе или есть сигнал или его нет.
Третье – можно собрать музыкальный инструмент, например пианино. Хотя это тоже относится к первому примеру.
Ну и четвёртый – я давно обещал знакомым сделать лазерный тир, где в качестве входов будут фоторезисторы, а в качестве выходов светодиоды загорающиеся в месте попадания луча и семисегментного индикатора, для подсчёта очков.
Примеров можно приводить ещё очень много. Включите фантазию.

Приветствую всех моих подписчиков и гостей канала. Сегодня мы продолжим изучение микросхем сдвигового регистра на примере 74HC165  для увеличения количества входов.

Для Увеличения потребуется 4 входа на Ардуино. Одна такая микросхема способна добавить 8 входов, 2 уже 16, 3- 24 и так далее. А задействовано будет всего 4 вывода, независимо от количества входов.

У меня есть уже несколько видео на эту тему и если вам интересно или вы что-то не поймёте в этом видео, то перед тем как спросить, посмотрите их, возможно там уже есть ответ на ваш вопрос.
Примеры что я использую в этом видео были взяты оттуда.
Этот урок в основном про Протеус, поэтому на скетчах я останавливаться не буду. Так же я не буду собирать готовую схему, так как я это уже делал в указанных видео.

Рассмотрим пример работы.
По умолчанию все кнопки подключены к плюсу питания, и резистором на 10 ком подтянуты к земле, чтобы когда кнопка не нажата на ней был не случайный, а нулевой уровень. Это можно узнать, по синему квадрату на кнопке. Если уровень не определён квадрат будет серый, а если уровень высокий, то красный.

Посмотрим на примере.
Сейчас у меня зафиксирована кнопка номер 18. На неё поступает высокий уровень, и он так же поступает на регистр который соединён с этой кнопкой. Это видно по красному квадрату. Отключаем кнопку и сигнал пропадает, становится низким и синим.
Тоже проделаем с 20 кнопкой. Нажимаем и отпускаем. Сигнал передаётся. Так что схема у нас получилась рабочая. Немного потестим и приступим к разбору как это получилось и что для этого надо.

Открываем Протеус. Новый проект мы сегодня создавать не будем, так как будем продолжать проект из предыдущего видео. Единственное что надо сделать это заменить путь к HEX файлу.
Для получения 24 кнопок нам надо подключить 3 сдвиговых регистра. Подключаются они каскадом, то есть одна за другой, и так же как и в предыдущем примере некоторые выводы надо подключать параллельно друг другу.

1— это защёлка. При подаче сигнала LOW данные считываются во внутренний регистр, а при HIGH подача прекращается, защёлка закрываем.
15— это тактирование. Когда на нём 0, то продвигает полученные данные на одну ячейку вперёд.

Первый, второй и пятнадцатый вывод микросхемы надо соединить с аналогичными выводами на других микросхемах. Они отвечают за получение внешних данных, продвижение по ячейкам памяти.
9 вывод – это выход сдвигового регистра, его надо подключить к 10 выводу следующего регистра, образуя тем самым непрерывную цепочку.

Теперь их надо подключить к Ардуино.
Я в скетче прописал, что они будут подключены ко входам 4, 5, 6 и 7. Как и в предыдущем примере мы не будем тянуть линии связи через весь экран, а воспользуемся для этого контактами, а в свойствах пропишем в качестве названия пины к которым их надо подключить.

Теперь тоже самое проделаем и с микроконтроллером. Для подключения будем использовать порт D. Просто к нему ближе всего по схеме и там есть свободное место. Создаём 4 контакта и в свойствах прописываем с чем они будут связаны.

Идём дальше. В предыдущем видео я кнопки подключил к земле, но немного подумав решил, что лучше подключить их к плюсу питания. Поэтому удалил все земли.
Подключаем один вывод кнопки к питанию. В качестве питания выбираем источник VCC.
Теперь включим симуляцию и проверим как работают кнопки. На выводе который подключен к плюсу питания должен быть красный квадрат – это символ того что с этой стороны на кнопке +5 вольт, а на другой стороне серый квадрат. Как я уже говорил – это символ того, что на контакте неопределённый или по другому подвешенный контакт. И на нём может быть и плюс и земля, всё зависит от наводок. Это неправильно и потом мы это исправим. Нажав на кнопку на этом выводе появляется красный квадрат – высокий уровень + 5 вольт. Если у вас так же , то можете переходить дальше, а если нет, то проверьте, возможно у вас на схеме нет соединения.
На другой вывод кнопки повесим контакт а в свойствах дадим ему имя такое же как и кнопка которой он принадлежит. Потом мы эти контакты соединим со входами микросхемы сдвигового регистра.

Проделаем тоже самое со входами сдвигового регистра. Как видите, здесь нет ничего сложного. Всё однотипно, но это гораздо проще чем собирать всё это на макетной плате, а потом понять, что вам нужно что-нибудь изменить или дополнить ещё одним регистром сдвига. Здесь вы просто скопируете его, а на готовой плате это сделать ой как не просто.
Теперь проверим как работает схема. Я специально увеличил часть схемы, что бы лучше рассмотреть как нажатие кнопок влияет на входные регистры. Нажимая на кнопку, тем самым вы подаёте высокий уровень на одноимённый вход регистра, что мы можем видеть по красному квадрату на входе микросхемы. Вроде всё работает, но мы ещё не избавились от серого квадрата который может нарушить работу всей нашей схемы. Давайте с этим что-нибудь сделаем.

Что бы в не нажатом состоянии кнопка имела определённое значение, её надо или прижать к + питания или стянуть к земле. К плюсу прижимать нам нет смысла, так как кнопка при нажатии и так будет иметь высокий уровень, то есть + 5 вольт и тогда она никогда не изменит своего значения. Остаётся стянуть её к земле.
Тогда в выключенном состоянии кнопка будет иметь стабильный низкий уровень, то есть 0, а при включении изменит своё состояние на Высокий уровень, +5 вольт.
Для этого используем внешний резистор на 10 ком. Одним концом подключим его к выводу кнопки, а другим к  земле. У резистора довольно большое сопротивление, и оно не будет влиять в тот момент когда кнопка нажата и на ней будет + 5 вольт, и вполне достаточное для того что бы в выключенном состоянии на вывод поступал низкий уровень питания, или попросту земля.

Теперь установим на схему ещё один символ земли. Как я уже говорил на схеме может быть сколько угодно земель, и все они будут соединены между собой. Подключим свободные выводы резистора к земле.
Вот и всё теперь в нерабочем состоянии на кнопке всегда будет низкий уровень. Давайте это проверим.

При включении последней симуляции я забыл отключить кнопку номер 18, поэтому она в активном состоянии, все же остальные кнопки отключены.
Включаем 20 кнопку и смотрим в каком состоянии стал вход регистра отвечающий за эту кнопку. Он сейчас находится в высоком уровне. Теперь отпустим кнопку. На регистре тоже пропало напряжение и он стал синим.

Ну думаю, что вам понятно что и как работает. Сейчас нам главное понять как делать рабочие схемы и управлять входами и выходами. Если вас всё ещё интересует тема протеуса, то пишите и я продолжу снимать про него видео, а если нет, то у меня уже есть интересная тема и мне не терпится её вам рассказать. Надеюсь, что она вам тоже понравится.

Спасибо что досмотрели это видео до конца. Оставайтесь на канале скоро выйдут новые видео уроки на разные темы. Я уверен, что здесь вы сможете найти для себя что-нибудь интересное и полезное.
До встречи.

Дополнительные материалы и примеры
arduino и proteus Симуляция ардуино без подключения
Proteus arduino. установка дополнительных библиотек ARDUINO ESP8266 NodeMCU.
Сдвиговый регистр 74hc165 ардуино. Входы ардуино
Входы и выходы на ардуино. Пример подключения сдвиговых регистров 74hc595 и 74hc165
Простые измерения в Proteus. Амперметр и Вольтметр
Учимся Создавать и Тестировать Электронику в Proteus: Полное Руководство

Скетчи