Paso 3: programación
Tomé prestado código de Adafruit (https://learn.adafruit.com/rgb-led-strips/example-... y (https://github.com/adafruit/Adafruit_NeoPixel/tree... y puré de juntos. Hice algunos cambios y este es el resultado:
remolino de color! Conecte un LED RGB a los pines PWM como se indica
en el #defines
dominio público, disfrutar!
#define REDPIN 5
#define GREENPIN 6
#define BLUEPIN 3
#define BUTTON_PIN 2
#define FADESPEED 5 / / esto hace más lento
bool oldState = alta;
int showType = 0;
int r = 255;
int g = 255;
int b = 255;
int f = 0; contador para luces intermitentes
void setup() {}
pinMode (REDPIN, salida);
pinMode (GREENPIN, salida);
pinMode (BLUEPIN, salida);
pinMode (BUTTON_PIN, INPUT_PULLUP);
}
void loop() {}
bool newState = digitalRead(BUTTON_PIN);
Compruebe si el estado cambia de alto a bajo (pulsación).
Si (newState == baja & & oldState == HIGH) {}
Corto retardo para debounce botón.
Delay(20);
Compruebe si el botón está todavía bajo después debounce.
newState = digitalRead(BUTTON_PIN);
Si (newState == LOW) {}
showType ++;
Si (showType > 4)
showType = 0;
startShow(showType);
}
}
oldState = newState;
}
void startShow(int i) {}
{Switch(i)}
caso 0: digitalWrite (REDPIN, alto); Negro/apagado
digitalWrite (BLUEPIN, alto);
digitalWrite (GREENPIN, alto);
Delay(500);
para (f = 0; f < 4; i ++) {}
digitalWrite (REDPIN, LOW); Blanco - parpadea 3 veces
digitalWrite (BLUEPIN, LOW);
digitalWrite (GREENPIN, bajo);
Delay(200);
digitalWrite (REDPIN, alto); Negro/apagado
digitalWrite (BLUEPIN, alto);
digitalWrite (GREENPIN, alto);
Delay(500);
}
rotura;
caso 1: digitalWrite (REDPIN, LOW); Blanco se desvanecen al rojo
digitalWrite (BLUEPIN, LOW);
digitalWrite (GREENPIN, bajo);
Delay(500);
analogWrite (REDPIN, 255); Rojo
Delay(2000);
digitalWrite (REDPIN, alto); Negro/apagado
digitalWrite (BLUEPIN, alto);
digitalWrite (GREENPIN, alto);
rotura;
caso 2: digitalWrite (REDPIN, LOW); Blanco a verde
digitalWrite (BLUEPIN, LOW);
digitalWrite (GREENPIN, bajo);
Delay(500);
analogWrite (GREENPIN, 255); Verde
Delay(2000);
digitalWrite (REDPIN, alto); Negro/apagado
digitalWrite (BLUEPIN, alto);
digitalWrite (GREENPIN, alto);
rotura;
caso 3: digitalWrite (REDPIN, LOW); Blanco a azul
digitalWrite (BLUEPIN, LOW);
digitalWrite (GREENPIN, bajo);
Delay(500);
analogWrite (BLUEPIN, 255); Azul
Delay(2000);
digitalWrite (REDPIN, alto); Negro/apagado
digitalWrite (BLUEPIN, alto);
digitalWrite (GREENPIN, alto);
rotura;
caso 4: / / fade de azul a violeta
para (i = 0; i < 256; i ++) {}
analogWrite (REDPIN, r);
Delay(FADESPEED);
}
se desvanecen desde el violeta hasta el rojo
para (b = 255, b > 0; b--) {}
analogWrite (BLUEPIN, b);
Delay(FADESPEED);
}
Fade de rojo a amarillo
para (g = 0 g < 256; g ++) {}
analogWrite (GREENPIN, g);
Delay(FADESPEED);
}
Fade de amarillo a verde
para (r = 255; r > 0; i--) {}
analogWrite (REDPIN, r);
Delay(FADESPEED);
}
Fade de verde a verde azulado
para (b = 0; b < 256; b ++) {}
analogWrite (BLUEPIN, b);
Delay(FADESPEED);
}
Fade de verde azulado a azul
para (g = 255, g > 0; g--) {}
analogWrite (GREENPIN, g);
Delay(FADESPEED);
}
rotura;
}