Stap 3: Glazen Code
Voor degenen onder u die enkel willen gaan maken en het werkend krijgen, heb ik toegevoegd mijn versie van de code voor mijn bril. Voel je vrij te nemen en te gebruiken zoals het is.
Voor degenen onder u die meer van een goed begrip willen van wat gaande is er, ga ik uitleggen enkele van de functies en belangrijke dingen op te merken over de codering van de Arduino voor het beheersen van deze LED-strip. De eerste keer dat ik met het begonnen ben, gebruikte ik hetzelfde ingesteld als het testbestand dat Adafruit verstrekt. In de maanden heb ik opgedaan een beter begrip voor wat elk van deze onderdelen doen.
1) de LED-strip is aan een Arduino, een "object," in de hele computer science zin van het woord. Het maakt een instantie van het in het begin met het aantal LEDs en de digitale pennen die de strip is aangesloten.
Dit heeft veel gevolgen voor wat u kunt gebruiken voor. Wat ik heb gewerkt aan meer onlangs is met behulp van verscheidene van hen en het maken van een array van deze strip"objecten" om verscheidene van hen tegelijk.
2) strip.begin() in feite draait het op
3) strip.show() is ongelooflijk belangrijk. Je zou denken dat alleen door het instellen van de pixelkleur van een LED, de LED ingeschakeld wordt. In plaats daarvan, strip.show() is de functie die de status van de LED-strip bijgewerkt, en dus zelfs als u de pixelkleur van een instellen, het zal niet "tonen" op de strip totdat strip.show() heeft geroepen.
Dit maakt de plaatsing van de functie eerder belangrijk. Niet alleen is het van cruciaal belang te nemen na het wijzigen van de kleur van de strippen, maar bovendien plaatsen van het op de juiste plaats kan een effect hebben op hoe snel de verlichting lijkt te veranderen. Stel bijvoorbeeld dat u wilden voor zwenking van alle de LEDs van de strip op een bepaalde kleur op hetzelfde moment. Als u de kleur van een enkele LED instellen en vervolgens strip.show() gebruiken en vervolgens dat iterate u tot het einde van je strip, ziet u een kleine vertraging tussen één LED inschakelen en de LED ernaast inschakelen, omdat het duurt enkele kleine maar eindige hoeveelheid tijd voor strip.show() uit te voeren. De optimale ding om te doen zou zijn om te veranderen van de kleur van alle van de LED's één voor één, maar strip.show() aan het einde zo dat ze allemaal tegelijk in plaats van een tegelijk inschakelen.
4) strip.setPixelColor(int p, uint32_t c) Dit is vrij duidelijke--daarin de kleur van de pixel gegeven een positie p langs de strook en een kleur-c. De uitdrukking "uint32_t" geeft het "type" die het aanvaardt, en betekent dat de kleurwaarde 32 bits.
5) colorChase(uint32_t c, uint8_t wait) stuitert een licht op de LED strip van links naar rechts. "c" is de kleur, en "wachten" is de hoeveelheid vertraging tussen elke LED.
6) colorPong(uint32_t c, uint8_t wait) stuitert een licht uit tegenovergestelde uiteinden van de strip en heeft ze stuiteren elkaar in het midden.
7) chaseBlack(uint32_t c, uint8_t wait) er is geen echte manier dat de strip flash een "zwarte" licht, dus eigenlijk is de inverse van de functie van colorChase dat het draait op alle lichten met uitzondering van een pixel die uitstaat en lijkt "zwarte".
8) strobeLight(uint32_t c) is een stroboscoop.