@ssssergey

Как подключить четыре 7-сегментных дисплея к Ардуино?

Хочу при помощи Ардуины отображать температуру с четырех датчиков на четырех соответствующих дисплеях. Решил использовать 7-сегментные дисплеи (3 цифровые). Подключение напрямую занимает много пинов. Встречал подключение по SPI.
Подскажите (дайте ссылку) как подключаются два и более 7-сегментных индикатора. Спасибо.
  • Вопрос задан
  • 4024 просмотра
Пригласить эксперта
Ответы на вопрос 4
@vilgeforce
Раздолбай и программист
www.customelectronics.ru/arduino-dinamicheskaya-in... - динамическая индикация не подойдет?
Ответ написан
Комментировать
@Eddy_Em
Вот прямо-таки обязательно к ардуйне надо?
Можно, кстати, обойтись более мелкобюджетным вариантом: использовать китайские недорогие "вольтметры" на STM8. Я уже много чего навелосипедил. А уж как из "вольтметра" сделать термометр — вагон вариантов в интернете (сам, кстати, тоже собираюсь навелосипедить и работу с 1-wire термометрами, а то имеющееся в сети мне не нравится).
Если же так прямо хочется ардуйню, то из этих "вольтметров" можно спокойно сделать индикаторы на I2C, UART или SPI (в интернетах можно найти готовое, либо сделать самому).

На ибее эти трехзначные "вольтметры" стоят полтора бакса, а четырехзначные — 2.7.
Ответ написан
Комментировать
antonsosnitzkij
@antonsosnitzkij
студент, житель санкт-петербурга
Можно сделать следующим образом:
1) подключить на 7 пинов одинаковые сегменты индикаторов на одну линию
2) на каждый отдельный пин кинуть землю
3) с достаточно высокой частотой (например 20кГц) подавать на шины меняющиеся значения
4) с такой же частотой включать через пины земли соответствующие индикаторы

Пример: надо изобразить число 183 на 3х семисегментных индикаторах. В таком случае:
1) подключаем пины a b c d e f g
2) подключаем земли (назовем их v, y, z)
3) делаем счетчик (либо задержки - как удобнее на ардуино) и пошел процесс:
первая задержка - включен только v индикатор, подается значение единицы (0110000)
вторая задержка - включен только y индикатор, подается значение восьмерки (1111111)
третья задержка - включен только z индикатор, подается значение тройки (1111001)

и это дело зациклено. при высокой частоте мерцание будет незаметно
преимущества:
-использование меньшего количества пинов
-энергосбережение

надеюсь это Вам помогло, с кодом, к сожалению, не могу подсказать
Ответ написан
Комментировать
@AlexanderKomarchouk
программист PHP, embedded atmega/stm32
Можно пробовать разные виды динамической индикации, начиная от задействования 8 портов на сегменты, и 4 порта на разряды, делать на сдвиговых регистрах, решая попутно проблемы неравномерности яркости сегментов и другие.
Я делал по разному, в разных случаях.
Но как оказалось, лучше всего взять MAX7219, причем на aliexpress они продаются недорого.
Вот цитата из даташит:
"The MAX7219/MAX7221 are compact, serial input/output
common-cathode display drivers that interface
microprocessors (μPs) to 7-segment numeric LED displays
of up to 8 digits, bar-graph displays, or 64 individual
LEDs. Included on-chip are a BCD code-B
decoder, multiplex scan circuitry, segment and digit
drivers, and an 8x8 static RAM that stores each digit.
Only one external resistor is required to set the segment
current for all LEDs."
Очень рекомендую.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы