Stap 53: Software: onder leiding van de ringen en de bal wasmachine motoren
VOID LED_no (UINT8 LED, UINT16 gegevens)
De eerste parameter 'LED' neemt een invoerwaarde van 1-16 en bepalen welke pin OUTx op de TLC5940 die we bestuurt. De tweede parameter, 'data', zal de waarde PWM tussen 0 - 4095 voor die uitvoer. Deze functie wordt gebruikt om te controleren de spoor LED-ringen evenals de bal wasmachine LED ringen. Om te schakelen LED ring #8 met een PWM-waarde van 3230, zouden we het volgende schrijven:
LED-ring #8 met een taakcyclus van 3230 inschakelen
LED_no(8,3230);
VOID Fade_Ring (UINT8 LED float oude, float nieuw, UINT16 vertraging)
Deze functie maakt gebruik van de exacte dezelfde indeling te vervagen van de LED-ringen die Fade_To() gebruikt om te vervagen de RGB peulen. Het heeft veranderd om te schrijven naar TLC5940 #5 de uitgangen voor de LED ringen en bal sluitringen maar andere zijn dan dat het nog steeds de oproep van de interrupt Fade_State() gebruikt voor het afhandelen van alle van de fading zodra deze functie is aangeroepen. De globale UINT16 array die wordt gebruikt voor het opslaan van de huidige waarde van elke LED-ring heet 'LEDring [16]'. Zodra de gebruiker deze fade-functie aanroept, wordt de LED-ring één meer vervagen stap per onderbreken totdat de ring volledig heeft verschoten op het helderheidsniveau opgegeven automatisch bijgewerkt door de interrupt routine. De fade-tarief wordt berekend op dezelfde manier dat we het voor de RGB peulen terug in stap #52 berekend. Hier is een voorbeeld van een LED-ring op haar max helderheid vervagen in de loop van 80ms:
Begin langzaam verdwijnende LED Ring #3
Fade_Ring (3, LEDring [2], 4095, 10);
VOID Ball_Washer (UINT8 bw, UINT16 fan_speed, UINT16 pump_speed)
Om te controleren de bal wasmachine motoren, zullen we de functie genaamd Ball_Washer(a,b,c) dat ons toelaten zal om de snelheden voor de fan en de pomp motoren instellen op één van de bal sluitringen gebruiken. De LED-ringen rond de bal wasmachine en uitreis gaten worden gecontroleerd op dezelfde manier als de LED-ringen op de rails, deze functie gebruikt enkel de functie LED_no(LED,data) om in te stellen van de motor snelheden. Hier is hoe we de aanjager ventilator op halve snelheid voor bal wasmachine #2 wilt inschakelen:
Inschakelen van de aanjager ventilator op halve snelheid voor bal wasmachine #2; Houden van de pomp uitgeschakeld
Ball_Washer (2, 2048, 0);
Foto #1 bevat de lay-out voor elk van de LED-ringen, maar ik heb ook gepost een video hieronder die cycli van de LED-ringen van #1 - #12 in die volgorde.