Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Adafruit_NeoPixel.h>
- #ifdef __AVR__
- #include <avr/power.h>
- #endif
- #define PIN 6
- #define NUM_PIXELS 8
- #define RANDOM_CHANCE 50
- #define TOP 75
- // Parameter 1 = number of pixels in strip
- // Parameter 2 = Arduino pin number (most are valid)
- // Parameter 3 = pixel type flags, add together as needed:
- // NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
- // NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
- // NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products)
- // NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
- // NEO_RGBW Pixels are wired for RGBW bitstream (NeoPixel RGBW products)
- Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_PIXELS, PIN, NEO_GRB + NEO_KHZ800);
- // IMPORTANT: To reduce NeoPixel burnout risk, add 1000 uF capacitor across
- // pixel power leads, add 300 - 500 Ohm resistor on first pixel's data input
- // and minimize distance between Arduino and first pixel. Avoid connecting
- // on a live circuit...if you must, connect GND first.
- int vals[NUM_PIXELS] = {0};
- void setup() {
- // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket
- #if defined (__AVR_ATtiny85__)
- if (F_CPU == 16000000) clock_prescale_set(clock_div_1);
- #endif
- // End of trinket special code
- Serial.begin(9600);
- strip.begin();
- strip.show(); // Initialize all pixels to 'off'
- }
- void loop() {
- for (int i = 0; i < NUM_PIXELS; i++) {
- int col = 0;
- if (vals[i] < 0) {
- //intentionally blank
- } else if (vals[i] == 0) {
- int r = random(RANDOM_CHANCE);
- if (random(r) != 1) {
- vals[i] = -10;
- }
- } else if (vals[i] <= TOP) {
- col = vals[i];
- } else if (vals[i] <= TOP + 10) {
- col = TOP;
- } else if (vals[i] <= TOP * 2 + 10) {
- col = TOP * 2 + 10 - vals[i];
- if (vals[i] == TOP * 2 + 10) {
- vals[i] = -1;
- }
- }
- strip.setPixelColor(i, 0, col, col);
- vals[i]++;
- }
- strip.show();
- delay(20);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement