Ардуино и светодиодная матрица

Обсуждаем цифровые устройства...
Ответить
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1487
Зарегистрирован: Вс май 13, 2012 00:01:54

Сообщение Ariadna-on-Line »

Привет уважаемым Котам.
Ардуины Уно по теперешним временам стОят копейки, купил аж 3 штуки. Думаю умудренные Коты в курсе темы намного раньше. Потому и поднимаю такие вопросы к сообществу.
Вопрос с LED матрицей 8х8, в комплекте с драйвером MAX7219. Чтобы не морочить голову с управлением драйвером, используется библиотека MaxMatrix, которая сама морочит голову не хило. Функции ShiftUp, ShiftDown выдают ошибки компиляции. ShiftLeft, ShiftRight - двигают туда, куда должны бы двигать ShiftUp, ShiftDown, судя по описанию комплекта матрицы.
Главный затык в другом - Если текущее изображение на матрице имеет активные точки в крайнем левом столбце, то при скроллинге вправо, они оставляют "следы". Можете в примере заставить "рожицу" двигаться вправо и будет видно.

Вопрос: Где бы надо исправить в библиотеке (на Си++) или в скетче, чтоб заработало правильно? С Си у меня ...напряженка - со скоростью ходьбы по минному полю.
С уважением.
Вложения
Arduino MAX7219.rar
(3.08 КБ) 219 скачиваний
Реклама
Сверлит текстолит когтями
Сообщения: 1196
Зарегистрирован: Пт авг 21, 2009 03:22:12

Сообщение bolek »

Ariadna-on-Line писал(а):...используется библиотека MaxMatrix, которая сама морочит голову не хило. Функции ShiftUp, ShiftDown выдают ошибки компиляции...
Такое впечатление, что эту библиотеку писал чайник.
Ругань при компиляции связана с тем, что в .h и .cpp файлах не совпадают размеры буфера:
- в MaxMatrix.h ....
byte buffer[80];

- в MaxMatrix ...

void MaxMatrix::shiftLeft(bool rotate, bool fill_zero)
...
for (i=0; i<100; i++)
buffer = buffer[i+1];

т.е. гарантированный выход за пределы буфера, на что и ругается компилятор.

В MaxMatrix.h исправь на:
byte buffer[101]
ругань прекратится.

Другой вариант - во всех циклах, работающих с буфером, уменьшить макс. значение i, но так править нужно больше.

Проверять работу этой хрени живьем и вникать, почему размер буфера выбран именно таким - лень...
Реклама
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1487
Зарегистрирован: Вс май 13, 2012 00:01:54

Сообщение Ariadna-on-Line »

С ShiftLeft/Right компилятор как раз таки не ругается. Он ругается на ShiftUp/Down. Но я понял вашу мысль.
Насчет библиотеки - ХЗ, Ардуинный сайт на неё указал. Но откуда конкретно качал, не вспомню, т.к. искал где без регистраций, подписок и тд.
Сверлит текстолит когтями
Сообщения: 1196
Зарегистрирован: Пт авг 21, 2009 03:22:12

Сообщение bolek »

У меня IDE версии 1.8.3 и ругань была именно по поводу выхода за границу буфера.
Как только увеличил размер буфера - вся ругань закончилась.

Библиотека довольно старая. Бывают случаи, когда проекты, скомпилированные со старыми библиотеками в старой же IDE не компилятся в новых версиях IDE. И надо либо разбираться что в них перестало соответствовать IDE, либо по-прежнему использовать старую версию IDE - часто это намного проще.
Реклама
Эиком - электронные компоненты и радиодетали
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1487
Зарегистрирован: Вс май 13, 2012 00:01:54

Сообщение Ariadna-on-Line »

ММдя. Зря я грешил на библиотеку MaxMatrix. Недоглядел. Функции ShiftUp/Down и ShiftLeft/Right различаются аргументами : ShiftUp/Down(bool), а ShiftLeft/Right(bool, bool) !!!. А я сую им по два аргумента и компилятор ругается. Функция ShiftRight при (false, true) двигает как надо, "без хвостов". А комбинации аргументов дают разные любопытные эффекты. Так что в самой библиотеке вроде все ОК.
Всем спасибо.
Реклама
Мучитель микросхем
Аватара пользователя
Сообщения: 413
Зарегистрирован: Чт янв 04, 2007 13:18:56
Откуда: Россия

Сообщение Кулибин »

Доброе время суток.
Не знаю смежите ли вы мне помочь. Но все, же рискну обратиться с просьбой и попросить помощи.
Имеется проект часов на матрицах MAX7219 и вайфай модуле ESP8266
http://samopal.pro/led-matrix1/
Проект не мой, я его всего лишь повторил. Всё работает. Но есть некоторые проблемы. Я в ардуино не силен, поэтому прошу помощи у вас. Надеюсь на понимание и может быть вы сможете мне помочь. Итак, суть проблемы и задачи.

Данные часы не имеют календаря, а он мне очень нужен. Причем чтобы день недели и месяц писался словами, а не просто выводился цифрами
Примерно так
Понедельник 21 декабря….
А не просто 21/12/2017.
И ещё необходима введение в схему фоторезистора для того чтобы матрицы могли притухать в темное время суток и не святиться очень ярко.
Либо реализовать подобное затухание матриц по времени, например в 23.00 например.
И ещё если можно уберите незначащий ноль в часах.
Например в место времени : 08:42. Лучше так: 8:42

Сразу отвечу на вопрос ,почему я не обратился к автору этих часов?
Обращался. Но ни где нет ответа.
Надеюсь на ваше понимание и помощь. С уважением Александр.
P/S. Если нужно могу прислать скейч с моими настройками.
«О сколько нам открытий чудных
Готовят просвещенья дух,
И опыт, сын ошибок трудных,
И гений, парадоксов друг,
И случай, бог изобретатель...»
Контактная информация:
Реклама
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1487
Зарегистрирован: Вс май 13, 2012 00:01:54

Сообщение Ariadna-on-Line »

Я тоже не гуру в Ардуинах. И матрица у меня только одна. Только собираюсь заказать на Али. Помошник я - никакой. Сожалею.
Тут основное, я так понимаю, - это сама программа календаря, с меню ввода времени, даты, поправками на високосный год и тд. Найти готовую и портировать на ардуину.

ПС. Несколько раз просмотрел ссылку на проект, скетча там не нашел. Больно много букав. Где ее ТС там запрятал?
Мучитель микросхем
Аватара пользователя
Сообщения: 413
Зарегистрирован: Чт янв 04, 2007 13:18:56
Откуда: Россия

Сообщение Кулибин »

[uquote="Ariadna-on-Line",url="/forum/viewtopic.php?p=3259228#p3259228"]ПС. Несколько раз просмотрел ссылку на проект, скетча там не нашел. Больно много букав. Где ее ТС там запрятал?[/uquote]
Да, немного поискать, там придётся. Сам не сразу нашел. Хотя там всё лежит перед глазами. Главное внимательно читать.
Полный скетч который запрашивает время и погоду и выводит на экран выложил на GITHUB
https://github.com/samopal-pro/ESP_MATRIX_WEATHER
«О сколько нам открытий чудных
Готовят просвещенья дух,
И опыт, сын ошибок трудных,
И гений, парадоксов друг,
И случай, бог изобретатель...»
Контактная информация:
Ответить

Вернуться в «Цифровая техника»