8×8 LED Matrix MAX7219 - неправильное исполнение элементарного кода
- Войдите на сайт для отправки комментариев
Сб, 10/03/2018 - 13:24
/* Создаём объект класса LedControl * Используем пины 12, 11, 10 на плате Arduino в качестве SPI интерфейса * для драйвера MAX7219 * * Подключаем устройства согласно таблице: * Arduino[Pin 12] <-> Display Module MAX7219 [DIN] * Arduino[Pin 11] <-> Display Module MAX7219 [CLK] * Arduino[Pin 10] <-> Display Module MAX7219 [LOAD/CS] * * Прототип создания объекта класса LedControl: * LedControl(int dataPin, int clkPin, int csPin, int numDevices); * где: * int dataPin - пин 12 на плате Arduino * int clkPin - пин 11 на плате Arduino * int csPin - пин 10 на плате Arduino * int numDevices - количество устройств на шине SPI */ /* Для начала подключим библиотеку */ #include "LedControl.h" /* Создаём объект класса LedControl для 5-ти устройств */ LedControl LC = LedControl(12, 11, 10, 1); void setup() { /* * Выводим устройство с адресом равным 0 из * энергосберегающего режима */ LC.shutdown(0, false); /* Устанавливаем интесивность свечения * для устройства с адресом равным 0 * на средний уровень */ LC.setIntensity(0, 8); /* и очищаем дисплей с адресом равным 0*/ LC.clearDisplay(0); } void loop() { LC.setLed(0, 2, 7, true); delay(500); LC.setLed(0, 2, 7, false); delay(500); }
В реальности же мигает так: https://youtu.be/xGkyrgpvukk
Почему-то некоторые интервалы когда светодиод горит длятся не пол секунды, а примерно секунду. Отчего так?
Может сигнальный проводок отходит?
Может сигнальный проводок отходит?
нет, переделовал не раз - каждый раз проблема повторяется
Странно, конечно. Библиотекой этой не пользовался, поэтому больше вариантов нет. Разве что взять "мигалку" в какой-нить while(true) {...} внутри лупа. Может ему serialEvent() мешает... Хотя тоже странно, что двойной интервал пропускается, а не случайный.
при таком коде горит так: https://youtu.be/vWxTEBwQul4 и далее не меняется
без дилея загораются 2 сразу
А чему вы удивляетесь, если каждые ~500мс даете ему команду на включение?
А чему вы удивляетесь, если каждые ~500мс даете ему команду на включение?
я удивляюсь тому что я даю команду одному диоду а горят два.
или тому что неравномерно мигает.
в обоих видео видно что происходит не то чно в коде написано
если включение убрать из лупа в сетап - горит только 1 диод (тот что нужно), то есть всё правильно исполняется
вобщем, без лупа и мигает вроде нормально, так что тема перестаёт быть аппаратной, наверное?. Мне создать новую в программировании, или здесь продолжить обсуждение?
Что у Вас за ардуино? Что за матрица? Какова схема подключения?
Что у Вас за ардуино? Что за матрица? Какова схема подключения?
uno китайская
схема - самая простая - модульс матрицей и 7219 в бредборде проводами в ардуно. Питание модуля от ардуино 5вольт. Питание ардуино - от usb
матрица - написано на ней 1088AS
Ну, если самая простая то и разбирайтесь с нею сами.
Хотите говорить по делу - давайте схему и ссыклу на матрицу (или модуль матрицы, я не знаю, чо у Вас).
Может сигнальный проводок отходит?
нет, переделовал не раз - каждый раз проблема повторяется
Я всё-таки поддержу предположение о плохом контакте. Проводки, как у Вас на видео я забросил сразу же. Контакт в бреадборде был крайне ненадёжный. Тонкие они сильно что ли? Использую только провода с концевиками BL-M BL-F. Совсем другое дело.
Может сигнальный проводок отходит?
нет, переделовал не раз - каждый раз проблема повторяется
Я всё-таки поддержу предположение о плохом контакте. Проводки, как у Вас на видео я забросил сразу же. Контакт в бреадборде был крайне ненадёжный. Тонкие они сильно что ли? Использую только провода с концевиками BL-M BL-F. Совсем другое дело.
не думаю. Если использовать в сетапе вместо лупа - всё нормально
не думаю. Если использовать в сетапе вместо лупа - всё нормально
Дело Ваше, но Вы отвергаете очевидные причины и ищете какие-то невероятные. В Вашем коде неправильно работать нечему. Я бы проверял качество пайки/отмывки модуля и качество проводных соединений.
причина оказалась в питании. Заработало только после подключения 12 вольт к vin-порту.
причина оказалась в питании. Заработало только после подключения 12 вольт к vin-порту.
А что туда раньше было подключено? К vin?
Я просил Вас дать схему ещё три дня назад. Вы сказали, что она простая потому Вы будете делать из неё секрет. Убедились теперь, что она и была виновата? Хотите помощи - давайте, что просят - давайте. лень рисовать - разбирайтесь сами. Что Вы собственно и сделали. Только зачем было сюда постить?
решение сюда запостил чтоб может пригодилось кому. А сначала не запостил потому как ещё зелен, не знаю как принято. Буду исправляться.
А что туда раньше было подключено? К vin?
ничего.