Paso 3: programación
# Me muestra el color de la imagen de luna con photoshop y obtener el valor RGB luego copiarlos en el código
# la función fade() toman un valor RBG entonces se descoloran a otro valor RGB
#include #ifdef __AVR__ #include #endif
#define pasador 4
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 = tipo de pixel 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, WS2811 controladores) / / 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 píxeles de FLORA no v2) tira de Adafruit_NeoPixel = Adafruit_NeoPixel (94, PIN, NEO_GRB + NEO_KHZ800);
IMPORTANTE: Para reducir el riesgo de burnout NeoPixel, añadir el condensador de 1000 uF a través de / / conductores de alimentación de pixel, añadir resistencia de 300-500 Ohm en la entrada de datos de pixel primera / / y minimizar la distancia entre Arduino y primer. Evite conectar / en un circuito vivo... Si es necesario, conectar la tierra primero.
void setup() {/ / esto es para baratija 5V 16MHz, puede eliminar estas tres líneas si no utilizas una baratija #if definido (__AVR_ATtiny85__) si (F_CPU == 16000000) clock_prescale_set(clock_div_1); #endif / / fin de código especial de baratija
Strip.Begin(); Strip.Show(); Inicializar todos los píxeles en 'off'}
void loop() {}
fade (50, 0, 0, 0, 202, 168, 76); fade (50, 222, 161, 57, 202, 168, 76); fade (50, 202, 168, 76, 156, 153, 140); fade (50, 156, 153, 140, 144, 139, 129); fade (50, 144, 139, 129, 172, 127, 65); fade (50, 172, 127, 65, 191, 108, 22); fade (50, 191, 108, 22, 222, 161, 57); fade (50, 222, 161, 57, 169, 86, 18); fade (50, 169, 86, 18, 169-18, 86-18, 18-18); fade (50, 169-18, 86-18, 18-18, 0, 0, 0);
}
{} void fade (duración uint16_t, int startColorR, int startColorG, int startColorB, int endColorR, int endColorG, int endColorB)
int16_t redDiff = endColorR - startColorR; int16_t greenDiff = endColorG - startColorG; int16_t blueDiff = endColorB - startColorB;
int16_t delaya = 20; int16_t pasos = duración / delaya;
int16_t redValue, greenValue, blueValue;
para (int16_t me = 0; i < pasos - 1; ++) {redValue = startColorR (int16_t) + (redDiff * me / pasos); greenValue = startColorG (int16_t) + (greenDiff * me / pasos); blueValue = startColorB (int16_t) + (blueDiff * me / pasos);
para (uint16_t i = 0; i
Strip.Show();
} / * luz medio círculo para (uint16_t i = 0; i
} para (uint16_t i=strip.numPixels () / 2; i
Strip.Show();
} * / / * para (uint16_t i = 0; i
} * / * / / / waitMs(delay); }
LED.Shine(endColor); strip.setPixelColor (i, Wheel((i+j) y 255)); }
Llene los puntos uno tras otro con un colorWipe vacío de color (uint32_t c, uint8_t espera) {para (uint16_t i = 0; i
sin efecto arco iris (uint8_t espera) {uint16_t i, j;
para (j = 0; j < 256; j ++) {para (i = 0; i
Ligeramente diferente, esto hace que el arco iris, igualmente distribuido por vacío rainbowCycle (uint8_t espera) {uint16_t i, j;
para (j = 0; j < 256 * 5; j ++) {/ / 5 ciclos de todos los colores en la rueda para (i = 0; i < strip.numPixels(); i ++) {strip.setPixelColor (i, rueda (((i * 256/strip.numPixels()) + j) y 255));} strip.show(); delay(wait);}} Luces de arrastre tipo teatro. anular theaterChasex (uint32_t c, uint8_t espera) {para (int j = 0; j < 10; j ++) {//do 10 ciclos de perseguir para (int q = 0 q < 3; q ++) {para (int i = 0; me < strip.numPixels(); i = i + 3) {strip.setPixelColor (i + q, c); //turn cada píxel tercera en} strip.show();
Delay(Wait);
para (int i = 0; i < strip.numPixels(); i = i + 3) {strip.setPixelColor (i + q, 30), //turn cada tercer pixel apagado}}}}
Luces de arrastre tipo teatro. anular theaterChase (uint32_t c, uint8_t espera) {para (int j = 0; j < 10; j ++) {//do 10 ciclos de perseguir para (int q = 0 q < 3; q ++) {para (int i = 0; me < strip.numPixels(); i = i + 3) {strip.setPixelColor (i + q, c); //turn cada píxel tercera en} strip.show();
Delay(Wait);
para (int i = 0; i < strip.numPixels(); i = i + 3) {strip.setPixelColor (i + q, 0); //turn cada tercer pixel apagado}}}}
Arrastrándose en estilo teatro luces con arco iris efecto void theaterChaseRainbow (uint8_t esperar) {para (int j = 0; j < 256; j ++) {/ ciclo todos los 256 colores en la rueda de (int q = 0 q < 3; q ++) {para (int i = 0; me < strip.numPixels(); i = i + 3) {strip.setPixelColor (i + q, rueda ((i + j) % 255)); //turn cada píxel tercera en} strip.show();
Delay(Wait);
para (int i = 0; i < strip.numPixels(); i = i + 3) {strip.setPixelColor (i + q, 0); //turn cada tercer pixel apagado}}}}
Un valor de 0 a 255, para obtener un valor de color de entrada. Los colores son una transición r - g - b - a r. rueda de uint32_t (bytes WheelPos) {WheelPos = 255 - WheelPos; if(WheelPos < 85) {return tira. Color (255 - WheelPos * 3, 0, WheelPos * 3); } if(WheelPos < 170) {WheelPos-= 85; tira de vuelta. Color (0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos-= 170; volver la tira. Color (WheelPos * 3, 255 - WheelPos * 3, 0); }