LED glas (3 / 4 steg)
Steg 3: Glasögon kod
För dig som bara vill gå vidare och göra det och få det att fungera, har jag bifogat min version av koden för mina glasögon. Känn dig fri att ta det och använda det som det är.
För er som vill ha mer av en förståelse för vad som händer, ska jag förklara vissa funktioner och viktiga saker att notera om kodning Arduinoen för att kontrollera denna LED-strip. Första gången jag började med det, använde jag samma som den testfil som Adafruit. Under månaderna, har jag fått en bättre förståelse för vad var och en av dessa delar gör.
1) till en Arduino är LED strip ett "objekt," i hela datorn vetenskap avkänningen av uttrycka. Det instansierar det i början med antalet lysdioder och digital stiften som remsan har anslutit den.
Detta har konsekvenser för vad du kan använda det för mycket. Vad jag har jobbat på mer nyligen använder flera av dem och att skapa en matris av dessa "band objekt" att hantera flera av dem på en gång.
2) strip.begin() i princip vänder det på
3) strip.show() är oerhört viktigt. Du kanske tror att helt enkelt genom att ange pixel färg på en LED, lampan tänds. Istället strip.show() är den funktion som uppdaterar status för LED strip, och således även om du ställer in en pixel färg, det kommer inte att "Visa" på strip strip.show() har anropats.
Detta gör placeringen av funktionen ganska viktigt. Inte bara är det viktigt att inkludera det efter byte band färgen, men dessutom att placera den på rätt plats kan påverka hur snabbt ljuset verkar ändra. Som ett exempel, anta att du ville vända alla lampor av remsan på en viss färg på samma gång. Om du ange färg för en enda LED och sedan använda strip.show(), och sedan upprepa som tills du når slutet av ditt band, ser du en liten fördröjning mellan en LED tända och LED bredvid det slå på, eftersom det tar några små men ändlig mängd tid för strip.show() att köra. Det optimala vore att ändra färg på alla lamporna en efter en, men använder strip.show() i slutet så att de alla slå på på en gång snarare än en i taget.
4) strip.setPixelColor(int p, uint32_t c) den här är ganska klar--det anger pixel färg ges en position p längs remsan och en färg c. Frasen "uint32_t" betecknar den "typ" som det accepterar, och innebär att färgvärde är 32 bitar.
5) colorChase(uint32_t c, uint8_t wait) studsar en ljus på LED strip från sida till sida. färgen är "c" och "vänta" är mängden fördröjning mellan varje LED.
6) colorPong(uint32_t c, uint8_t wait) studsar en ljus från motsatta sidor av remsan och har dem studsa varandra på mitten.
7) chaseBlack(uint32_t c, uint8_t wait) det är ingen riktig väg att ha remsan flash ett "svart" ljus, så i princip det är inversen av funktionen colorChase i att det visar på alla lampor utom en pixel som är avstängd och verkar "svart."
8) strobeLight(uint32_t c) är det ett blixtljus.