Stap 4: programmeren
Ik gebruikte de 2 bibliotheken vermeld in stap 1. ShiftPWM moest worden lichtjes gewijzigd Schakel het seriële commando's - ze bemoeid met de DMX-transmissie.
Ik downloads voor beide bibliotheken hebben opgenomen, maar raden het bezoeken van sites van de auteurs. Downloaden van de bibliotheken en importeer ze in de Arduino IDE. Om dit te doen, pak hen in de omslag van de bibliotheken en herstart de IDE. Google het als u problemen ondervindt.
Mijn code is erg eenvoudig te volgen omdat de bibliotheken overweg kan met al het zware werk.
Eerst Stel sommige variabelen. Ze zijn zeer duidelijk en stel de opties voor ShiftPWM, het aantal uitgangen die we lopen, en de DMX adres.
Als ik 4 continu eenheden wilde, had ik gewoon de eerste DMX start adres en vervolgens een unit number/logisch. Ik vond dit makkelijker dan het handmatig invoeren van een adres voor elke eenheid.
In de setup-routine we de DMX-ontvanger worden gestart, start ShiftPWM en reeks de uitgangen af, het instellen van onze status LED op Toon we macht hebben, schakelt u de flitser teller en start een timer onderbreken voor gebruik met onze status-LED en strobe.
In onze timer interrupt routine verhogen we gewoon onze timer en strobeCount variabelen. We willen niet te veel om hier te doen of andere delen van onze code onregelmatig functioneren zal veroorzaken.
In onze hoofdlus stellen we eerst onze status-LED. Het zal knipperen tijdens het ontvangen van DMX en blijft stevig verlichte 1 seconde na het verliezen van DMX.
Vervolgens stellen we de uitgangen aan de vereiste waarden. Als we niet DMX gedurende 10 seconden ontvangen zijn dan alle uitgangen uitgeschakeld. Als onze strobe-kanaal tussen 20 en 220 (255 max DMX waarde is) dan we de RGB-waarden in afzonderlijke pakketjes van toepassing op de uitgangen - 20 traag strobe is, is 220 snelle strobe. Als ons kanaal strobe buiten dit bereik vervolgens toepassen we gewoon de RGB-waarden op de uitgangen.
Ik ben van plan om een willekeurige stroboscoop toevoegen maar heb geen tijd nog gehad.