Stap 2: Hoe werkt het?
De WS2812 IC binnen deze adresseerbare LEDs werkt net als een shift register. Zij worden in feite in sommige gegevensbladen Shift Register programmeerbare LEDs genoemd. Zijn deze tiny chip, waardoor de magie in de geheime saus. Zijn meer dan enkel een Shift Register ook het omvat de huidige weerstand alle LEDs moeten beperken, evenals regelt de ingangsspanning wat de specifieke LED-elementen nodig. U kunt meer informatie over Shift registreert hier op Wikipedia.
In mijn vorige Instructable ging ik in detail over de LEDs en hoe deze veranderen spanning was een goede manier om te doden van de LEDs en dat als je dim hen wilde, je moest een pulsbreedte modulerende signaal gebruiken. Wat Pulsbreedtemodulatie doet is de LED inschakelen en uitschakelen zo snel dat het verandert de gemiddelde lichtniveau. Hoe meer tijd die de LED uitgeschakeld is, hoe donkerder lijkt. De reden dat u niet zien op die manier is dat de LED aanstaat en uit zo snel, je ogen wordt niet herkend.
Adresseerbaar LEDs zijn niet gecontroleerd door spanning, noch Pulsbreedtemodulatie. Zij worden gecontroleerd door een vervoerder signaal. Dit 800kHz signaal heeft een indeling die wordt beschreven in de chip wat elk van de kleuren moeten worden, wat de helderheid moet worden, en ook wat elke LED in de keten stroomafwaarts te moet worden.
Wanneer de WS2812 het signaal ontvangt, het eigen gegevens uit die vervoerder signaal decodeert, dan stuurt de rest van de gegevens stroomafwaarts naar de volgende LED enzovoort.
In de Arduino, wordt dit bereikt door het gebruik van een vrij slimme bibliotheek , geschreven door de fijne mensen van Adafruit, die verkopen de NeoPixel lijn van producten die gebruikmaken van de WS2812 chip. In feite als je kijkt naar het lef van de betreffende bibliotheek wordt de feitelijke gegevens verzonden uit met een reeks zorgvuldig getimede DigitalWrite() opdrachten. Dit betekent dat elk van de 13 digitale pinnen kon worden gebruikt, niet alleen de zes PWM pinnen.