Глава 7. Сдвиговые регистры

Список деталей

Для повторения примеров главы вам понадобятся следующие детали:

• плата Arduino Uno;

• USB-кабель А - В (для Uno );

• 8 красных светодиодов;

• 3 желтых светодиода;

• 5 зеленых светодиодов;

• 8 резисторов номиналом 220 Ом;

• сдвиговый регистр SN74HC595N в DIP-корпусе;

• инфракрасный датчик расстояния GP2YOA41 SKOF с кабелем;

• перемычки;

• макетная плата.

Электронные ресурсы к главе

На странице http://www.exploringarduino.com/content/ch7 можно загрузить программный код, видеоуроки и другие материалы для данной главы. Кроме того, листинги примеров можно скачать со страницы www.wiley.com/go/exploringarduino в разделе Downloads.

Что вы узнаете в этой главе

Чем дальше вы продвигаетесь в создании новых устройств на основе Arduino, тем чаще возникает мысль: "Что будет, если закончатся контакты платы Arduino?" Например, в одном из популярных проектов плата Arduino управляет множеством мигающих светодиодов. Осветите свою комнату! Иллюминируйте свой компьютер!

Украсьте светодиодами свою собаку! Последнее, пожалуй, перебор.

Но проблема остается. Как быть, если вы захотите переключать 50 светодиодов (или управлять другими цифровыми выходами), а все контакты ввода-вывода уже

- 154 -

задействованы? Вот тут и пригодятся сдвиговые регистры, позволяющие расширить возможности платы Arduino и отказаться от покупки более дорогого микроконтроллера с дополнительными контактами ввода-вывода. В этой главе вы узнаете, как работать со сдвиговыми регистрами, рассмотрите программное обеспечение и оборудование, необходимые для того, чтобы расширить возможности цифровых выходов платы Arduino. Подробно описанные примеры познакомят вас со сдвиговыми регистрами и помогут разобраться в проектировании устройств с большим количеством цифровых выходов.

В этой главе, как и в большинстве предыдущих, в качестве платформы используем Arduino Uno. Для экспериментов подойдет и любая другая плата Arduino, но выбор всегда должен быть обоснованным и оптимально соответствовать конкретному проекту. Вы спросите, почему бы не взять Arduino с большим количеством контактов, например Mega 2560 или Due? Конечно, это совершенно разумный способ для реализации устройств, где требуется множество контактов. Тем не менее вы, как инженеры, всегда должны помнить при проектировании обо всех нюансах. Когда вычислительной мощности Arduino Uno вполне хватает, но недостаточно цифровых выходов, можно просто добавить несколько сдвиговых регистров. Это будет дешевле и компактнее, чем выбор более мощной платы. Однако программный код окажется сложнее, и возможно потребуется больше времени для его отладки.