LEDDE matrisen med Game Controller - en första Project (6 / 7 steg)
Steg 6: kodning
Om du är ny till programmering, fokus på att göra din kod så intuitiv som möjligt. Effektivitet kommer andra. Här är ett enkelt sätt att komma igång genom att visa en statisk bild. Prova detta på prototypen:
-Denna kodning förutsätter att alla katod linjer är anslutna i sekvens och anoder är fast i en annan ordning. De globala variablerna är följande:
int loop_delay = 1; Tiden (i ms) kommer varje LED i en loop att hållas att uppnå POV.
int cathode_start; Den första katod stiftet. Den börja pin av katoden sekvensen.
int anode_start; Den första anod stiftet. Från pin av anoden sekvensen.
-Förklara och initiera med globalt definitionsområde (dvs, utanför void_loop() och void_setup()) en 4 x 4-matris att Visa "J" som denna. Vi kommer att skriva innehållet i denna matris till vår prototyp. Varje 1 är en på och 0 är avstängd.
int disp [4] [4] = {
{1,1,1,1},
{0,0,1,0},
{1,0,1,0}.
{0,1,0,0}}.
-Initiera lysdioderna till alla i void_setup(), dvs, alla anoder alla katoder hög och låg.
void setup() {
för (int jag = 0; jag < 4; i ++)
{
digitalWrite (i + cathode_start, hög);
digitalWrite (jag + anode_start, låg);
}
}
-Skriva en funktion som loopar igenom motsvarande lysdioder.
void lightup() {
för (int jag = 0; jag < 4; i ++)
för (int j = 0; j < 4; j ++)
om (disp [i] [j] == 1)
{
digitalWrite (i + anode_start, hög); Slå på LED (i, j)
digitalWrite (j + cathode_start, låg);
fördröjning (loop_delay); Hålla på för denna längd att uppnå uppdateringsfrekvens
digitalWrite (jag + anode_start, låg);
digitalWrite (j + cathode_start, hög); Stänga av lampor (i, j)
}
}
-Ring funktionen ovan för att visa innehållet i våra 2 dimensionell array (DEP) i void_loop() att köras kontinuerligt.
void_loop()
{
lightup();
}
Din prototyp bör vara visar vår 4 x 4-matris nu.
Om du vill göra spel på displayen, kan ovan fungera som din "game engine". Tänk på din array som din spelskärmen och skriva funktioner för att uppdatera matrisen för att visa ditt spel i void_loop(). Anropa lightup() funktion i slutet kommer att skriva ut matrisens innehåll till skärmen.