Stap 4: De Code
Hier is de code die ik schreef voor het. Het is vrij straat-forward en eenvoudig.
- Het maakt gebruik van de volgende Arduino-bibliotheek: https://github.com/adafruit/Adafruit_NeoPixel
- Voor een heleboel tutorials en verdere tips over Neo-pixels, deze pagina is vrij nuttig: https://learn.adafruit.com/adafruit-neopixel-uberg...
----------------------------------
#include
bibliotheek van https://github.com/adafruit/Adafruit_NeoPixel vereist
willekeurige PIN voor nu
#define PIN 2
#define wachten 20 //milliseconds uit de tijd tussen de volgende kleur
#define SEQLEN 5 //memory van matrix = hoeveel kleuren?
#define SEC 1000 //millis in een tweede
#define NUMPIXELS 10
#define PI 3.14159
Parameter 1 = aantal pixels in strip
Parameter 2 = Arduino pin nummer (de meeste zijn geldig)
Parameter 3 = pixel type vlaggen, wens samen toevoegen:
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 bedraad voor GRB bitstream (de meeste NeoPixel produkten)
NEO_RGB Pixels zijn bedraad voor RGB bitstream (v1 FLORA pixels, niet v2)
Adafruit_NeoPixel licht = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
kleur volgorde
Definieer elk element met behulp van licht. Color(R,G,B) functie.
uint32_t wit = licht. Color(255,255,255);
uint32_t rood = licht. Color(255,0,0);
uint32_t groen = licht. Kleur (0, 255,0);
uint32_t blauw = licht. Color(0,0,255);
uint32_t geel = licht. Color(255,215,0);
uint32_t kleuren [SEQLEN] = {}
WIT, ROOD, GEEL, GROEN, BLAUW};
Hoe lang elk kleur.
uint32_t colortime [SEQLEN] = {}
10 * SEC, 6 * SEC, 6 * SEC, 6 * SEC, 6 * SEC};
niet-ondertekende lange t0 = 0;
VOID Setup {}
Serial.begin(9600);
/ * kleuren [0] = wit;
kleuren [1] = rood;
kleuren [2] = geel;
kleuren [3] = groen;
kleuren [4] = blauw;
*/
Light.begin();
Light.show();
}
void loop {}
voor (int lamp = 0; lamp < SEQLEN; ++ lamp) {}
Serial.println ("instelling nieuwe bol");
Serial.Print(Colors[Bulb]);
Serial.Print("\t");
Serial.println(colortime[Bulb]);
t0 = millis();
delay(1);
niet-ondertekende lange t = millis ()-t0;
terwijl (colortime [bulb] - t * 1. > 0) {}
light.setBrightness(int(255*sin(PI*t/colortime[bulb])));
voor (int pixel = 0; pixel < NUMPIXELS; ++ pixel) {}
light.setPixelColor (pixel, kleuren [lamp]);
}
delay(10);
t = millis ()-t0;
Serial.println (colortime [bulb] - t * 1.);
Light.show();
}
delay(colortime[Bulb]);
#if wachten
voor (int pixel = 0; pixel < NUMPIXELS; ++ pixel) {}
light.setPixelColor(0,0);
}
Light.show();
delay(wait);
#endif
}
}