WS2812-B ledde med ATMEGA328 UNO V3.0 R3 styrelsen (3 / 11 steg)
Steg 3: ARDUINO Beskrivning:
· FastLED bibliotek: du måste se till att du har hämtat och installerat FastLED biblioteket till din Arduino IDE. Biblioteket ingår i denna skiss annars FastLED funktioner inte att fungera.
· Variabeln "NUM_LEDS": berättar Arduino hur många lysdioder är i bruk. I det här fallet har vi 4 LED ringar, med varje LED ring som innehåller 16 lysdioder, och därför totalt 64 lysdioder. Om du definierar ett lägre värde, till exempel 16, sedan skissen skulle endast tänds lysdioderna på första LED ringen.
· Variabeln "DATA_PIN": berättar Arduino som Digital Pin för överföring av data till LED ringen. I detta fall, använder jag Digital Pin 9.
· Andra variabler: Jag har ett par andra variabler som används för LED randomisering och nyans. Nyans är färgen på lysdioden. Genom uppräkning variabeln nyans, kan du få lamporna att cykla i en regnbåge-liknande mönster. Variabeln "hue" är en "byte", vilket innebär att det kommer bara gå till ett högsta värde 255, innan den hoppar tillbaka till noll.
Initiering kod: om du har en annan LED ring till en i denna tutorial, du kan behöva ändra initialisering koden. Denna LED ring har en WS2812-B chipset (enligt ICStation hemsida), och så den här raden:
· FastLED.addLeds (lysdioder, NUM_LEDS); Kommer att berätta FastLED bibliotek vilket chipset är att använda (NEOPIXEL), PIN-koden används för överföring av data (DATA_PIN), ledde matrisen kontrolleras (LED) och antalet lysdioder vara kontrollerade (NUM_LEDS).
· I "loop()": avsnitt i koden: "hue" variabeln ökas för att skapa en regnbågseffekt, och en random LED väljs med den FastLED random8() funktion.
· Funktionen random8(x): kommer att slumpmässigt välja ett nummer från 0 till x.
· Funktionen randomSeed(): hjälper "verkligen Slumpa" numret. Detta är hjälpt av behandlingen slumpmässigheten i en flytande analogPin (A0). Det behöver inte vara analogPin 0, kan det eventuella oanvända analoga pin.
· leds[RND].setHSV(Hue,255,255): raden anger den slumpmässiga LED har en nyans som är lika med variabeln "hue", mättnad lika med 255 och intensitet lika med 255. Mättnad lika med noll gör LED glans vit. Ljusstyrka på noll i huvudsak släcks den LED.
· FastLED.show(): inga fysiska förändringar kommer att göras till LED ring displayen tills ett meddelande skickas från Arduino till Digital input stift LED ringen. Detta meddelande överförs när du kallar FastLED.show(); funktion. Detta säger LED ringen att uppdatera deras visning med informationen i arrayen led (lysdioder). Så om du anger alla lysdioder att slå på, styrelsen inte tänds lysdioderna till FastLED.show(); funktionen anropas. Detta är viktigt att veta - särskilt när man försöker designa din egen LED sekvenser.
· Delay(50) raden: ställer in hur lång tid mellan blinkar till 50 millisekunder. Du kan ändra fördröjningen för att öka eller minska antalet blixtar per sekund.
· Funktionen lysdioder [i] .fadeToBlackBy (180): i huvudsak bleknar lysdioder av 180 enheter. Du kan öka eller minska detta nummer för att uppnå önskad toning hastighet. Varnas dock att om du har glömt att ringa denna funktion eller om du inte blekna lysdioderna tillräckligt, då kan du sluta med alla lysdioder vrida på, som kan potentiellt förstöra din Arduino ombord - dvs beroende på antalet LED ringar du har, och hur du har valt att driva dem..