|   Войти

Подключение 7-сегментного дисплея к Arduino

Семисегментные светодиодные дисплеи уже много лет используются в различных электронных приборах для отображения цифровой информации.

Каждый сегмент дисплея, а также точка, представляют собой отдельный светодиод. У светодиодов либо все катоды, либо все аноды соединены внутри корпуса вместе. Это облегчает подключение такого дисплея к контроллеру. В связи с этим, дисплеи бывают либо с общим катодом, либо с общим анодом. Остальные выводы светодиодов соединены со своей ножкой на корпусе дисплея. Каждый сегмент обозначается своей латинской буквой от a до g. В инструкции к конкретному 7-сегментному дисплею указывается, к какой ножке подключен тот или иной сегмент:

Для удобства на рисунке представлен вариант подключения анодов сегментов к ножкам дисплея SC56-11GWA. Выводы 3 и 8 - это общий катод всех светодиодов:

Чтобы подключить такой дисплей к Arduino, необходимо на каждый светодиод сегментов подключить резистор для ограничения тока. Для упрощения дальнейшей работы, подключим сегменты дисплея a, b, c, d, e, f, g соответственно к ножкам контроллера 4, 5, 6, 7, 8, 9, и 10. Точку пока использовать не будем Схема получится примерно такая:

Для того чтобы дисплей показал какую-либо цифру, нужно на ножки контроллера, подключенные к сегментам, которые должны светиться, подать высокий уровень, а на остальные низкий. Например, чтобы вывести цифру «3», необходимо зажечь сегменты a, b, c, d и g, поэтому на выводы контроллера 4, 5, 6, 7 и 10 подаем высокий уровень, а на выводы 8 и 9 - низкий. Программа будет следующей:

Напишем функцию, которая будет выводить необходимую нам цифру от 0 до 9 и продемонстрируем ее работу, последовательно выводя с ее помощью на дисплей все цифры. Назовем эту функцию show:

Рузультатом работы программы является то, что цифры на дисплее сменяются каждую секунду и пробегают значения от 0 до 9.

Как вы заметили, программа, особенно функция show, оказалась очень громоздкой. Как уменьшить количество кода и оптимизировать программу, будет показано в следующей части данной статьи.