Änderungen

KY-009 RGB LED SMD Modul

8.142 Byte hinzugefügt, 10:38, 21. Mär. 2016
/* Codebeispiel Arduino */
'''Vf [<span style="color: #ff0000;">Rot</span>]= 1,8V'''
'''Vf [<span style="color: #339966;">Gruen</span>,<span style="color: #0000ff;">Blau</span>]= 2,8V'''
'''If= 20mA'''
'''<u>Vorwiderstände:</u>'''
'''Rf (3,3V) [<span style="color: #339966;">Grün</span>]= 220Ω100Ω'''
'''Rf (3,3V) [<span style="color: #ff0000;">Rot</span>]= 220Ω180Ω'''
'''Rf (3,3V) [<span style="color: #0000ff;">Blau</span>]= 220Ω100Ω'''
''[z.B. beim Einsatz mit ARM CPU-Kern basierten Mikrokontrollern wie <u>Raspberry-Pi</u>]''
'''Rf (5V) [<span style="color: #339966;">Grün</span>] = 330Ω100Ω''' 
'''Rf (5V) [<span style="color: #ff0000;">Rot</span>] = 330Ω180Ω''' 
'''Rf (5V) [<span style="color: #0000ff;">Blau</span>] = 330Ω100Ω''' 
''[z.B. beim Einsatz mit Atmel Atmega basierten Mikrokontrollern wie <u>Arduino</u>]''
==Pin-Belegung==
[[Datei:4_G_LR_LG_LB4_G_LG_LR_LB.png|none]]
==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. <pre class="brush:cpp">int redpin = 11; // select the pin for the red LEDint bluepin Led_Rot = 10; // select the pin for the blue LEDint greenpin Led_Gruen = 911; // select the pin for the green LEDint valLed_Blau =012; void setup () { // Initialisierung Ausgangspins für die LEDs pinMode (redpinLed_Rot, OUTPUT); pinMode (bluepinLed_Gruen, OUTPUT); pinMode (greenpinLed_Blau, OUTPUT); Serial.begin (9600);
}
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
}
</pre>
'''Beispielprogramm ON/OFF Download:'''
[[Medium:KY-009_LED_ON-OFF.zip|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 [[Http://www.mikrocontroller.net/articles/LED-Fading 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.
 
<pre class="brush:cpp">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 (11Led_Blau, val); analogWrite (10Led_Gruen, 255-val); analogWrite (9Led_Rot, 128-val); delay (1); } // In der zweiten For-Schleife wird der Farbverlauf rückwärts durchgegangen for (val = 0; val <255; val++) { analogWrite (11Led_Blau, val); analogWrite (10Led_Gruen, 255-val); analogWrite (9Led_Rot, 128-val); delay (1); } Serial.println (val, DEC);
}
</pre>
'''Beispielprogramm PWM Download:'''
 
[[Medium:KY-009_PWM.zip|KY-009_PWM.zip]]
 
 
'''Anschlussbelegung Arduino:'''
 
{| style="height: 58px; padding-left: 30px;" width="228"
|-
||LED <span style="color: #ff0000;">Rot</span>
||=
||[Pin 10]
|-
||LED <span style="color: #339966;">Grün</span>
||=
||[Pin 11]
|-
||LED <span style="color: #0000ff;">Blau</span>
||=
||[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.
 
<pre class="brush:py"># 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()
</pre>
 
'''Beispielprogramm ON/OFF Download'''
 
[[Medium:KY009_RPi_ON-OFF.zip|KY009_RPi_ON-OFF.zip]]
 
Zu starten mit dem Befehl:
 
<pre class="brush:bash">sudo python KY009_RPI_ON-OFF.py
</pre>
 
'''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 [[Http://www.mikrocontroller.net/articles/LED-Fading 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.
 
<pre class="brush:py"># 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()
</pre>
'''Beispielprogramm PWM Download:'''
 
[[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:'''
 
{| style="height: 88px; padding-left: 30px;" width="229"
|-
||LED <span style="color: #339966;">Rot</span>
||=
||GPIO6
||[Pin 22]
|-
||LED <span style="color: #ff0000;">Grün</span>
||=
||GPIO5
||[Pin 18]
|-
||LED <span style="color: #ff0000;">Blau</span>
||=
||GPIO4
||[Pin 16]
|-
||Sensor GND
||=
||Masse
||[Pin 6]
|}
Bürokrat, Administrator
611
Bearbeitungen