display
Deutsch   English   

6. Farb-LEDs

 

 

DU LERNST HIER...

 

wie Farben aus einer roten, einer grünen und einer blauen Komponente zusammengesetzt werden und du die Farb-LEDs mit der gewünschten Farbe leuchten lässt.

 

 

RGB-LED

  Um Farbbilder mit dem Computer zu speichern und zu verarbeiten, müssen die Farben als Zahlen definiert werden. Es gibt dazu mehrere Möglichkeiten. Die bekannteste ist das RGB-Farbmodell, wo die Intensitäten der drei Farbkomponenten Rot, Grün und Blau als Zahlen zwischen 0 und 255 angegeben werden.

Mit der Farb-LED des Calliope kannst du mit den Farben im RGB-Modell experimentieren.

Der Befehl
set_colors(r, g, b)
wo r, g, und b Zahlen zwischen 0 und 255 sind, legt die rote, grüne und blaue Farbkomponente fest.

 

 

Der Calliope_mini 3 verfügt über drei RGB-LEDs. Diese werden als Neopixel angesprochen. Du kannst die LEDs einzeln in drei verschiedenen Farben einschalten:

np = NeoPixel(pin_RGB, 3)
np[0] = (r, g ,b)
np[1] = (r, g ,b)
np[2] = (r, g ,b)
np.show()

Mit dem Befehl fill() erhalten alle drei LEDs die gleiche Farbe:

np = NeoPixel(pin_RGB, 3)
np.fill((r, g, b))
np.show()

Da der Befehl fill() als Parameter einen Farb-Tuppel oder eine Farb-Liste erwartet, ist eine doppelte Klammer notwendig.

 


 

MUSTERBEISPIELE

 

Beispiel 1: Farb-LED in verschiedenen Farben leuchten lassen
Die Farb-LED des Calliope mini leuchtet der Reihe nach in den Farben rot, grün, blau, gelb, magenta und cyan jeweils während 1000 Millisekunden und schaltet dann ab.

 




Programm:

from calliope_mini import *

led.set_colors(255, 0, 0)
sleep(1000)    
led.set_colors(0, 255, 0)
sleep(1000)    
led.set_colors(0, 0, 255)
sleep(1000) 
led.set_colors(255, 255, 0)
sleep(1000)
led.set_colors(255, 0, 255)
sleep(1000) 
led.set_colors(0, 255, 255)
sleep(1000) 
led.set_colors(0, 0, 0) 
► In Zwischenablage kopieren

Für Calliope_mini 3 musst du das Programm entsprechend anpassen. Hier leuchten die LEDs zuerst 2 Sekunden in drei verschiedenen Farben: die erste rot, zweite grün und die dritte blau. Danach leuchten alle drei 2 s hellblau und 2 s violett.

Programm:

from calliope_mini import *
from neopixel import *

np = NeoPixel(pin_RGB, 3)
np[0] = (100, 0 ,0)
np[1] = (0, 100 ,0)
np[2] = (0, 0 ,100)
np.show()
sleep(2000)
np.fill((0, 100, 100))
np.show()
sleep(2000)
np.fill((100, 0, 100))
np.show()
sleep(2000)
np.fill((0, 0, 0))
np.show()
► In Zwischenablage kopieren

Wenn du für die Farbkomponenten die maximal mögliche Zahl 255 wählst, leuchten die LEDs sehr hell. Es ist besser kleinere Zahlen, z. B. 100 zu wählen.

 

Beispiel 2: LEDs in zufällig gewählten Farben leuchten lassen

Hier soll die FarbLED bzw. die drei LEDs des Calliope 3 in zufällig gewählten Farben jeweils 500 ms lang leuchten. Die Farbkomponenten r, g, b bestimmst du in der Funktion randomColor() mit drei Zufallszahlen im Bereich 0 ... ... 100.

Durch Drücken des Buttons A beendest du das Farbspiel.
 

Programm:

from calliope_mini import *
from random import randint

def randomColor():
    r = randint(0, 100)
    g = randint(0, 100)
    b = randint(0, 100)
    led.set_colors(r, g, b)
    
