Можно ли подключить 4 4-разрядных 7-сегментных светодиодных дисплея к одной плате Arduino?
Можем ли мы подключить 4 4-разрядных 7-сегментных светодиодных дисплея к одной плате Arduino? Возможно ли это без другого компонента между ними?
@, 👍0
Обсуждение2 ответа
Вам понадобится 4*4+7 = 23 контакта в конфигурации с общим катодом или 4 +7*4 = 32 в конфигурации с общим анодом, а у Arduino Uno всего 20 выходных/входных контактов, поэтому, если вы не хотите использовать какие-либо внешние компоненты, вам понадобится Arduino Mega.
В любом случае, лучше всего использовать драйвер светодиодов матрицы max7219. Поищите его в Google.
Вы можете использовать Чарли-плекс. Это значительно сократит количество контактов, но потребует больше компонентов, чем просто дисплеи и Arduino., @David Hoelzer
На самом деле, это зависит от спецификации. Если предположить, что это 7 сегментов + точка, то для управления каждым сегментом потребуется 8 независимых выводов. Все сегменты подключены к общему аноду/катоду, который может быть подключен к подтягивающему/подтягивающему.
Если у нас 4 цифры, это значит, что нам нужно 4*8=32 контакта, что много для любого микроконтроллера. Однако, если вы разметите внутреннюю схему, вы обнаружите, что сегменты мультиплексированы. (Вы можете сделать это, коснувшись контактов проводом, подключенным к подтягивающему резистору, и другим проводом, подключенным к земле.
Обычно вы обнаружите, что все выводы сегмента мультиплексированы таким образом, что если все аноды/катоды включены, все цифры отображаются на одном и том же дисплее.
Так как же мы можем использовать эту информацию? Вот идея:
А как насчет того, чтобы включать каждую цифру по одной (управляя общим анодом/катодом), но делать это быстро?
Пример последовательности может быть следующим: Установите сегменты для цифры 1, включите соответствующий общий анод/катод на 5 мс. Выключите. Установите сегменты для цифры 2, включите соответствующий общий анод/катод на 5 мс. Выключите. Сделайте то же самое для цифры 3, а затем для цифры 4. Повторите.
Управление таким образом означает, что вам нужно всего лишь 8+4 пина=12, что доступно на arduino uno. Обновление при 4*5=20 мс вряд ли будет заметно нашему человеческому восприятию, благодаря инерционности зрения.
Мой ответ на самом деле всего лишь отправная точка. Если вы потратите немного времени, вы можете попробовать вставить другие смарты, которые подходят для вашего приложения, используя даже меньше пинов. Вы должны попробовать это в качестве упражнения. ;-)
Редактировать: В качестве меры предосторожности важно ограничить ток, проходящий через каждый из сегментов светодиода, чтобы они могли прожить долгую и счастливую жизнь.
Предполагая прямое напряжение 2 В, добавление резистора 1 кОм на общем аноде ограничивает ток до 3 мА. Это означает добавление резисторов для всех 4 анодов.
не будет превышено обратное напряжение пробоя .Как и со всем, что вы найдете в сети, не верьте мне на слово. Вам следует провести математические расчеты, чтобы проверить.
- Считывание 10-контактного 7-сегментного (2 цифры) сингла Arduino 1
- Библиотека MAX7219, которая может компенсировать плохо спроектированную/неправильно подключенную панель 8x32?
- 7 светодиодных индикаторов номера
- Регулируемая температура
- Питание светодиодной ленты - Сколько ампер?
- Как отображать переменные на 0,96-дюймовом OLED-дисплее с библиотекой u8glib?
- Несколько условий оператора if
- Светодиоды: разница между общим анодом и общим катодом
В Интернете можно найти очень много об этом... Предлагаю вам сначала проверить это. Попробуйте поискать расширители ввода-вывода, сдвиговые регистры и т. д. Вы также найдете много теории, объясненной в руководствах по светодиодным кубам. Как сказал @victor, вам понадобится много контактов, если вы не используете другой компонент. Поэтому вам лучше использовать внешние компоненты., @Paul