| type | identifiant | usage |
|---|---|---|
| private | ||
| uint8_t | clk, r1, stb, oe, a, b, c, d | pins |
| uint8_t[] | *displaybuf | buffer |
| uint16_t | width, height | taille du panneau |
| uint8_t | mask | ? |
| uint8_t | state | on/off (0/1) |
| public |
| identifiant | paramètres | usage |
|---|---|---|
| LEDMatrix | a, b, c, d, oe, r1, stb, clk | constructeur |
| begin | *displaybuf, width, height | initialisation ? |
| drawPoint | x, y, pixel | permet d'allumer/éteindre un pixel à une position x,y. pixel = 0/1 (allumé/éteint) |
| drawRect | x1, y1, x2, y2, pixel) | dessine un rectangle. pixel : cf ci-dessus. |
| drawImage | xoffset, yoffset, width, height, *image | dessine une image. *image = ? |
| clear | “turn off 1/16 leds and turn on another 1/16 leds” ? | |
| scan | ? | |
| reverse | inverse les pixels allumés et éteints | |
| isReversed | retourne la valeur de mask | |
| on | turn on the led matrix ? | |
| off | turn off the led matrix ? |
Nécéssite les librairies appropriées
#include "LEDMatrix.h"
#define WIDTH 32
#define HEIGHT 16
LEDMatrix matrix(4, 5, 6, 7, 8, 9, 10, 11); // LEDMatrix(a, b, c, d, oe, r1, stb, clk);
uint8_t displaybuf[WIDTH *HEIGHT / 8]; // Display Buffer
int frequency= 1000;
void setup() {
matrix.begin(displaybuf, WIDTH, HEIGHT);
Serial.begin(9600);
}
void loop() {
static uint32_t lastCountTime = 0;
static uint8_t count = 0;
matrix.scan();
if ((millis() - lastCountTime) > frequency) {
lastCountTime = millis();
// votre code ici
}
}
On peut spécifier un buffer :
uint8_t displaybuf[WIDTH *HEIGHT / 8] = {
0x00, 0x00, 0x00, 0x00, // 0
0x00, 0x30, 0x0C, 0x00, // 1
0x00, 0x48, 0x12, 0x00, // 2
0x00, 0x44, 0x22, 0x00, // 3
0x00, 0x43, 0xC2, 0x00, // 4
0x00, 0x40, 0x02, 0x00, // 5
0x00, 0x80, 0x01, 0x00, // 6
0x00, 0x84, 0x09, 0x00, // 7
0x00, 0x8C, 0x59, 0x00, // 8
0x00, 0x80, 0x01, 0x00, // 9
0x00, 0x84, 0x91, 0x00, // 10
0x00, 0x47, 0xF2, 0x00, // 11
0x00, 0x20, 0x04, 0x00, // 12
0x00, 0x1F, 0xF8, 0x00, // 13
0x00, 0x00, 0x00, 0x00, // 14
0x00, 0x00, 0x00, 0x00, // 15
};