Stap 2: Hier is de code
/** Van Arduino kookboek, recept 7.4 (Open Source), Michael Margolis
* RGB_LEDs schets
* RGB LEDs verdreven analoge output poorten
*/
Const int redPin = 3; Kies de pin voor elk van de LED 's
Const int greenPin = 5;
Const int bluePin = 6;
Const omkeren van Boole = vals; instellen van de eigenschap is true als gemeenschappelijk anode, false als gemeenschappelijke kathode
int kleur = 0; een waarde tussen 0 en 255 vertegenwoordigen de tint
int R, G, B; de kleurcomponenten rood, groen en blauw
VOID Setup
{
pinnen gedreven door analogWrite hoeft niet te worden gedeclareerd als uitgangen
}
void loop
{
int helderheid = 255; 255 is maximale helderheid
hueToRGB (kleur, helderheid); Wachtfunctieopti tint converteren naar RGB
de RGB-waarden naar de pennen schrijven
analogWrite (redPin, R);
analogWrite (greenPin, G);
analogWrite (bluePin, B);
kleur ++; _ / / verhogen de kleur
if(Color > 255)
kleur = 0;
delay(50);
}
functie voor het converteren van een kleur naar de componenten rood, groen en blauw.
VOID hueToRGB (int tint, int helderheid)
{
unsigned int scaledHue = (kleurtoon * 6);
unsigned int segment = scaledHue / 256; segment van 0 tot en met 5 rond de
kleurenwiel
unsigned int segmentOffset =
scaledHue - (segment * 256); positie in het segment
unsigned int aanvulling = 0;
unsigned int prev = (helderheid * (255 - segmentOffset)) / 256;
unsigned int volgende = (helderheid * segmentOffset) / 256;
if(Invert)
{
helderheid = 255-helderheid;
aanvulling = 255;
Prev = 255-prev;
volgende = 255-next;
}
schakelaar (segment) {}
geval van 0: / / rood
R = helderheid;
G = next;
B = complement;
breken;
geval 1: / / geel
R = prev;
G = helderheid;
B = complement;
breken;
geval 2: / / groen
R = complement;
G = helderheid;
B = next;
breken;
Case 3: / / cyaan
R = complement;
G = prev;
B = helderheid;
breken;
geval 4: / / blauw
R = next;
G = complement;
B = helderheid;
breken;
geval 5: / / magenta
standaard:
R = helderheid;
G = complement;
B = prev;
breken;
}
}