DMX LED Strips (4 / 14 steg)
Steg 4: programmering
Besök github.com/mtongnz för den senaste koden.
Jag använde 2 biblioteken nämns i steg 1. ShiftPWM behövs för att modifierats något för att ta bort det är seriell kommandon - de blandat sig med DMX överföring.
Jag har inkluderat nedladdningar för båda biblioteken men rekommenderar författarnas webbplatser. Hämta biblioteken och importera dem till Arduino IDE. För att göra detta, packa upp dem i mappen Bibliotek och starta om IDE. Google det om du har frågor.
Min kod är mycket enkel att följa som biblioteken hantera alla tunga lyft.
Först ställa vissa variabler. De är mycket självförklarande och ange alternativ för ShiftPWM, antalet utgångar vi kör och DMX adress.
Eftersom jag ville 4 kontinuerlig enheter, hade jag helt enkelt den första DMX starta adress och sedan ett nummer. Jag fann detta enklare än att manuellt ange en adress för varje enhet.
I rutinen setup vi starta DMX mottagaren, starta ShiftPWM och ställa utgångarna, ange vår status LED till att Visa vi har makt, avmarkera strobe disk och starta en timer avbryta för använda med vår status-LED och strobe.
Vi ökar vår timer avbrott rutin helt enkelt våra timer och strobeCount variabler. Vi vill inte göra för mycket här eller kommer det att orsaka andra delar av vår kod ska fungera oförutsägbart.
I våra viktigaste loop, vi först ställa in vår status LED. Det blinkar vid mottagning av DMX och förblir stabilt upplysta 1 sekund efter att ha förlorat DMX.
Nästa satt vi utgångarna de nödvändiga värdena. Om vi inte har fått DMX i 10 sekunder och sedan alla utgångar är avstängda. Om vår strobe kanal är mellan 20 och 220 (255 max DMX värde) då vi tillämpar de RGB-värdena i skurar utgångarna - 20 är långsam strobe, är 220 snabb strobe. Om vår strobe kanal ligger utanför dessa intervall då tillämpa vi helt enkelt de RGB-värdena utgångarna.
Jag planerar att lägga till en random strobe men har inte haft tid ännu.