Stap 3: Programing
# Ik genieten van de maan afbeelding kleur met photoshop en de RGB-waarde krijgen dan kopieer ze naar de code
# de fade() functie zou een waarde van het RBG neem dan vervagen naar een andere RGB-waarde
#include #ifdef __AVR__ #include #endif
#define PIN 4
Parameter 1 = aantal pixels in de strip / / Parameter 2 = Arduino pin nummer (de meeste zijn geldig) / / Parameter 3 = pixel type vlaggen, wens samen voegen: / / NEO_KHZ800 800 KHz bitstream (de meeste NeoPixel producten w/WS2812 LEDs) / / NEO_KHZ400 400 KHz (klassieke 'v1' (niet v2) FLORA pixels, WS2811 drivers) / / NEO_GRB Pixels zijn Kabelgebonden voor GRB bitstream (de meeste NeoPixel produkten) / / NEO_RGB Pixels zijn Kabelgebonden voor RGB bitstream (v1 FLORA pixels niet v2) Adafruit_NeoPixel strip = Adafruit_NeoPixel (94, PIN, NEO_GRB + NEO_KHZ800);
BELANGRIJK: Om NeoPixel burn-out risico, toevoegen 1000 uF condensator over / / pixel macht leidt, het toevoegen van 300-500 Ohm weerstand op van de eerste pixel gegevensinvoer / / en minimaliseren van de afstand tussen de Arduino en eerste pixel. Vermijd aansluiten / / op een live circuit... Als u moet eerst verbinding maakt met GND.
VOID Setup {/ / dit is voor Trinket 5V 16MHz, kunt u deze drie regels verwijderen als u niet een Trinket #if gedefinieerd (__AVR_ATtiny85__) gebruikt als (F_CPU == 16000000) clock_prescale_set(clock_div_1), #endif / / einde van trinket speciale code
strip.begin(); strip.show(); Initialiseren van alle pixels op 'off'}
void loop {}
vervagen (50, 0, 0, 0, 202, 168, 76); vervagen (50 222, 161, 57, 202, 168, 76); vervagen (50 202, 168, 76, 156, 153, 140); vervagen (50, 156, 153, 140, 144, 139, 129); vervagen (50, 144, 139, 129, 172, 127, 65); vervagen (50, 172, 127, 65, 191, 108, 22); vervagen (50 191, 108, 22, 222, 161, 57); vervagen (50 222, 161, 57, 169, 86, 18); vervagen (50 169, 86, 18, 169-18, 86-18, 18-18); vervagen (50, 169-18, 86-18, 18-18, 0, 0, 0);
}
VOID fade (uint16_t duur, int startColorR, int startColorG, int startColorB, int endColorR, int endColorG, int endColorB) {}
int16_t redDiff = endColorR - startColorR; int16_t greenDiff = endColorG - startColorG; int16_t blueDiff = endColorB - startColorB;
int16_t delaya = 20; int16_t stappen = duur / delaya;
int16_t redValue, greenValue, blueValue;
voor (int16_t i = 0; ik < stap - 1; ++ ik) {redValue = (int16_t) startColorR + (redDiff * ik / stappen); greenValue (int16_t) startColorG = + (greenDiff * ik / stappen); blueValue (int16_t) startColorB = + (blueDiff * ik / stappen);
voor (uint16_t i = 0; i
strip.show();
} / * oplichten halve cirkel voor (uint16_t i = 0; i
} voor ((uint16_t i=strip.numPixels) / 2; ik
strip.show();
} * / / * voor (uint16_t i = 0; i
} * / * / / / waitMs(delay); }
LED.Shine(endColor); strip.setPixelColor (i, Wheel((i+j) & 255)); }
De puntjes een na de andere te vullen met een kleur void colorWipe (uint32_t c, uint8_t wachten) {voor (uint16_t i = 0; i
VOID regenboog (uint8_t wachten) {uint16_t i, j;
voor (j = 0; j < 256; j ++) {voor (ik = 0; i
Iets anders, dit maakt de regenboog even verspreid over void rainbowCycle (uint8_t wachten) {uint16_t i, j;
voor (j = 0; j < 256 * 5; j ++) {/ / 5 cycli van alle kleuren op wiel voor (ik = 0; ik < strip.numPixels(); i ++) {strip.setPixelColor (ik, wiel (((i * 256/strip.numPixels()) + j) & 255));} strip.show(); delay(wait);}} Theatre-style kruipende lichten. VOID theaterChasex (uint32_t c, uint8_t wachten) {voor (int j = 0; j < 10; j ++) {//do 10 cycli van achter voor (int q = 0; q < 3; q ++) {voor (int i = 0; ik < strip.numPixels(); Ik = i + 3) {strip.setPixelColor (i + q, c), //turn elke derde pixel op} strip.show();
delay(wait);
voor (int i = 0; ik < strip.numPixels(); Ik = i + 3) {strip.setPixelColor (i + q, 30), //turn elke derde pixel off}}}}
Theatre-style kruipende lichten. VOID theaterChase (uint32_t c, uint8_t wachten) {voor (int j = 0; j < 10; j ++) {//do 10 cycli van achter voor (int q = 0; q < 3; q ++) {voor (int i = 0; ik < strip.numPixels(); Ik = i + 3) {strip.setPixelColor (i + q, c), //turn elke derde pixel op} strip.show();
delay(wait);
voor (int i = 0; ik < strip.numPixels(); Ik = i + 3) {strip.setPixelColor (i + q, 0); //turn elke derde pixel off}}}}
Theatre-style kruipen met regenboog effect ongeldig theaterChaseRainbow (uint8_t wachten) licht {voor (int j = 0; j < 256; j ++) {/ / cyclus van alle 256 kleuren in het wiel voor (int q = 0; q < 3; q ++) {voor (int i = 0; ik < strip.numPixels(); Ik = i + 3) {strip.setPixelColor (i + q, wiel ((i + j) % 255)); //turn elke derde pixel op} strip.show();
delay(wait);
voor (int i = 0; ik < strip.numPixels(); Ik = i + 3) {strip.setPixelColor (i + q, 0); //turn elke derde pixel off}}}}
Invoergegevens naar een waarde van 0 tot 255 om een kleurwaarde. De kleuren zijn een overgang r - g - b - terug naar r. uint32_t wiel (byte WheelPos) {WheelPos = 255 - WheelPos; if(WheelPos < 85) {return strip. Kleur (255 - WheelPos * 3, 0, WheelPos * 3); } if(WheelPos < 170) {WheelPos-= 85; terugkeer strip. Kleur (0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos-= 170; strip retourneren Kleur (WheelPos * 3, 255 - WheelPos * 3, 0); }