Подключение нескольких 8-разрядных модулей на мах7219
- Войдите на сайт для отправки комментариев
С одним модулем я разобрался, но, друзья, помогите выбрать более выгодный вариант подключения к Ардуино нескольких 8-разрядных модулей на мах7219. Их нужно подключить 8 штук. На пояснительном рисунке привел только два, полагаю, что остальные можно подключать аналогично.
Из ДШ выудил, что можно это делать в виде последовательной цепочки (вариант №1). Однако, не смог понять, как их соединять (подключение первого к Ардуино - понятно как). Помогите развести соединения между модулями. Кроме того, никак не пойму, каким образом тут надо задействовать библиотеку LedControl.h. B каким образом использовать в такой цепочке операторы SetDigit n SetRow. В частности:
В объявлениях
#include "LedControl.h" //Подключаем библиотеку LedControl.h LedControl lc = LedControl(13, 11, 12, 1); //создаём объект класса LedControl с указаниями управляющих пинов Ардуино
И в void setup
lc.shutdown(0, false); //Устройство(7-ми сегментный дисплей) выводим из спящего режима lc.setIntensity(0,5); //Яркость дисплея на 5. Всего возможных режимов яркости от 0 до 15 lc.clearDisplay(0); //Очистить дисплей
В принципе Ардуино Мега 2560 позволяет подключать эти 8 модулей параллельно (вариант №2), но тут тоже мне нужна помощь в тех же фрагментах скетча.
для управления цепочкой MAX7219 с помощью библиотеки ЛедКонтрол используется три любые цифровые пина ардуино. Два пина заводятся паралельно на пины CLK и Load(CS) всех модулей. Третий контакт подключается к модулям последовательно - от ардуины на контакт Din первого модуля, далее с контакта Dout первого модуля на Din второго и так далее..
Подробно читайте в описании библиотеки:
http://wayoda.github.io/LedControl/index.html
Два пина заводятся паралельно на пины CLK и Load(CS) всех модулей. Третий контакт подключается к модулям последовательно - от ардуины на контакт Din первого модуля, далее с контакта Dout первого модуля на Din второго и так далее..
Спасибо, с соединением последовательно понял. Библиотеку буду мучиться и разбирать (эй, с аглицким хреновато!).
(эй, с аглицким хреновато!).
Смело предположу, что гуглопереводчик осилит и не такое ;)
Еще раз, спасибо за ссылку на библиотеку. Там все достаточно понятно разжевано. Но в ее описании сразу сказано, что чем больше модулей, тем "задумчивее" будет система. К сожалению, на руках пока 8 модулей нет, поэтому провести эксперимент не могу. Насколько я понимаю, делать комбинированное включение (несколько параллельных цепочек из последовательно соединенных модулей) - уже не дает никакого технологического выигрыша. Тут "или трусы оденьте или снимите галстук". То есть, или ждать прибытия всех модулей, собирать цепочку и смотреть, что получится в смысле "задумчивости" (при этом, пока не будет закончено написание кода, полной картины не получишь) или сразу делать на Меге 2560 восемь параллельных каналов (пинов у нее хватит) и не париться. Проводов все равно получится сопоставимое количество. Кто меня поправит, если я не прав?
Смело предположу, что гуглопереводчик осилит и не такое ;)
Ну уж не до такой степени хреновато :) Философский диспут вести не взялся бы, но на бытовом уровне почти свободно. Это я кокетничаю.
Что-то мне кажется, что эта "задумчивость" будет незаметна вовсе, если вы не электрон или фотон какой-нить. В крайнем случае - можно перейти на чистый SPI с его эмуляции библиотекой.
Что-то мне кажется, что эта "задумчивость" будет незаметна вовсе, если вы не электрон или фотон какой-нить. В крайнем случае - можно перейти на чистый SPI с его эмуляции библиотекой.
Истинно, 8 шт. 8х8 матриц с динамическим отображением (бегучая строка), впечатления задумчивости не создают.
Что-то мне кажется, что эта "задумчивость" будет незаметна вовсе, если вы не электрон или фотон какой-нить. В крайнем случае - можно перейти на чистый SPI с его эмуляции библиотекой.
Я где-то накопытил уже допиленную библиотеку.
"Modified by Jack Zimmermann for supporting hardware SPI using the predefined MOSI and SCK pins on supported devices.
This is a modified version using hardware SPI calls instead of bit banging. Speed increase is 20x or greater. "
Там хвост вот так выглядит:
Истинно, 8 шт. 8х8 матриц с динамическим отображением (бегучая строка), впечатления задумчивости не создают.
Два пина заводятся паралельно на пины CLK и Load(CS) всех модулей. Третий контакт подключается к модулям последовательно - от ардуины на контакт Din первого модуля, далее с контакта Dout первого модуля на Din второго и так далее..
Спасибо, с соединением последовательно понял. Библиотеку буду мучиться и разбирать (эй, с аглицким хреновато!).
Если нет особых требований к быстродействию - разводи сигналы последовательно, мороки меньше. При разводке питания учти китайский прикол в виде диода, который следует зашунтировать или обойти. Очень желательно добавить конденсаторов на модули (см. Supply Bypassing and Wiring в мануале).
Если нет особых требований к быстродействию - разводи сигналы последовательно, мороки меньше. При разводке питания учти китайский прикол в виде диода, который следует зашунтировать или обойти. Очень желательно добавить конденсаторов на модули (см. Supply Bypassing and Wiring в мануале).
Мерси, тоже прикидываю про "меньше мороки" при последовательной компановке.
Касательно быстродействия - я пока не совсем понял вот какие две вещи: 1). На этих модулях индикация динамическая или нет? 2). Если прописать какую-либо цифру (букву) посредством SetDigit или SetRow один раз, но потом ничего не менять этими операторами, то так оно на индикаторе гореть и останется?
Это я к тому, что измерения и индикация нужных мне параметров (но их восемь!) будет проводиться циклично 1 раз в секунду примерно (даласские термодатчики, у них процесс "запуск-ответ" около 800 мсек). Вот где вопрос про "задумчивость": будет она меня мучить или нет?
Касательно диода - я в курсе, но мои два модуля, что на руках есть, от компьютерного блока питания не дурят. Про кондеры на питании модулей я тоже в курсе. Надо будет - подпаяю.
Постоянно ардуиной обновлять индикаторы для изменения яркости или типа того - не надо, если вы это имеете в виду.
Записали и отображается до следующей записи или снятия питания.
Спасибо, понял.