Étape 4: Le Code
Voici le code que j’ai écrit pour elle. C’est assez simple et détroit en avant.
- Il utilise la bibliothèque suivante d’Arduino : https://github.com/adafruit/Adafruit_NeoPixel
- Pour beaucoup de tutoriels et d’autres conseils sur Neo-pixel, cette page est très utile : https://learn.adafruit.com/adafruit-neopixel-uberg...
----------------------------------
#include
nécessite la bibliothèque de https://github.com/adafruit/Adafruit_NeoPixel
PIN arbitraire pour l’instant
#define PIN 2
#define attendre 20 //milliseconds temps entre couleur suivante
#define SEQLEN 5 //memory du tableau = combien de couleurs ?
#define SEC 1000 //millis en une seconde
#define NUMPIXELS 10
#define PI 3.14159
Paramètre 1 = nombre de pixels dans la bande de
Paramètre 2 = nombre de goupille de Arduino (la plupart sont valide)
Paramètre 3 = type de pixel drapeaux, additionner au besoin :
NEO_KHZ800 800 KHz bitstream (la plupart NeoPixel produits w/WS2812 LEDs)
NEO_KHZ400 400 KHz (classique « v1 » (pas v2) pixels de flore, WS2811 pilotes)
NEO_GRB Pixels sont câblés pour GRB bitstream (la plupart des produits NeoPixel)
NEO_RGB Pixels sont câblés pour RGB bitstream (v1 pixels de flore, pas v2)
Adafruit_NeoPixel lumière = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800) ;
séquence de couleur
définir chaque élément à l’aide de la lumière. Fonction Color(R,G,B).
uint32_t blanc = lumière. Color(255,255,255) ;
uint32_t rouge = lumière. Color(255,0,0) ;
uint32_t vert = lumière. Couleur (0, 255,0) ;
uint32_t bleu = lumière. Color(0,0,255) ;
uint32_t jaune = lumière. Color(255,215,0) ;
uint32_t couleurs [SEQLEN] = {}
BLANC, ROUGE, JAUNE, VERT, BLEU} ;
Combien de temps chaque couleur.
uint32_t colortime [SEQLEN] = {}
10 * SEC, 6 * SEC, 6 * SEC, 6 * SEC, 6 * S} ;
unsigned long t0 = 0 ;
void setup() {}
Serial.Begin(9600) ;
/ * couleurs [0] = blanc ;
couleurs [1] = rouge ;
couleurs [2] = jaune ;
couleurs [3] = vert ;
couleurs [4] = bleu ;
*/
Light.Begin() ;
Light.Show() ;
}
void loop() {}
pour (ampoule int = 0; ampoule < SEQLEN; ++ ampoule) {}
Serial.println (la "nouvelle ampoule réglage") ;
Serial.Print(Colors[Bulb]) ;
Serial.Print("\t") ;
Serial.println(Colortime[Bulb]) ;
T0 = millis() ;
Delay(1) ;
unsigned long t = millis ()-t0 ;
tandis que (colortime [bulb] - t * 1. > 0) {}
light.setBrightness(int(255*sin(PI*t/colortime[bulb]))) ;
pour (int pixel = 0; pixel < NUMPIXELS; ++ pixel) {}
light.setPixelColor (pixels, couleurs [bulb]) ;
}
Delay(10) ;
t = millis ()-t0 ;
Serial.println (colortime [bulb] - t * 1.) ;
Light.Show() ;
}
Delay(Colortime[Bulb]) ;
#if WAIT
pour (int pixel = 0; pixel < NUMPIXELS; ++ pixel) {}
light.setPixelColor(0,0) ;
}
Light.Show() ;
Delay(Wait) ;
#endif
}
}