Stap 3: ARDUINO CODE beschrijving:
· FastLED bibliotheek: U moet ervoor zorgen dat u hebt gedownload en geïnstalleerd de FastLED bibliotheek in de Arduino IDE. De bibliotheek is opgenomen in deze schets anders die de FastLED functies zal niet werken.
· De variabele "NUM_LEDS": vertelt de Arduino hoeveel LEDS worden gebruikt. In dit geval hebben we 4 LED ringen, met elke LED-ring met 16 LEDs, en dus een totaal van 64 LEDs. Als u hoe lager het nummer definieert, bijvoorbeeld 16, vervolgens de schets zou alleen verlichting van de LED's op de eerste LED-ring.
· De variabele "DATA_PIN": vertelt de Arduino welke digitale Pin te gebruiken voor datatransmissie naar de LED-ring. In dit geval ben ik met behulp van digitale Pin 9.
· Andere variabelen: Ik heb een paar andere variabelen die worden gebruikt voor LED randomisatie en kleurtoon control. Hue is de kleur van de LED. Door het verhogen van de tint-variabele, kunt u de LED's om te fietsen in een regenboog-achtig patroon. De variabele "tint" is een "byte", wat betekent dat het zal alleen gaan omhoog tot een maximale waarde van 255, voordat hij terug naar nul springt.
Initialisatie Code: hebt u een verschillende LED-ring aan de in deze tutorial, u wellicht de initialisatie code te wijzigen. Deze LED-ring heeft een WS2812-B-chipset (volgens de ICStation website), en dus deze regel:
· FastLED.addLeds (LED's, NUM_LEDS); Zal vertellen de FastLED bibliotheek welke chipset wordt gebruikt (NEOPIXEL), de PIN-code gebruikt voor de overdracht van de gegevens (DATA_PIN), de LED-array worden gecontroleerd (LED's), en het aantal LEDs worden gecontroleerd (NUM_LEDS).
· In de "loop": sectie van de code: de "tint" variabele wordt verhoogd om een regenboogeffect te creëren, en een willekeurige LED is geselecteerd met behulp van de FastLED random8() functie.
· De random8(x) functie: zal willekeurig kiest u een getal van 0 tot en met x.
· De randomSeed() functie: is er om te helpen "echt Shuffle" het nummer. Dit is geholpen door het lezen van de willekeur van een drijvende analogPin (A0). Het hoeft niet te worden analogPin 0, kan iedere niet-gebruikte analoge pin.
· LEDs[Rnd].setHSV(Hue,255,255): deze regel wordt de willekeurige LED hebben een tint die gelijk is aan de "tint" variabele, verzadiging gelijk aan 255 en helderheid gelijk aan 255. Verzadiging gelijk is aan nul zal de LED glans wit maken. Helderheid van nul wordt in wezen de LED uitgeschakeld.
· FastLED.show(): geen fysieke wijzigingen zullen worden aangebracht in het display van de ring LED totdat een bericht wordt verzonden vanuit de Arduino aan op de digitale invoer pin van de LED-ring. Dit bericht wordt verzonden wanneer u de FastLED.show() belt; functie. Dit vertelt de LED ringen tot hun weergave bijwerken met de informatie in de led matrix (LED's). Dus als u instelt dat alle LEDs inschakelen, zal de Raad van bestuur niet verlicht de LEDs tot het FastLED.show(); functie wordt aangeroepen. Dit is belangrijk om te weten - vooral wanneer het proberen om te ontwerpen van uw eigen LED-sequenties.
· De delay(50)-lijn: de hoeveelheid tijd tussen flitsen op 50 milliseconden zal stellen. U kunt de vertraging te verhogen of te verlagen van het aantal flitsen per seconde.
· De leds [i] .fadeToBlackBy (180) functie: in wezen verdwijnt de LEDS door 180 eenheden. U kunt vergroten of verkleinen van dit nummer om het vervagen van de gewenste snelheid te bereiken. Wees gewaarschuwd echter dat als u vergeet om deze functie oproepen of als u niet voldoende vervagen van de LED's, dan u kunt omhoog beëindigen met alle LEDs draaien op, die potentieel uw Arduino board vernietigen kunnen-dat wil zeggen afhankelijk van het aantal LED ringen hebt, en hoe u hebt gekozen voor het aandrijven van hen.