Наложение символов на светодиодный дисплей P10 с помощью библиотеки DMD

Привет! Я использую светодиодный дисплей P10 и пытаюсь сделать цифровые часы. Всё работает нормально, но через две или более недели без выключения начинают накладываться символы. Почему это происходит, я не понимаю. Я использую классическую библиотеку DMD, но вот результат:

Одно и то же число едва заметно над цифрой, но немного выше и ниже. Я использую ESP32 S3, также подающий питание напрямую от USB 5 В к VCC панели. Мой адаптер рассчитан на 25 Вт для быстрой зарядки телефонов Samsung. Я даже запускаю команду clearScreen каждые 30 минут, но это не работает.
dmd.clearScreen( true ); // true — нормально (все пиксели выключены), false — негатив (все пиксели включены)
Почему это происходит и как решить? Спасибо.
@mehmet, 👍0
Обсуждение1 ответ
Похоже, что буфер памяти повреждён, что приводит к появлению неожиданных артефактов на дисплее. Поскольку такие дисплеи обычно полностью обновляются после каждого кадра, повреждённая память, скорее всего, находится в процессоре.
Рассмотрите возможность добавления:
dmd.clearScreen(true);
... в цикле обновления, прежде чем полностью описать, что должно отображаться. Эта строка кода была найдена на строке 84 этого примера кода DMD в репозитории DMD GITLAB .
Добавлено позже...
Другие возможные причины, которые следует учитывать:
- Некоторые платы Arduino оснащены линейными стабилизаторами напряжения, которым требуется более высокое напряжение, чем требуется для работы процессора. Если вы используете такую плату Arduino, обязательно учитывайте это непредвиденное потребление напряжения.
- Дисплеи типа HUB 75 требуют постоянного обновления и согласованной синхронизации. Хотя это может сделать проект бессмысленным, рекомендуется удалить любой условно выполняемый код, который может нарушить синхронизацию управляющих сигналов типа HUB 75. Проверьте полученный код на наличие непредвиденного поведения дисплея в течение аналогичного времени и при аналогичных условиях питания.
- Если вы подключаете дисплей типа HUB 75 отдельно, убедитесь, что Arduino и дисплей типа HUB 75 соединены надежным общим заземляющим проводом.
- Все провода и кабели должны быть максимально короткими. Во многих случаях длина кабеля дисплея, например, HUB 75, составляет менее 30 см.
Завтра попробую, но не думаю, что это решит проблему. Не думаю, что буфер может сломаться спустя несколько недель. Потому что нежелательные светодиоды видны очень слабо. Если буфер сломан, наложенные символы должны быть яркими, как обычные., @mehmet
Подумайте о том, чтобы ответить на комментарии под вашим вопросом. Также учтите, что некоторые блоки питания могут быть сложными. Блок питания USB C может работать при разных напряжениях и может не достичь заявленной мощности при использовании с устройством, которое не взаимодействует с блоком питания. Кроме того, некоторые блоки питания отличаются низкой стоимостью . Рассмотрите возможность тестирования с другим источником питания., @st2000
ну, я проверил, и результат почти тот же. Эффект мерцания все еще есть @st2000, @mehmet
Извините за вопрос, какой тест вы могли провести? 1) Очищали буфер при каждом обновлении дисплея? 2) Меняли блок питания на более мощный?, @st2000
Стоит добавить, что некоторые платы Arduino оснащены линейными стабилизаторами питания, которым требуется более высокое напряжение, чем требуется для работы процессора. Кроме того, дисплеи типа HUB 75 требуют постоянного обновления и согласованной синхронизации. Возможно, проблемы с синхронизацией возникают из-за условно выполняемого кода. Добавлю эти моменты в свой ответ., @st2000
- Цифровой потенциометр SPI не работает на ESP32
- Как использовать внешний кристалл 32 кГц для ESP32 S3 с Arduino IDE?
- Встроенные светодиоды HIGH и LOW кажутся перевернутыми
- ESP32: spi_master: check_trans_valid(801) при использовании SPI
- Импульсы SCLK не видны при использовании SPI на ESP32
- Не удалось установить SD-карту с Waveshare ESP32 с использованием Arduino IDE
- Библиотека esp32 spi, как читать регистр mcp23s08
- Можно ли свободно использовать UART0 при подключении ESP32 s3 через USB (D+, D-)?
Я бы рассмотрел возможность использования другой библиотеки. В [репозитории DMD GIT](https://github.com/freetronics/DMD) есть вопросы без ответов, которым уже больше года. [Этот вопрос](https://github.com/freetronics/DMD/issues/22) похож на ваш., @st2000
измените свой код так, чтобы второй строки не было... это немного лучше покажет степень повреждения, @jsotola
пожалуйста, добавьте ссылку на спецификацию дисплея к вашему вопросу ... также добавьте код, который вы используете, @jsotola