Paso 1: Los pasos 3/4 alternativa FastLED
Arduino se puede programar con el FastLED 3.1 NoisePlusPalette https://github.com/FastLED/FastLED/tree/master/exa... Hay un video de ejemplo de esta incluida arriba. También debe instalar la biblioteca de 3.1 FastLED a la computadora que usted está programando arduino con. https://github.com/FastLED/FastLED
Por favor, asegúrese de cambiar los números en el programa como se muestra en el código siguiente.
Si utiliza una fuente de alimentación para tu Arduino puede simple vuelta en el poder de y entonces el poder de los LED y es!
CÓDIGO
---------------------------------------------------------------------------------
#include
#define LED_PIN 3 #define DATA_PIN 2 #define CLOCK_PIN 3 #define NUM_LEDS 120 #define brillo 64 #define LED_TYPE WS2801 #define COLOR_ORDER GBR CRGB leds [NUM_LEDS];
#define UPDATES_PER_SECOND 100
Este ejemplo muestra varias formas de configurar y utilizar 'paletas' de colores / / con FastLED. / Estas paletas compactas proporciona una manera fácil de volver a colorear su / / animación sobre la marcha, rápidamente, fácilmente y con la cabeza baja. / USANDO paletas es mucho más simple en la práctica que en teoría, lo primero sólo / / ejecutar este bosquejo y ver las luces bonitas como usted entonces lea / / el código. Aunque este bosquejo tiene ocho (o más) esquemas de color diferentes, / / el bosquejo entero compila hasta aproximadamente 6,5 K en AVR. / FastLED proporciona algunas paletas de colores preconfigurados, y lo hace / / muy fácil de hacer tus propios esquemas de color con gamas de colores. / / Algunas notas sobre la más abstracta 'teoría y práctica' de / paletas compactos FastLED son en el fondo de este archivo.
CurrentPalette de CRGBPalette16; CurrentBlending de TBlendType;
extern CRGBPalette16 myRedWhiteBluePalette; extern const TProgmemPalette16 myRedWhiteBluePalette_p PROGMEM;
void setup() {retardo (3000); / / encendido seguridad delay FastLED.addLeds (leds, NUM_LEDS); FastLED.setBrightness (brillo); currentPalette = RainbowColors_p; currentBlending = mezcla; }
void loop() {ChangePalettePeriodically();
estática uint8_t startIndex = 0; startIndex startIndex = 1; / * velocidad de movimiento * /
FillLEDsFromPaletteColors (startIndex);
FastLED.show(); FastLED.delay(1000 / UPDATES_PER_SECOND); }
void FillLEDsFromPaletteColors (uint8_t colorIndex) {uint8_t brillo = 255; para (int i = 0; i < NUM_LEDS; i ++) {LED [i] = ColorFromPalette (currentPalette, colorIndex, brillo, currentBlending); colorIndex += 3;}}
Hay varios diferentes paletas de colores demostrados aquí. / FastLED ofrece varias paletas 'preestablecidos': RainbowColors_p, RainbowStripeColors_p, / / OceanColors_p, CloudColors_p, LavaColors_p, ForestColors_p y PartyColors_p. / / / / Además, manualmente puede definir su propia paleta de colores, o puede escribir / / código que crea las paletas de colores sobre la marcha. Todos se muestran aquí.
void ChangePalettePeriodically() {uint8_t usados = (millis() / 1000) % 60; uint8_t estática lastSecond = 99; si (lastSecond! = segunda mano) {lastSecond = segunda mano; si (segunda mano == 0) {currentPalette = RainbowColors_p; currentBlending = mezcla;} si (segunda mano == 10) {currentPalette = RainbowStripeColors_p; currentBlending = NOBLEND;} si (segunda mano == 15) {currentPalette = RainbowStripeColors_p; currentBlending = mezcla;} si (segunda mano == 20) {SetupPurpleAndGreenPalette(); currentBlending = mezcla;} si (segunda mano == 25) {SetupTotallyRandomPalette(); currentBlending = mezcla;} si (== segunda mano 30) {SetupBlackAndWhiteStripedPalette(); currentBlending = NOBLEND;} si (== segunda mano 35) {SetupBlackAndWhiteStripedPalette(); currentBlending = mezcla;} si (segunda mano == 40) {currentPalette = CloudColors_p; currentBlending = mezcla;} si (segunda mano == 45) {currentPalette = PartyColors_p; currentBlending = mezcla; } Si (segunda mano == 50) {currentPalette = myRedWhiteBluePalette_p; currentBlending = NOBLEND;} si (== segunda mano 55) {currentPalette = myRedWhiteBluePalette_p; currentBlending = mezcla;}} }
Esta función rellena la paleta con los colores totalmente al azar. void SetupTotallyRandomPalette() {para (int i = 0; i < 16; i ++) {currentPalette [i] = CHSV (random8(), 255, random8());}}
Esta función establece una paleta de rayas negras y blancas, / / utilizando código. Puesto que la paleta es un conjunto de / / dieciséis colores CRGB, las funciones fill_ * pueden ser utilizados / a configurarlas. void SetupBlackAndWhiteStripedPalette() {/ / 'black out' todas las entradas de paleta 16... fill_solid (currentPalette, 16, CRGB::Black); / / y cada cuarto uno a blanco. currentPalette [0] = CRGB::White; currentPalette [4] = CRGB::White; currentPalette [8] = CRGB::White; currentPalette [12] = CRGB::White;
}
Esta función establece una paleta de rayas morados y verdes. void SetupPurpleAndGreenPalette() {púrpura CRGB = CHSV (HUE_PURPLE, 255, 255); Verde CRGB = CHSV (HUE_GREEN, 255, 255); Negro CRGB = CRGB::Black; currentPalette = CRGBPalette16 (verde, verde, negro, negro, púrpura, púrpura, negro, negro, verde, verde, negro, negro, púrpura, púrpura, negro, negro); }
Este ejemplo muestra cómo crear una paleta de color estático / / que se almacena en PROGMEM (flash), que es casi siempre más / / abundante de RAM. Una paleta PROGMEM estática como esta / / ocupa 64 bytes de flash. const TProgmemPalette16 myRedWhiteBluePalette_p PROGMEM = {CRGB::Red, CRGB::Gray, / / 'blanco' es muy brillante en comparación con el rojo y el azul CRGB::Blue, CRGB::Black,
CrgB::red, CRGB::Gray, CRGB::Blue, CRGB::Black,
CrgB::red, CRGB::Red, CRGB::Gray, CRGB::Gray, CRGB::Blue, CRGB::Blue, CRGB::Black, CRGB::Black};
Notas de Additionl sobre el FastLED compacto de paletas: / / / / normalmente, in infografía, la paleta (o "tabla de búsqueda de color") / tiene 256 entradas, cada una con un determinado color RGB de 24 bits. Usted puede entonces / / índice para la paleta de colores utilizando un simple 8 bits (un byte) valor. Toma una paleta de colores de 256 entradas 768 bytes de RAM, que en Arduino / / es posiblemente bytes "demasiados". / / FastLED la oferta tradicionales paletas de 256 elementos, configuraciones que / / se puede pagar el costo de 768 bytes en RAM. / Sin embargo, FastLED también ofrece una alternativa compacta. FastLED ofrece / / paletas que almacenan 16 entradas distintas, pero pueden accederse como si / / realmente tienen 256 entradas; Esto se logra interpolando / / entre las 16 entradas explícitas para crear paleta intermedia quince / / entradas entre cada par. / / Así por ejemplo, si establece las dos primeras entradas explícitas del Pacto / / paleta verde (0,255,0) y el azul (0,0,255) y entonces obtenido / / las primeros dieciséis entradas de la paleta virtual (de 256), se podrían obtener / / verde, seguido por un suave degradado de verde a azul y luego azul.