Stap 4: De Code
/*
Op basis van Adafruit Arduino - Les 3. RGB-LED
https://Learn.adafruit.com/adafruit-Arduino-Lesson-3-RGB-LEDs/Arduino-Sketch
Programma om te variëren van kleuren op RGB LED met behulp van sinewaves
Door Ray Houghton
Aarzel niet om gebruik van deze software of muck over met
Als u alstublieft.
*/
int redPin = 11;
int greenPin = 10;
int bluePin = 9;
float t;
/ * Output pinnen voor LEDs (dit zijn alle PWM-uitgangen * /
uncomment deze lijn als met behulp van een gemeenschappelijk Anode-LED
#define COMMON_ANODE
VOID Setup
{
pinMode (redPin, OUTPUT);
pinMode (greenPin, OUTPUT);
pinMode (bluePin, OUTPUT);
pennen voor uitvoer instellen
}
void loop
{
voor (t = 0, t < 1000; t = t + 0.001)
momentane tijdselement van sinus functies ingesteld.
{
/ * Sinus functies variëren van de PWM-uitgangen zijn van het formulier
offset + amplitude * sin (2 * pi * F * t)
Waar verschuiving zorgt voor sinewave niet gaan kleiner dan nul en
waar F is de gewenste frequentie
Opmerking: Rood groen en blauw zijn verschillende helderheden met RGB-LEDs,
dus verschuiving en amplitude worden aangepast om dit te compenseren.
*/
int redsat = 126 + 126*sin(2*3.141592654*0.03*t);
int greensat = 64 + 64*sin(2*3.141592654*0.027*t);
int bluesat = 32 + 32*sin(2*3.141592654*0.025*t);
Oproep functie setColor
setColor (redsat, greensat, bluesat);
delay(1);
}
}
VOID setColor (int rood, int groene, blauwe int)
{
#ifdef COMMON_ANODE
rood = 255 - rood;
groen = 255 - groen;
blauw = 255 - blauw;
#endif
analogWrite (redPin, rood);
analogWrite (greenPin, groene);
analogWrite (bluePin, blauw);
}