Blinkande stjärnor i korridoren (2 / 4 steg)
Steg 2: Koden
Jag använde 6 olika strukturer för att styra lysdioder. Medan jag har 8 stick i taket beslutat jag att hålla sig med inbyggd PWM för ATMega328. Jag ansåg att med hjälp av SoftPWM biblioteket men bestämde mig för att lämna det för senare projekt.
Jag använder en seriekanal för några grundläggande kommandon och att Visa utgångar. Den färdiga versionen har några stift i styrelsen, men de är inte anslutna till något just nu.
SÅ en kod gå igenom
Det första avsnittet definierar konstanter & variabel, liksom de 6 structs att styra LED strängarna.
Avsnittet installation öppnar den seriell kanalen och initialises structs definiera LED strängarna
Huvudloop:
Kontrollerar seriekanal för inmatning;
Om driftsform är NORMAL
Anger varje LED kanaler till en ljusstyrka baserat på tid, cyklar var en ljusare och dimmer till olika priser, vilket skapar en effekt av någorlunda slumpmässigt "blinkande".
Om arbetsläget i vidare, alla fick ställs full på
Om driftsform är avstängd, är lysdioder avstängda.
De slutliga förfarandena hantera seriekanal, söker alla ingångar, ändra arbetsläget vid behov och visar status för vissa variabler.
Alla koden avser seriekanal kunde tas bort som det seriella gränssnittet används inte under användning, men jag lämnade det i ifall jag ville ändra saker i framtiden.