KY-009 RGB LED SMD Modul: Unterschied zwischen den Versionen

Aus Linkerkit.de

Wechseln zu: Navigation, Suche
(Codebeispiel Raspberry Pi)
(Codebeispiel Arduino)
 
(7 dazwischenliegende Versionen des gleichen Benutzers werden nicht angezeigt)
Zeile 44: Zeile 44:
 
int Led_Gruen = 11;
 
int Led_Gruen = 11;
 
int Led_Blau = 12;
 
int Led_Blau = 12;
 
+
 
void setup ()
 
void setup ()
 
{
 
{
Zeile 52: Zeile 52:
 
   pinMode (Led_Blau, OUTPUT);  
 
   pinMode (Led_Blau, OUTPUT);  
 
}
 
}
 
+
 
void loop () //Hauptprogrammschleife
 
void loop () //Hauptprogrammschleife
 
{
 
{
Zeile 59: Zeile 59:
 
   digitalWrite (Led_Blau, LOW); // LED wird eingeschaltet
 
   digitalWrite (Led_Blau, LOW); // LED wird eingeschaltet
 
   delay (3000); // Wartemodus für 3 Sekunden
 
   delay (3000); // Wartemodus für 3 Sekunden
 
+
 
   digitalWrite (Led_Rot, LOW); // LED wird eingeschaltet
 
   digitalWrite (Led_Rot, LOW); // LED wird eingeschaltet
 
   digitalWrite (Led_Gruen, HIGH); // LED wird eingeschaltet
 
   digitalWrite (Led_Gruen, HIGH); // LED wird eingeschaltet
 +
  digitalWrite (Led_Blau, LOW); // LED wird eingeschaltet
 +
  delay (3000); // Wartemodus für weitere drei Sekunden in denen die LEDs dann umgeschaltet werden
 +
 
 +
  digitalWrite (Led_Rot, LOW); // LED wird eingeschaltet
 +
  digitalWrite (Led_Gruen, LOW); // LED wird eingeschaltet
 
   digitalWrite (Led_Blau, HIGH); // LED wird eingeschaltet
 
   digitalWrite (Led_Blau, HIGH); // LED wird eingeschaltet
   delay (3000); // Wartemodus für weitere zwei Sekunden in denen die LEDs dann umgeschaltet sind
+
   delay (3000); // Wartemodus für weitere drei Sekunden in denen die LEDs dann umgeschaltet werden
 
}
 
}
 
</pre>
 
</pre>
 
'''Beispielprogramm ON/OFF Download:'''
 
'''Beispielprogramm ON/OFF Download:'''
  
[[Medium:KY-011_LED_ON-OFF.zip|KY-011_LED_ON-OFF.zip]]
+
[[Medium:KY-009_LED_ON-OFF.zip|KY-009_LED_ON-OFF.zip]]
  
  
Zeile 90: Zeile 95:
 
}
 
}
 
