Arduino LED Display (6 / 12 steg)
Steg 6: Programvara - inställning saker
Vårt intresse huvudklass kommer displayen - det är ansvariga för inställning av MAX chips och ger API för målning.
Innan vi börjar måla är det nödvändigt att inrätta sak. Koden nedan skapar 2D array som innehåller Välj slav linjer och initierar display. Visa sig bestå av 3 rader, var och en har 8 LED-moduler. Självklart kan du välja någon ansvarig storlek, men jag skall hålla mig till denna.
Layouten för nämnda 2D array motsvarar fysiska display: varje LED-modul har ägnat MAX chip, och varje chip har dedikerade Välj slav linje. Första dimensionen av våra matris anger fysisk rad på displayen, andra dimensionen anger LED-modul inom denna rad och själva värdet innehåller PIN-kod för Välj slav linje.
#include "Display.h"
Display * disp;
/**
* Orientering av LED Kit (8 x 8 ledde matrisen) på displayen som jag har använt för att testa.
* Siffrorna indikerar Välj slav fodra av MAX7219.
* 48, 46, 49, 47, 45, 43, 41, 39
* 36 34, 32, 30, 28, 26, 24, 22
* 37 35, 33, 31, 29, 27, 25, 23
*/
ss_t ** ss;
ss_t ** createSS() {
ss_t ** ss = alloc2DArray8 (3, 8);
första raden
SS [0] [0] = 48.
SS [0] [1] = 46.
SS [0] [2] = 49.
SS [0] [3] = 47;
SS [0] [4] = 45;
SS [0] [5] = 43;
SS [0] [6] = 41;
SS [0] [7] = 39.
andra raden
SS [1] [0] = 36.
SS [1] [1] = 34.
SS [1] [2] = 32.
SS [1] [3] = 30.
SS [1] [4] = 28;
SS [1] [5] = 26.
SS [1] [6] = 24.
SS [1] [7] = 22.
tredje raden
SS [2] [0] = 37.
SS [2] [1] = 35.
SS [2] [2] = 33.
SS [2] [3] = 31;
SS [2] [4] = 29.
SS [2] [5] = 27.
SS [2] [6] = 25;
SS [2] [7] = 23.
returnera ss;
}
void setup() {
util_setup();
log_setup();
SS = createSS();
Test display består av 8 x 3 LED-moduler (3 rader, varje en 8 moduler)
Disp = ny uppvisning (8, 3, ss);
Disp -> setup();
}
Det finns en ytterligare metod värt att nämna: log_setup(). Hela
projektet har lugnt exakt logger - så att du kan se vad som faktiskt händer. Som standard inaktiveras, så att den kolla in dess dokumentation: https://github.com/maciejmiklas/ArdLog