Eine RGB-LED Bibliothek für den Arduino

Um den Umgang mit mehreren RGB-Strips oder einzelnen RGB-LEDs zu vereinfachen habe ich eine kleine RGB-Bibliothek geschrieben. Diese enthält Funktionen zum direkten Setzen von Farben im RGB- oder HSV-Farbmodell, sowie Funktionen zur Animation von Farbübergängen. Die Bibliothek befindet sich in einer Beta-Phase, wird ständig weiterentwickelt, kann aber schon verwendet werden.

Funktionen:

setRGB( int r, int g, int b )
setR( int r )
setG( int g )
setB( int b )

setHSV( float h, float s, float v )

animateStart()
animateStop()
animateColorsClear()
animateColorAdd( int col1, int col2, int col3, int t, int num=-1 )
animateSpeedSet( int speed )
animateColorTypeSet( byte type )

setBrightnessRGB( int r, int g, int b )
useBrightnessAdjust( boolean isAdjust )

Beschreibungen:

setRGB( int r, int g, int b )

Setzt eine Farbe nach dem RGB-Farbmodell und stoppt eine eventuelle Animation.

Parameter: jeweils von 0-255 (0 ist aus, 255 höchste Farbhelligkeitsstufe)

  • r = Rot
  • g = Grün
  • b = Blau

Rückgabewert: keiner


setR( int r )

Setzt den Rotanteil nach dem RGB-Farbmodell und stoppt eine eventuelle Animation.

Parameter: r = Rot, von 0-255 (0 ist aus, 255 höchste Farbhelligkeitsstufe)
Rückgabewert: keiner


setG( int g )

Setzt den Grünanteil nach dem RGB-Farbmodell und stoppt eine eventuelle Animation.
Parameter:
 g = Grün, 0-255 (0 ist aus, 255 höchste Farbhelligkeitsstufe)
Rückgabewert: keiner


setB( int b )

Setzt den Blauanteil nach dem RGB-Farbmodell.
Parameter:
 b = Blau, von 0-255 (0 ist aus, 255 höchste Farbhelligkeitsstufe)
Rückgabewert: keiner


setHSV( float h, float s, float v )

Setzt eine Farbe nach dem HSV-Farbmodell und  und stoppt eine eventuelle Animation.
Parameter:

  • h = Farbwert als Farbwinkel H (engl. Hue) 0-360 auf dem Farbkreis (etwa 0° für Rot, 120° für Grün, 240° für Blau)
  • s = Sättigung S (engl. Saturation)  0-100 in Prozent (0 = Grau, 50 = wenig gesättigte Farbe, 100 = reine Farbe )
  • v =  Helligkeit V (engl. Value) 0-100 als Prozentwert (0 = keine Helligkeit, 100 = volle Helligkeit)

Rückgabewert: keiner


animateStart()

Startet eine Farbübergangsanimation, funktioniert natürlich nur wenn mindestens 2 Farben definiert sind.


animateStop()

Stoppt eine Farbübergangsanimation. Wird später animateStart() aufgerufen wird die Farbübergangsanimation an der selben Stelle wieder fortgesetzt.


animateColorsClear()

Löscht sämtliche Farben einer Animation und hält eine laufende Animation dadurch natürlich auch an.


animateColorAdd( int col1, int col2, int col3, int t, int num=-1 )

Fügt eine Farbe zur Animationsliste hinzu. Die Farben sind abhängig vom aktuell eingestellten Animationsfarbmodell.
Parameter:

  • col1-col3 je nach eingestelltem Farbmodell (r,g,b oder h,s,v)
  • t – Anzahl der Stufen des Farbübergangs zum Erreichen der Farbe (col1-col3)
  • num=-1 -> Farbe wird am Ende hinzugefügt, num 0-… Farbe wird ersetzt

Rückgabewert: boolean

  • true wenn Farbe erfolgreich hinzugefügt wurde
  • false bei einem eventuellen Fehler (Farbe wurde nicht hinzugefügt bzw. ersetzt)

animateSpeedSet( int speed )

Ändert die globale Geschwindigkeit des eingestellten Farbübergangs.
Parameter: speed
Rückgabewert: keiner


animateColorTypeSet( byte type )

Fügt eine Farbe zur Animationsliste hinzu. Die Farben sind abhängig vom aktuell eingestellten Animationsfarbmodell.
Parameter: type ist Konstante: ANIMATETYPE_RGB für RGB oder ANIMATETYPE_HSV
Rückgabewert: keiner


setBrightnessRGB( int r, int g, int b )

Diese Funktion dient zum “Eichen” des RGB-Strips. Wenn alle Werte perfekt gesetzt sind, so sollte der Strip in reinem Weiß und gleichzeitig am Hellsten leuchten. Der Aufruf der Funktion führt dazu, dass die Eichfunktion auch sofort angewendet wird.


useBrightnessAdjust( boolean isAdjust )

Schaltet die Eichfunktion, welche per setBrightnessRGB definiert wird, an oder aus.
Parameter: isAdjust = true / false

  • true: Eichfunktion an
  • false: Eichfunktion wird nicht angewendet

Rückgabewert: keiner


Downloads:

  • simtronyx_RGB_LED_v0.8.zip – Version 0.8
    (bitte vorher darauf achten ob die Beispiele in den Artikeln die selbe Version verwenden)

Projekte mit der simtronyx_RGB_LED-Bibliothek:

Weiterführende Projekte:

Bauteile (Bezugsquellen):

eBay: RGB LED Strip
Amazon: RGB LED Strip

Gut?

Facebooktwittergoogle_plusredditpinterestlinkedinmailFacebooktwittergoogle_plusredditpinterestlinkedinmail