void loop () {
 
void loop () {
   // Innerhalb einer For-Schleife werden den beiden LEDs verschiedene PWM-Werte uebergeben
+
   // Innerhalb einer For-Schleife werden den drei LEDs verschiedene PWM-Werte uebergeben
 
   // Dadurch entsteht ein Farbverlauf, in dem sich durch das Vermischen unterschiedlicher  
 
   // Dadurch entsteht ein Farbverlauf, in dem sich durch das Vermischen unterschiedlicher  
 
   // Helligkeitstufen der beiden integrierten LEDs, unterschiedliche Farben entstehen
 
   // Helligkeitstufen der beiden integrierten LEDs, unterschiedliche Farben entstehen
Zeile 112: Zeile 117:
 
'''Beispielprogramm PWM Download:'''
 
'''Beispielprogramm PWM Download:'''
  
[[Medium:KY-011_PWM.zip|KY-011_PWM.zip]]
+
[[Medium:KY-009_PWM.zip|KY-009_PWM.zip]]
  
  
Zeile 188: Zeile 193:
 
Zu starten mit dem Befehl:
 
Zu starten mit dem Befehl:
  
<pre class="brush:bash">sudo python KY011_RPI_ON-OFF.py
+
<pre class="brush:bash">sudo python KY009_RPI_ON-OFF.py
 
</pre>
 
</pre>
  
Zeile 200: Zeile 205:
 
import random, time  
 
import random, time  
 
import RPi.GPIO as GPIO
 
import RPi.GPIO as GPIO
+
 
 
GPIO.setmode(GPIO.BCM)  
 
GPIO.setmode(GPIO.BCM)  
 
+
 
# Hier werden die Ausgangs-Pin deklariert, an dem die LEDs angeschlossen sind.
 
# Hier werden die Ausgangs-Pin deklariert, an dem die LEDs angeschlossen sind.
LED_Rot = 6  
+
LED_Rot = 6
 
LED_Gruen = 5
 
LED_Gruen = 5
 
LED_Blau = 4
 
LED_Blau = 4
+
 
# Hier werden die Ausgangs-Pin deklariert, an dem die LEDs angeschlossen sind.
+
# Set pins to output mode
 
GPIO.setup(LED_Rot, GPIO.OUT)  
 
GPIO.setup(LED_Rot, GPIO.OUT)  
 
GPIO.setup(LED_Gruen, GPIO.OUT)
 
GPIO.setup(LED_Gruen, GPIO.OUT)
 
GPIO.setup(LED_Blau, GPIO.OUT)
 
GPIO.setup(LED_Blau, GPIO.OUT)
+
 
 
Freq = 100 #Hz
 
Freq = 100 #Hz
+
 
 
# Die jeweiligen Farben werden initialisiert.
 
# Die jeweiligen Farben werden initialisiert.
 
ROT = GPIO.PWM(LED_Rot, Freq)  
 
ROT = GPIO.PWM(LED_Rot, Freq)  
Zeile 221: Zeile 226:
 
ROT.start(0)   
 
ROT.start(0)   
 
GRUEN.start(0)
 
GRUEN.start(0)
+
BLAU.start(0)
 +
 
 
# Diese Funktion generiert die eigentliche Farbe
 
# Diese Funktion generiert die eigentliche Farbe
 
# Mittels der jeweiligen Farbvariable, kann die Farbintensitaet geaendert werden
 
# Mittels der jeweiligen Farbvariable, kann die Farbintensitaet geaendert werden
 
# Nachdem die Farbe eingestellt wurde, wird mittels "time.sleep" die Zeit definiert,
 
# Nachdem die Farbe eingestellt wurde, wird mittels "time.sleep" die Zeit definiert,
 
# wie lang die besagte Farbe angezeigt werden soll
 
# wie lang die besagte Farbe angezeigt werden soll
 
+
 
def LED_Farbe(Rot, Gruen,Blau, pause):
 
def LED_Farbe(Rot, Gruen,Blau, pause):
 
     ROT.ChangeDutyCycle(Rot)
 
     ROT.ChangeDutyCycle(Rot)
 
     GRUEN.ChangeDutyCycle(Gruen)
 
     GRUEN.ChangeDutyCycle(Gruen)
 +
    BLAU.ChangeDutyCycle(Blau)
 
     time.sleep(pause)
 
     time.sleep(pause)
 
+
 
     ROT.ChangeDutyCycle(0)
 
     ROT.ChangeDutyCycle(0)
 
     GRUEN.ChangeDutyCycle(0)
 
     GRUEN.ChangeDutyCycle(0)
 
+
 
 
print "LED-Test [druecken Sie STRG+C, um den Test zu beenden]"
 
print "LED-Test [druecken Sie STRG+C, um den Test zu beenden]"
+
 
 
# Hauptprogrammschleife:
 
# Hauptprogrammschleife:
 
# Diese hat die Aufgabe fuer jede einzelne Farbe eine eigene Variable zu erstellen
 
# Diese hat die Aufgabe fuer jede einzelne Farbe eine eigene Variable zu erstellen
Zeile 243: Zeile 250:
 
# entsteht somit ein Farbverlauf
 
# entsteht somit ein Farbverlauf
 
try:
 
try:
while True:
+
    while True:
for x in range(0,2):
+
        for x in range(0,2):
for y in range(0,2):
+
            for y in range(0,2):
for z in range(0,2):
+
                for z in range(0,2):
print (x,y,z)
+
                    print (x,y,z)
for i in range(0,101):
+
                    for i in range(0,101):
LED_Farbe((x*i),(y*i),(z*i),.02)
+
                        LED_Farbe((x*i),(y*i),(z*i),.02)
+
 
 
# Aufraeumarbeiten nachdem das Programm beendet wurde
 
# Aufraeumarbeiten nachdem das Programm beendet wurde
 
except KeyboardInterrupt:
 
except KeyboardInterrupt:
Zeile 259: Zeile 266:
 
[[Medium:KY-009_RPi_PWM.zip|KY-009_RPi_PWM.zip]]
 
[[Medium:KY-009_RPi_PWM.zip|KY-009_RPi_PWM.zip]]
  
 +
Zu starten mit dem Befehl:
  
 +
<pre class="brush:bash">sudo python KY-009_RPi_PWM.py
 +
</pre>
  
 
'''Anschlussbelegung Raspberry Pi:'''
 
'''Anschlussbelegung Raspberry Pi:'''

Aktuelle Version vom 21. März 2016, 10:38 Uhr

Bild

ky-007.jpg

Technische Daten / Kurzbeschreibung

LED-Modul welche eine rote, blaue und grüne LED beinhaltet. Diese sind mittels gemeinsamer Kathode miteinander verbunden. Je nach Eingangsspannung, werden Vorwiderstände benötigt


Vf [Rot]= 1,8V

Vf [Gruen,Blau]= 2,8V

If= 20mA


Vorwiderstände:

Rf (3,3V) [Grün]= 100Ω

Rf (3,3V) [Rot]= 180Ω

Rf (3,3V) [Blau]= 100Ω

[z.B. beim Einsatz mit ARM CPU-Kern basierten Mikrokontrollern wie Raspberry-Pi]


Rf (5V) [Grün] = 100Ω 

Rf (5V) [Rot] = 180Ω 

Rf (5V) [Blau] = 100Ω 

[z.B. beim Einsatz mit Atmel Atmega basierten Mikrokontrollern wie Arduino]

Pin-Belegung

4 G LG LR LB.png

Codebeispiel Arduino

Codebeispiel ON/OFF

Dieses Codebeispiel zeigt auf, wie die integrierten LEDs mittels eines definierbaren Ausgangspins abwechselnd, in 3 Sekunden Takt, angeschaltet werden können.

int Led_Rot = 10;
int Led_Gruen = 11;
int Led_Blau = 12;
 
void setup ()
{
  // Initialisierung Ausgangspins für die LEDs
  pinMode (Led_Rot, OUTPUT); 
  pinMode (Led_Gruen, OUTPUT);
  pinMode (Led_Blau, OUTPUT); 
}
 
void loop () //Hauptprogrammschleife
{
  digitalWrite (Led_Rot, HIGH); // LED wird eingeschaltet
  digitalWrite (Led_Gruen, LOW); // LED wird eingeschaltet
  digitalWrite (Led_Blau, LOW); // LED wird eingeschaltet
  delay (3000); // Wartemodus für 3 Sekunden
 
  digitalWrite (Led_Rot, LOW); // LED wird eingeschaltet
  digitalWrite (Led_Gruen, HIGH); // LED wird eingeschaltet
  digitalWrite (Led_Blau, LOW); // LED wird eingeschaltet
  delay (3000); // Wartemodus für weitere drei Sekunden in denen die LEDs dann umgeschaltet werden
  
  digitalWrite (Led_Rot, LOW); // LED wird eingeschaltet
  digitalWrite (Led_Gruen, LOW); // LED wird eingeschaltet
  digitalWrite (Led_Blau, HIGH); // LED wird eingeschaltet
  delay (3000); // Wartemodus für weitere drei Sekunden in denen die LEDs dann umgeschaltet werden
}

Beispielprogramm ON/OFF Download:

KY-009_LED_ON-OFF.zip


Codebeispiel PWM

Mittels Puls-Weiten-Modulation [PWM] lässt sich die Helligkeit einer LED regulieren - dabei wird die LED in bestimmten Zeitintervallen ein und ausgeschaltet, wobei das Verhältnis der Einschalt- und Ausschaltzeit einer relativen Helligkeit entspricht - aufgrund der Trägheit des menschlichen Sehvermögens, interpretieren die menschlichen Augen ein solches Ein-/Ausschaltverhalten als Helligkeitsänderung. Nähere Informationen zu diesem Thema finden Sie in diesem [Artikel von mikrokontroller.net].

In diesem Modul sind mehrere LEDs integriert - durch die Überlagerung von unterschiedlichen Helligkeitsstufen lassen sich somit verschiedene Farben kreieren. Dieses wird im folgenden Codebeispiel gezeigt.

int Led_Rot = 10;
int Led_Gruen = 11;
int Led_Blau = 12;

int val;

void setup () {
  // Initialisierung Ausgangspins für die LEDs
  pinMode (Led_Rot, OUTPUT); 
  pinMode (Led_Gruen, OUTPUT); 
  pinMode (Led_Blau, OUTPUT); 
}
void loop () {
   // Innerhalb einer For-Schleife werden den drei LEDs verschiedene PWM-Werte uebergeben
   // Dadurch entsteht ein Farbverlauf, in dem sich durch das Vermischen unterschiedlicher 
   // Helligkeitstufen der beiden integrierten LEDs, unterschiedliche Farben entstehen
   for (val = 255; val> 0; val--)
      {
       analogWrite (Led_Blau, val);
       analogWrite (Led_Gruen, 255-val);
       analogWrite (Led_Rot, 128-val);
       delay (1);
   }
   // In der zweiten For-Schleife wird der Farbverlauf rückwärts durchgegangen
   for (val = 0; val <255; val++)
      {
      analogWrite (Led_Blau, val);
      analogWrite (Led_Gruen, 255-val);
      analogWrite (Led_Rot, 128-val);
      delay (1);
   }
}

Beispielprogramm PWM Download:

KY-009_PWM.zip


Anschlussbelegung Arduino:

LED Rot = [Pin 10]
LED Grün = [Pin 11]
LED Blau = [Pin 12]
Sensor GND = [Pin GND]

Codebeispiel Raspberry Pi

Codebeispiel ON/OFF

Dieses Codebeispiel zeigt auf, wie die integrierten LEDs mittels eines definierbaren Ausgangspins abwechselnd, in 3 Sekunden Takt, angeschaltet werden können.

# Benoetigte Module werden importiert und eingerichtet
import RPi.GPIO as GPIO
import time
  
GPIO.setmode(GPIO.BCM)
  
# Hier werden die Ausgangs-Pin deklariert, an dem die LEDs angeschlossen sind.
LED_ROT = 6
LED_GRUEN = 5
LED_BLAU = 4

GPIO.setup(LED_ROT, GPIO.OUT, initial= GPIO.LOW)
GPIO.setup(LED_GRUEN, GPIO.OUT, initial= GPIO.LOW)
GPIO.setup(LED_BLAU, GPIO.OUT, initial= GPIO.LOW)
  
print "LED-Test [druecken Sie STRG+C, um den Test zu beenden]"
 
# Hauptprogrammschleife
try:
        while True:
			print("LED ROT 3 Sekunden an")
			GPIO.output(LED_ROT,GPIO.HIGH) #LED wird eingeschaltet
			GPIO.output(LED_GRUEN,GPIO.LOW) #LED wird eingeschaltet
			GPIO.output(LED_BLAU,GPIO.LOW) #LED wird eingeschaltet
			time.sleep(3) # Wartemodus fuer 4 Sekunden
			print("LED GRUEN 3 Sekunden an") 
			GPIO.output(LED_ROT,GPIO.LOW) #LED wird eingeschaltet
			GPIO.output(LED_GRUEN,GPIO.HIGH) #LED wird eingeschaltet
			GPIO.output(LED_BLAU,GPIO.LOW) #LED wird eingeschaltet
			time.sleep(3) #Wartemodus fuer 3 Sekunden
			print("LED BLAU 3 Sekunden an") 
			GPIO.output(LED_ROT,GPIO.LOW) #LED wird eingeschaltet
			GPIO.output(LED_GRUEN,GPIO.LOW) #LED wird eingeschaltet
			GPIO.output(LED_BLAU,GPIO.HIGH) #LED wird eingeschaltet
			time.sleep(3) #Wartemodus fuer 3 Sekunden
  
# Aufraeumarbeiten nachdem das Programm beendet wurde
except KeyboardInterrupt:
        GPIO.cleanup()

Beispielprogramm ON/OFF Download

KY009_RPi_ON-OFF.zip

Zu starten mit dem Befehl:

sudo python KY009_RPI_ON-OFF.py

Codebeispiel PWM

Mittels Puls-Weiten-Modulation [PWM] lässt sich die Helligkeit einer LED regulieren - dabei wird die LED in bestimmten Zeitintervallen ein und ausgeschaltet, wobei das Verhältnis der Einschalt- und Ausschaltzeit einer relativen Helligkeit entspricht - aufgrund der Trägheit des menschlichen Sehvermögens, interpretieren die menschlichen Augen ein solches Ein-/Ausschaltverhalten als Helligkeitsänderung. Nähere Informationen zu diesem Thema finden Sie in diesem [Artikel von mikrokontroller.net].

In diesem Modul sind mehrere LEDs integriert - durch die Überlagerung von unterschiedlichen Helligkeitsstufen lassen sich somit verschiedene Farben kreieren. Dieses wird im folgenden Codebeispiel gezeigt. Im Raspberry Pi ist nur ein Hardware-PWM Channel uneingeschränkt auf die GPIO-Pins hinausgeführt, weswegen im vorliegenden Beispiel auf Software-PWM zurückgegriffen wird.

# Benoetigte Module werden importiert und eingerichtet
import random, time 
import RPi.GPIO as GPIO
  
GPIO.setmode(GPIO.BCM) 
 
# Hier werden die Ausgangs-Pin deklariert, an dem die LEDs angeschlossen sind.
LED_Rot = 6
LED_Gruen = 5
LED_Blau = 4
  
# Set pins to output mode
GPIO.setup(LED_Rot, GPIO.OUT) 
GPIO.setup(LED_Gruen, GPIO.OUT)
GPIO.setup(LED_Blau, GPIO.OUT)
  
Freq = 100 #Hz
  
# Die jeweiligen Farben werden initialisiert.
ROT = GPIO.PWM(LED_Rot, Freq) 
GRUEN = GPIO.PWM(LED_Gruen, Freq)
BLAU = GPIO.PWM(LED_Blau, Freq)
ROT.start(0)  
GRUEN.start(0)
BLAU.start(0)
  
# Diese Funktion generiert die eigentliche Farbe
# Mittels der jeweiligen Farbvariable, kann die Farbintensitaet geaendert werden
# Nachdem die Farbe eingestellt wurde, wird mittels "time.sleep" die Zeit definiert,
# wie lang die besagte Farbe angezeigt werden soll
 
def LED_Farbe(Rot, Gruen,Blau, pause):
    ROT.ChangeDutyCycle(Rot)
    GRUEN.ChangeDutyCycle(Gruen)
    BLAU.ChangeDutyCycle(Blau)
    time.sleep(pause)
 
    ROT.ChangeDutyCycle(0)
    GRUEN.ChangeDutyCycle(0)
   
print "LED-Test [druecken Sie STRG+C, um den Test zu beenden]"
  
# Hauptprogrammschleife:
# Diese hat die Aufgabe fuer jede einzelne Farbe eine eigene Variable zu erstellen
# und mittels einer For-Schleife die Farbintensitaet jeder einzelnen Farbe von 0-100% zu druchlaufen
# Durch die Mischungen der verschiedenen Helligkeitsstufen der jeweiligen Farben
# entsteht somit ein Farbverlauf
try:
    while True:
        for x in range(0,2):
            for y in range(0,2):
                for z in range(0,2):
                    print (x,y,z)
                    for i in range(0,101):
                        LED_Farbe((x*i),(y*i),(z*i),.02)
  
# Aufraeumarbeiten nachdem das Programm beendet wurde
except KeyboardInterrupt:
        GPIO.cleanup()

Beispielprogramm PWM Download:

KY-009_RPi_PWM.zip

Zu starten mit dem Befehl:

sudo python KY-009_RPi_PWM.py

Anschlussbelegung Raspberry Pi:

LED Rot = GPIO6 [Pin 22]
LED Grün = GPIO5 [Pin 18]
LED Blau = GPIO4 [Pin 16]
Sensor GND = Masse [Pin 6]