Created
January 5, 2011 20:59
-
-
Save jimsynz/766994 to your computer and use it in GitHub Desktop.
Arduino sketch to cycle an RGB LED through the colour spectrum.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const int redPin = 11; | |
const int greenPin = 10; | |
const int bluePin = 9; | |
void setup() { | |
// Start off with the LED off. | |
setColourRgb(0,0,0); | |
} | |
void loop() { | |
unsigned int rgbColour[3]; | |
// Start off with red. | |
rgbColour[0] = 255; | |
rgbColour[1] = 0; | |
rgbColour[2] = 0; | |
// Choose the colours to increment and decrement. | |
for (int decColour = 0; decColour < 3; decColour += 1) { | |
int incColour = decColour == 2 ? 0 : decColour + 1; | |
// cross-fade the two colours. | |
for(int i = 0; i < 255; i += 1) { | |
rgbColour[decColour] -= 1; | |
rgbColour[incColour] += 1; | |
setColourRgb(rgbColour[0], rgbColour[1], rgbColour[2]); | |
delay(5); | |
} | |
} | |
} | |
void setColourRgb(unsigned int red, unsigned int green, unsigned int blue) { | |
analogWrite(redPin, red); | |
analogWrite(greenPin, green); | |
analogWrite(bluePin, blue); | |
} |
for states :
255, 0, 0
255, 255, 0
0, 255, 0
0, 255, 255
0, 0, 255
255, 0, 255
255, 0, 0
void loop() {
unsigned int rgbColour[3];
// Start off with red.
rgbColour[0] = 255;
rgbColour[1] = 0;
rgbColour[2] = 0;
int decColour =0;
int incColour =1;
void loop() {
if (255<=rgbColour[incColour]) {
if (0>=rgbColour[decColour]) {
decColour++; decColour %= 3;
incColour++; incColour %= 3;
} else // if (0==rgbColour[decColour]) {
rgbColour[decColour] -= 15; // --
} else // if (255==rgbColour[incColour]) {
rgbColour[incColour] += 15; // ++
setColourRgb(rgbColour[0], rgbColour[1], rgbColour[2]);
delay(5);
}
}
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Another kinds of colour cycle
it might ignore darker shade problem
but it's total different spectrum with original