Регистры сдвига и Arduino - часть 1
Персональные компьютеры включают в себя интерфейсы малых компьютерных систем (SCSI) и FireWire, которые позволяют компьютерам связываться с периферийными устройствами, такие как дисковые и ленточные накопители, DVD-ROM, принтеры, сканеры и прочее. Они могут быть использованы для обмена аналоговых сигналов, цифровых данных, или их комбинаций.
Интегральная схема, такая как 74HC595 представляет собой 8 битный регистр хранения и 8 битный сдвиговый регистр. Данные последовательно передаются в сдвиговый регистр, затем фиксируются в регистре хранения. К регистру хранения подключены 8 выходных линий. Это позволяет увеличивать количество выходов микроконтроллера.Чип преобразовывает входящий последовательный сигнал на 1 пине (Ds) в выходной параллельный на 8 пинах (Qx). Последовательная передача синхронна: для такта используется дополнительный пин (SHcp). Также отдельным пином управляется регистр данных (STcp), что позволяет изменять сигнал на 8 выходах единовременно, когда все данные переданы.
Таким образом образом из трёх пинов микроконтроллера, такого как Arduino, можно получить 8 цифровых выходов. Из регистров 74HC595 можно делать каскады, подключая один за другим (через пин Q7’), и таким образом из всё тех же 3 входящих линий получать 16, 24, 32 и т.д. цифровых выходов. Схема, которую будем собирать, может рассматриваться как универсальный параллельный сдвигальщик состоящий из группы регистров (в общей сложности 32 выходных порта), которым мы можем легко управлять нашим Arduino, используя только три контакта ввода / вывода. Четыре конденсатора между GND каждого устройства, дают больше стабильности системы, как это было предложено в паспорте микросхемы.
Переменный конденсатор необязательно подключать к аналоговому входу Arduino. Эта часть схемы не участвует напрямую в логике регистров сдвига. Представлен для дальнейших экспериментов с конструкцией.
Как управлять гирляндой четырьмя регистрами сдвига
Прежде всего, рассмотрим следующий трюк: в микроконтроллерах точки зрения, набор цепочке из регистров сдвига равен только один; Разница в том, что четыре байта должны быть отправлены, а не только один.
Отправить байт в регистр сдвига не очень сложно, есть стандартный код SHIFTOUT () из набора команд Arduino IDE. Таким образом, чтобы отправить восемь бит в регистр сдвига используем следующую программу:
Затем в функцию цикла, надо послать последовательно 8 битов используя вызов SHIFTOUT ()
Обратите внимание, что перед вызовом операции сдвига, защелки установлены на низком уровне, чтобы сообщить устройству, что ближайшие биты не должны быть обработаны немедленно. Затем, когда SHIFTOUT () возвращает защелки в высокий уровень, регистр сдвига сохраняет 8 бит.
Для упрощения понимания процесса Александр Бревиг (один из разработчиков Arduino библиотек) создал библиотеку ShiftRegister595 для оптимизации процесса, упомянутого выше. Вот один из примеров использования библиотеки.
При использовании библиотеки ShiftRegister595, в дальнейшем вы можете сами оптимизировать код, так как библиотека управляет только одним регистром сдвига. Потренируйтесь на ней, чтобы понять суть процесса.
Библиотека ShiftOutX
Чтобы управлять схемой, которую мы хотим запустить используем библиотеку ShiftOutX , разработанную Хуаном Эрнандесом. Из нее надо взять только ту часть которая использует только сдвиг регистров. Расписывать все не имеет смысла, так как подробная информация о библиотеке и хороший пример (входит в пакет библиотеки) находится на официальном сайте Arduino
Испытание узлов
Лучший способ проверить цепь, использовать очень простой метод для того, чтобы избежать каких-либо других возможных неисправностей. Как показано на следующем рисунке, мы используем один светодиод и один резистор (10 или 20 К), подключенных к земле для каждого выходного контакта, который мы хотим проверить. Этого достаточно, чтобы показать нам состояние каждого бита регистров сдвига. В нашем примере мы использовали только 16 светодиодов для простоты, связанных с первыми двумя 8-битовыми группами.
Прежде чем приступать к управлению такими устройствами, как двигатели или реле необходимо потестировать светодиоды которые визуально помогут контролировать каждый сигнал регистра. Библиотека может поддерживать до 8 цепочек выполненных на 74HC595.
Получится так