RGB Displej shield
Jedná se o přizpůsobovací shield - poskytuje rozhraní k připojení RGB maticového displeje. K displeji je vždy dále nutné připojit externí napájení (dle konkrétního typu displeje). Základním principem fungování těchto registrů jsou posuvné registry s konstantním proudem. Podporováno je až 32 řádků (4 bitová adresová sběrnice), počet sloupců explicitně není omezen a je závislý na výkonu procesoru. Kompatibilní displeje jsou například https://www.adafruit.com/product/2279 nebo https://www.ebay.com/itm/1x-RGB-P5-HD-led-screen-display-module-64x32-led-display-module-dot-matrix-5mm/252445600901?hash=item3ac6ee2c85:g:QeYAAOSwTEJZ9r8v .

Hardware
Zapojení X konektoru
X01
X03
X05
X07
X09
X11
X13
X15
USR
VBUS
G1
R2
B2
PIN_B
PIN_D
LAT
X00
X02
X04
X06
X08
X10
X12
X14
3V3
GND
R1
B1
G2
PIN_A
PIN_C
CLK
OE
3.3 V
GND
R1, G1, B1 - ovládání červené, zelené a modré v horní polovině displeje
R2, G2, B2 - ovládání červené, zelené a modré v dolní polovině displeje
PIN_* - volba řádku (16 možností; vybírají se vždy dva najednou v horní a dolní polovině => max. 32 řádků)
CLK - hodinový signál pro vnitřní posuvné registry
LAT - propsání hodnot na výstup posuvných registrů
OE - aktivace výstupu
Konfigurace a zapojení
Displej je kompatibilní s originálním zapojením a není nutná žádná dodatečná konfigurace.
Schéma

Software
#include "byzance.h"
#include "RGB_matrix.h"
#define PIN_R1 X00
#define PIN_G1 X01
#define PIN_B1 X02
#define PIN_R2 X03
#define PIN_G2 X04
#define PIN_B2 X05
#define PIN_A X06
#define PIN_B X07
#define PIN_C X08
#define PIN_D X09
#define PIN_CLK X10
#define PIN_LAT X11
#define PIN_OE X12
void bin_busy(bool busy);
void init(){
//Inicializece statické třídy displeje
RGB_matrix::Init(PIN_R1,PIN_R2,PIN_G1 ,PIN_G2,PIN_B1,PIN_B2,PIN_CLK,PIN_LAT,PIN_OE,PIN_A,PIN_B,PIN_C,PIN_D);
/* Is very handy to attach this callback to RGB_Matrix ticker, when you need to
update program from cloud. Inner ticker of the RGB_Matrix class could block the update process at the background
*/
Byzance::attach_bin_busy(&bin_busy);
// Změní barvu kurzoru
RGB_matrix::set_color(RGB_MATRIX_COLOR::RED);
RGB_matrix::set_background(RGB_MATRIX_COLOR::NONE);
}
void loop(){
// Change cursor color
RGB_matrix::set_color(RGB_MATRIX_COLOR::YELLOW);
char *str = "Hello world";
// Write "Hello world" on the first line
RGB_matrix::put_line(str, 1);
// Change cursor color
RGB_matrix::set_color(RGB_MATRIX_COLOR::BLUE);
// Put char on the coordinates (50,20)
RGB_matrix::put_char(50,20,'!');
Thread::wait(300);
}
Last updated