Paso 4: El código
Aquí está el código que escribí para él. Es bastante simple y estrecho hacia adelante.
- Utiliza la siguiente librería Arduino: https://github.com/adafruit/Adafruit_NeoPixel
- Para un montón de tutoriales y otros consejos sobre Neo-píxeles, esta página es bastante útil: https://learn.adafruit.com/adafruit-neopixel-uberg...
----------------------------------
#include
requiere la biblioteca de https://github.com/adafruit/Adafruit_NeoPixel
PIN arbitraria por ahora
#define PIN 2
#define esperar 20 //milliseconds tiempo entre siguiente color
#define SEQLEN 5 //memory de matriz = ¿Cuántos colores?
#define s 1000 //millis en un segundo
#define NUMPIXELS 10
#define PI 3.14159
Parámetro 1 = número de píxeles en tira
Parámetro 2 = número de pin del Arduino (la mayoría son válidos)
Parámetro 3 = píxeles tipo banderas, sumar como sea necesario:
NEO_KHZ800 800 KHz bitstream (mayoría NeoPixel productos w/WS2812 LED)
NEO_KHZ400 400 KHz (clásico 'v1' (no el v2) FLORA pixeles, conductores WS2811)
NEO_GRB píxeles están cableados para GRB bitstream (más productos de NeoPixel)
NEO_RGB píxeles están cableados para RGB bitstream (v1 FLORA pixeles, no v2)
Luz de Adafruit_NeoPixel = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
secuencia de colores
definir cada elemento utilizando la luz. Función de color(R,G,B).
BLANCO de uint32_t = luz. Color(255,255,255);
ROJO de uint32_t = luz. Color(255,0,0);
VERDE de uint32_t = luz. Color (0, 255,0);
AZUL de uint32_t = luz. Color(0,0,255);
AMARILLO de uint32_t = luz. Color(255,215,0);
colores de uint32_t [SEQLEN] = {}
BLANCO, ROJO, AMARILLO, VERDE, AZUL};
Cuánto de cada color.
colortime de uint32_t [SEQLEN] = {}
10 * SEC, 6 * SEC, 6 * SEC, 6 * SEC, 6 * SEC};
sin firmar largo t0 = 0;
void setup() {}
Serial.Begin(9600);
/ * colores [0] = blanco;
colores [1] = rojo;
[2] los colores = amarillo;
colores [3] = verde;
colores [4] = azul;
*/
Light.Begin();
Light.Show();
}
void loop() {}
para (bulbo int = 0; bombilla < SEQLEN; ++ bulbo) {}
Serial.println ("ajuste nueva bombilla");
Serial.Print(Colors[Bulb]);
Serial.Print("\t");
Serial.println(Colortime[Bulb]);
T0 = millis();
Delay(1);
t largo sin signo = millis ()-t0;
mientras que (colortime [bombilla] - t * 1. > 0) {}
light.setBrightness(int(255*sin(PI*t/colortime[bulb])));
para (pixel int = 0; pixel < NUMPIXELS; ++ pixel) {}
light.setPixelColor (pixel, colores [bombilla]);
}
Delay(10);
t = millis ()-t0;
Serial.println (colortime [bombilla] - t * 1.);
Light.Show();
}
Delay(Colortime[Bulb]);
#if espera
para (pixel int = 0; pixel < NUMPIXELS; ++ pixel) {}
light.setPixelColor(0,0);
}
Light.Show();
Delay(Wait);
#endif
}
}