#include // Example showing how to use FastLED color functions // even when you're NOT using a "pixel-addressible" smart LED strip. // // This example is designed to control an "analog" RGB LED strip // (or a single RGB LED) being driven by Arduino PWM output pins. // So this code never calls FastLED.addLEDs() or FastLED.show(). // // This example illustrates one way you can use just the portions // of FastLED that you need. In this case, this code uses just the // fast HSV color conversion code. // // In this example, the RGB values are output on three separate // 'analog' PWM pins, one for red, one for green, and one for blue. #define REDPIN 5 #define GREENPIN 6 #define BLUEPIN 3 // showAnalogRGB: this is like FastLED.show(), but outputs on // analog PWM output pins instead of sending data to an intelligent, // pixel-addressable LED strip. // // This function takes the incoming RGB values and outputs the values // on three analog PWM output pins to the r, g, and b values respectively. void showAnalogRGB( const CRGB& rgb) { analogWrite(REDPIN, rgb.r ); analogWrite(GREENPIN, rgb.g ); analogWrite(BLUEPIN, rgb.b ); } // colorBars: flashes Red, then Green, then Blue, then Black. // Helpful for diagnosing if you've mis-wired which is which. void colorBars() { showAnalogRGB( CRGB::Red ); delay(500); showAnalogRGB( CRGB::Green ); delay(500); showAnalogRGB( CRGB::Blue ); delay(500); showAnalogRGB( CRGB::Black ); delay(500); } void loop() { static uint8_t hue; hue = hue + 1; // Use FastLED automatic HSV->RGB conversion showAnalogRGB( CHSV( hue, 255, 255) ); delay(20); } void setup() { pinMode(REDPIN, OUTPUT); pinMode(GREENPIN, OUTPUT); pinMode(BLUEPIN, OUTPUT); // Flash the "hello" color sequence: R, G, B, black. colorBars(); }