/* Colani.nl voorbeeld: RGB_LED_Fade - Rood-Groen-Blauw LED fade tussen de verschillende kleuren - Lees de comentaren achter de "//" op elke lijn hieronder - Verbindingen: LET OP: Houdt de RGB LED de pinnen naar beneden en de langste is dan 2e van links. De 4 Pinnen van links naar rechts: - Links: ROOD - Tweede: +5Volt "Common Anode" - Derde: BLAUW - Rechts: GROEN Gebaseerd op de code van Matthew L Beckler Vragen: arduino@colani.nl */ /*-----( Importeer benodigde libraries )-----*/ // Geen /*-----( Verklaren Constanten en pin Nummers )-----*/ #define redPin 3 #define bluePin 4 #define greenPin 5 #define brighter 1 //Gebruikt door SetLED_brightness functie #define dimmer 0 /*-----( Verklaren objecten )-----*/ // Geen /*-----( Verklaren variabelen )-----*/ int redValue ; // Interupt waarde van de kleur rood int greenValue; // Interupt waarde van de kleur groen int blueValue; // Interupt waarde van de kleur blauw int updateDelay; // Milliseconden wachttijd bij veranderen void setup() /****** SETUP: Start een keer ******/ { /* OPMERKING: Deze LED is "common Anode", dus de LEDs brand feller als de Arduino pin terugvalt naar 0 volts. (Dit is "omgedraaid"). Dus value=255 is UIT en value=0 in maximale lichtopbrengst. */ redValue = 255; // Starten met alle LED's uit greenValue = 255; blueValue = 255; updateDelay = 5; // Milliseconden vertraging. Hoger is ook langzamer. // Probeer voor de "updatedelay" ook eens 2. SetLED_brightness(); // Dit komt verder naar beneden }//--(einde setup )--- void loop() /****** LOOP: LOOPT CONSTAND ******/ { ColorChange(&redValue, brighter ); // Alleen Rood ColorChange(&redValue, dimmer ); delay(updateDelay * 100); ColorChange(&greenValue, brighter ); // Alleen Groen ColorChange(&greenValue, dimmer ); delay(updateDelay * 100); ColorChange(&blueValue, brighter ); // Alleen Blauw ColorChange(&blueValue, dimmer ); delay(updateDelay * 100); ColorChange(&redValue, brighter ); // Rood plus Groen = Geel ColorChange(&greenValue, brighter ); delay(updateDelay * 100); ColorChange(&blueValue, brighter ); // plus Blauw delay(updateDelay * 100); ColorChange(&redValue, dimmer ); ColorChange(&greenValue, dimmer ); ColorChange(&blueValue, dimmer ); delay(updateDelay * 200); }//--(einde main loop )--- /*-----( Verklaar Functie's )-----*/ //GEEN /*------( Deze functie update de LED aansturing)----*/ void SetLED_brightness() { analogWrite(redPin, redValue); analogWrite(greenPin, greenValue); analogWrite(bluePin, blueValue); } // Einde SetLED_brightness /*--(Update een van de kleuren )--------------------------*/ void ColorChange(int* LEDvalue, int howBright) /*--( Laat de LED volledig oplichten, of dim deze naar uit )---*/ { for (int i = 0; i < 255; i++) { if (howBright == dimmer) (*LEDvalue)++; if (howBright == brighter) (*LEDvalue)--; SetLED_brightness(); delay(updateDelay); } } //*********( EINDE )***********