while not button_a.was_pressed():
     randomColor()
     sleep(500)       
led.set_color(0, 0, 0) 
► In Zwischenablage kopieren

Programm für Calliope 3:

from calliope_mini import *
from random import randint
from neopixel import *

def randomColor():
    r = randint(0, 100)
    g = randint(0, 100)
    b = randint(0, 100)
    np.fill((r, g, b))
    np.show()
    
np = NeoPixel(pin_RGB, 3)    
while not button_a.was_pressed():
     randomColor()
     sleep(500)
     np.fill((0, 0, 0))
     np.show()
► In Zwischenablage kopieren

Beispiel 3: Farb-LED des Calliope für eine Spannungsanzeige verwenden
Der Calliope kann auch für physikalische Experimente verwendet werden, beispielsweise um Spannungen eines Sensors im Bereich 0...3.3V zu messen.

Berührst du gleichzeitig den Anschluss + (3.3V) und den Pin 1, so ergibt sich ein Stromkreis und die Spannung am Pin 1 steigt an.
Der Befehl pin1.read_analog() gibt die Spannung als Zahl zwischen 0 und 1023 zurück.

In deinem Programm leuchtet die LED ohne Stromkreis blau, beim Berühren des Pin 1 grün und beim Berühren des Pin 2 rot.

 

Programm:

from calliope_mini import *

while True:
    if pin1.read_analog() > 400:
        led.set_colors(0, 255, 0)
    elif pin2.read_analog() > 400:
        led.set_colors(255, 0, 0)   
    else:
        led.set_colors(0, 0, 255)          
    sleep(100)
► In Zwischenablage kopieren

Beispiel 4: Calliope mini 3: Farbe der drei LEDs dynamisch ändern

Die drei LEDs leuchten zu Beginn hellblau (cyan). In einer repeat-Schleife wird in 100 Schritten die grüne Farbkomponente verkleinert und die rote vergrössert. Dann leuchten die LEDs violett.

 

Programm:

from calliope_mini import *
from neopixel import *

np = NeoPixel(pin_RGB, 3)
r = 0
g = b = 100

repeat 100:
    g -= 1
    r += 1 
    np.fill((r, g, b))
    np.show()
    sleep(50)
► In Zwischenablage kopieren

 

 

MERKE DIR...

 

Die Farbe einer Farb-LED legst du durch die rote, grüne und blaue Farbkomponente (eine Zahl zwischen 0 und 255) fest. Da die LED sehr hell leuchtet, ist es besser Zahlen zwischen 0 un 100 zu verwenden.
Calliope Mini 3 verfügt über drei RGB-LEDs. Du importierst das Modul neopixel und wählst die Farben der einzelnen LEDs oder für alle drei LEDs zusammen mit dem Befehl fill().

 

 

ZUM SELBST LÖSEN

 

 

1.
Schreibe ein Programm, mit dem die Farb-LED nacheinander in Regenbogenfarben leuchtet. Wiederhole diese Farbfolge 3 mal. Verwende die nebenstehende Zuordnung der Farben.  

2.

Wenn du den Button A drückst, soll die Farb-LED in der Farbe magenta, beim Drücken des Buttons B mit der Farbe cyan leuchten. Damit die LED nicht zu hell leuchtet, wählst du für die Farbkomponenten höchsten einen Wert von 100.

3.

Wenn du mit den Fingerspitzen Pin + und Pin 1 berührst, blinkt die Farb-LED rot, wenn du Pin + und Pin 2 berührst, so blinkt sie blau, bei der Berührung des Pin + und Pin 3 blinkt sie grün.

4.

In einer endlosen while-Schleife soll die Farb-LED mit weisser Farbe das Signal SOS senden, wobei sie bei S dreimal kurz (200 ms) und bei O dreimal lange (600 ms) leuchten soll. Nach jedem SOS Signal folgt eine Pause.

5.

Use example 4 for Calliope 3 as a template. All three LEDs should change color dynamically. First they all light up red, then green, then blue and finally violet.