/*
#include <SoftwareSerial.h>
SoftwareSerial mySerial(3,4);
#include <FastLED.h>
#define LED_PIN 0
#define NUM_LEDS 6
#define BUTTON_PIN 2
CRGB leds[NUM_LEDS];
#define BP_APPUYE 0
#define BP_RELACHE 1
int message;
int luminosite = 180;
void setup() {
mySerial.begin(9600);
pinMode(BUTTON_PIN, INPUT_PULLUP);
FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);
}
void loop() {
if(mySerial.available()>0)
{
message = mySerial.read();
switch(message){
case '3':
reactif();
break;
case '4':
reactif2();
break;
}
}
}
void reactif(){
while (BP_APPUYE == digitalRead(BUTTON_PIN)) {
luminosite = 200;
for (int i = 0; i < NUM_LEDS; i++)
leds[i] = CHSV(50, 255, luminosite);
FastLED.show();
delay(10);
}
while (BP_RELACHE == digitalRead(BUTTON_PIN)) {
for (int i = NUM_LEDS; i >= 0; i--)
leds[i].fadeToBlackBy(20);
FastLED.show();
delay(10);
}
}
void reactif2(){
while (BP_APPUYE == digitalRead(BUTTON_PIN)) {
luminosite = 200;
for (int i = 0; i < NUM_LEDS; i++)
leds[i] = CHSV(0, 255, luminosite);
FastLED.show();
delay(10);
}
while (BP_RELACHE == digitalRead(BUTTON_PIN)) {
for (int i = NUM_LEDS; i >= 0; i--)
leds[i].fadeToBlackBy(20);
FastLED.show();
delay(10);
}
}
*/
#include <Adafruit_NeoPixel.h>
Adafruit_NeoPixel strip = Adafruit_NeoPixel( 6, 12, NEO_GRB + NEO_KHZ800 );
void setup()
{
Serial.begin( 115200 );
strip.begin();
strip.show();
}
void loop()
{
uint32_t now = millis();
static uint32_t past = now;
static uint16_t interval = 10;
if ( now - past >= interval )
{
past = now;
static bool wait = false;
if ( wait == false )
{
static uint8_t brightness = 0;
static bool invert = false;
if ( ( invert == false && ++brightness == 255 )
|| ( invert == true && --brightness == 50 ) )
{
invert = !invert;
wait = true;
interval = invert ? random( 2000, 2500 ) : random( 800, 1500 );
Serial.print( "Fade" );
Serial.print( invert ? "In" : "Out" );
Serial.println( " finished, waiting" );
}
strip.setPixelColor( 0, brightness, brightness, brightness );
strip.setPixelColor( 1, brightness, brightness, brightness );
strip.setPixelColor( 2, brightness, brightness, brightness );
strip.setPixelColor( 3, brightness, brightness, brightness );
strip.setPixelColor( 4, brightness, brightness, brightness );
strip.setPixelColor( 5, brightness, brightness, brightness );
strip.show();
}
else
{
wait = false;
interval = random( 15, 25 );
Serial.println( "Wait finished" );
}
}
}