В ARDUINO у нас есть 20 контактов ввода / вывода, поэтому мы можем запрограммировать 20 контактов UNO, которые будут использоваться как вход или выход. Хотя на контроллере ATMEGA328P больше контактов, чем на UNO, это связано с тем, что при проектировании платы некоторые контакты используются по умолчанию.
Теперь для некоторых приложений нам нужно более 30 контактов, скажем, если мы хотим разработать светодиодный куб 5x5x5, поэтому для этого нам нужно 5x5 + 5 = 30 контактов. Для таких случаев мы используем микросхемы преобразователя из последовательного в параллельный или сдвиговый регистр. Чип регистра сдвига последовательно принимает данные с платы UNO и выдает выходной сигнал в 8-битной параллельной конфигурации.
Необходимые компоненты
Аппаратное обеспечение: плата Arduino uno, соединительные контакты, резистор 220 Ом, светодиод (восемь штук), микросхема 74HC595, макетная плата.
Программное обеспечение: Arduino nightly
Принципиальная схема и объяснение работы
Здесь мы собираемся отправлять данные размером восемь бит через один канал в регистр сдвига. Регистр сдвига принимает данные последовательно и сохраняет их в своей памяти. Как только данные будут отправлены контроллером, мы собираемся отправить команду в сдвиговый регистр, чтобы показать данные на выходе, с помощью этой команды сдвиговый регистр выводит данные параллельно.
Этот выход отображается с помощью восьми светодиодов, подключенных к выходу.
Для подключения сдвигового регистра к Arduino UNO нам нужно сделать две вещи:
|
Сначала нам нужно установить любые три контакта UNO в качестве выхода. Затем нам нужно подключить цифровой вывод, вывод часов и вывод защелки к этим трем выводам. После этого нам нужно сообщить UNO, какой вывод микросхемы подключен к выводам платы UNO. Это делается простым написанием команды «
shiftOut(dataPin, clockPin, data);
». Данные здесь могут быть двоичными, десятичными или шестнадцатеричными. Восьмибитная информация, которую необходимо отправить, записывается вместо «данных».
Отправленные данные выполняются как:
Отключить защелку, это говорит микросхеме не отображать вывод на данный момент.
Восемь раз мы будем посылать данные с синхронизацией последовательно, поэтому тактовый сигнал высокий, низкий уровень данных, низкий тактовый сигнал и так далее.
Включите защелку, это говорит чипу показывать восьмибитные данные.
Работа ARDUINO с SHIFT REGISTER объясняется шаг за шагом в коде C, приведенном ниже: