Здравствуйте, купил китайский светодиодный модуль ну могу заставить работать. Прозвонил все шины данных и землю, выяснил, что вместо шины данных "С" - земля. это код который использую для теста результат случайный светодиод загорается и тухнет случайным цветом хотя цвет указан. Начинает светится не сразу после запуска, а в случайный момент. Вот так происходит подключение. Код (C++): #include <Ticker.h> #include <PxMatrix.h> Ticker display_ticker; #define P_LAT 16 #define P_A 5 #define P_B 4 #define P_OE 2 PxMATRIX display(32,16,P_LAT, P_OE,P_A,P_B); uint16_t myRED = display.color565(255, 0, 0); uint16_t myGREEN = display.color565(0, 255, 0); uint16_t myBLUE = display.color565(0, 0, 255); uint16_t myWHITE = display.color565(255, 255, 255); uint16_t myYELLOW = display.color565(255, 255, 0); uint16_t myCYAN = display.color565(0, 255, 255); uint16_t myMAGENTA = display.color565(255, 0, 255); uint16_t myBLACK = display.color565(255, 255, 255); uint16_t myCOLORS[8]={myRED,myGREEN,myBLUE,myWHITE,myYELLOW,myCYAN,myMAGENTA,myBLACK}; void display_updater() { display.display(70); } void setup() { Serial.begin(115200); Serial.println(""); display.begin(2); display.clearDisplay(); display_ticker.attach(0.002, display_updater); display.setTextColor(myYELLOW); } void loop() { display.print("."); Serial.println("hello"); delay(2000); }
картинок подключения не видно. поэтому проверить правильность сборки трудно. Но даже если все собрано правильно - это еще не гарантирует вывод изображения. У подобных дисплеев масса параметров, влияющих на вывод картинки. В частности. диоды на матрице обходятся не подряд, по горизонтали или вертикали. а по очень замысловатой траектории, например: и эта конфигурация на матрицах разных изготовителей не совпадает. В описании к библиотеке PxMatrix описано много параметров настройки, почитайте. И для начала я бы советовал вам не выводить на экран символы и строки, как у вас в loop(), а засветить один единственный пиксель по координатам функцией Код (C++): drawPixel(int16_t x, int16_t y, uint16_t color);
Вы случайно не знаете, как можно изменять яркость? В описании библиотеки Adafruit_GFX не нашёл. Всё что нашёл это, но это для другой библиотеки,как я понял. Код (C++): for(int i=0; i<16; i++) { matrix.fillScreen( matrix.Color444( i, 0, 0)); delay(100); }
заданием более светлого или более темного оттенка того же цвета проще всего это делать. если перевести цвета пикселей в HSV модель в библиотеке Адафруит есть для этого функции