KY-009 RGB LED SMD Modul: Unterschied zwischen den Versionen
Aus Linkerkit.de
(→Technische Daten / Kurzbeschreibung) |
|||
Zeile 37: | Zeile 37: | ||
==Codebeispiel Arduino== | ==Codebeispiel Arduino== | ||
− | <pre class="brush:cpp">int | + | '''Codebeispiel ON/OFF''' |
− | + | ||
− | int | + | Dieses Codebeispiel zeigt auf, wie die integrierten LEDs mittels eines definierbaren Ausgangspins abwechselnd, in 3 Sekunden Takt, angeschaltet werden können. |
− | int | + | |
− | void setup () { | + | <pre class="brush:cpp">int Led_Rot = 10; |
− | pinMode ( | + | int Led_Gruen = 11; |
− | pinMode ( | + | int Led_Blau = 12; |
− | pinMode ( | + | |
− | + | 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, HIGH); // LED wird eingeschaltet | ||
+ | delay (3000); // Wartemodus für weitere zwei Sekunden in denen die LEDs dann umgeschaltet sind | ||
+ | } | ||
+ | </pre> | ||
+ | '''Beispielprogramm ON/OFF Download:''' | ||
+ | |||
+ | [[Medium:KY-011_LED_ON-OFF.zip|KY-011_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 () { | void loop () { | ||
− | + | // Innerhalb einer For-Schleife werden den beiden 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); | ||
+ | } | ||
} | } | ||
</pre> | </pre> | ||
+ | '''Beispielprogramm PWM Download:''' | ||
+ | |||
+ | [[Medium:KY-011_PWM.zip|KY-011_PWM.zip]] | ||
+ | |||
+ | |||
+ | '''Anschlussbelegung Arduino:''' | ||
+ | |||
+ | {| style="height: 58px; padding-left: 30px;" width="228" | ||
+ | |- | ||
+ | ||LED <span style="color: #339966;">Rot</span> | ||
+ | ||= | ||
+ | ||[Pin 10] | ||
+ | |- | ||
+ | ||LED <span style="color: #ff0000;">Grün</span> | ||
+ | ||= | ||
+ | ||[Pin 11] | ||
+ | |- | ||
+ | ||LED <span style="color: #ff0000;">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 = 5 | ||
+ | LED_GRUEN = 4 | ||
+ | GPIO.setup(LED_ROT, GPIO.OUT, initial= GPIO.LOW) | ||
+ | GPIO.setup(LED_GRUEN, 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 | ||
+ | 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 | ||
+ | time.sleep(3) #Wartemodus fuer weitere zwei Sekunden, in denen die LED Dann ausgeschaltet ist | ||
+ | |||
+ | # Aufraeumarbeiten nachdem das Programm beendet wurde | ||
+ | except KeyboardInterrupt: | ||
+ | GPIO.cleanup() | ||
+ | </pre> | ||
+ | |||
+ | '''Beispielprogramm ON/OFF Download''' | ||
+ | |||
+ | [[Medium:KY011_RPI_ON-OFF.zip|KY011_RPI_ON-OFF.zip]] | ||
+ | |||
+ | Zu starten mit dem Befehl: | ||
+ | |||
+ | <pre class="brush:bash">sudo python KY011_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 = 5 | ||
+ | LED_Gruen = 4 | ||
+ | |||
+ | # Set pins to output mode | ||
+ | GPIO.setup(LED_Rot, GPIO.OUT) | ||
+ | GPIO.setup(LED_Gruen, GPIO.OUT) | ||
+ | |||
+ | Freq = 100 #Hz | ||
+ | |||
+ | # Die jeweiligen Farben werden initialisiert. | ||
+ | ROT = GPIO.PWM(LED_Rot, Freq) | ||
+ | GRUEN = GPIO.PWM(LED_Gruen, Freq) | ||
+ | ROT.start(0) | ||
+ | GRUEN.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, pause): | ||
+ | ROT.ChangeDutyCycle(Rot) | ||
+ | GRUEN.ChangeDutyCycle(Gruen) | ||
+ | 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): | ||
+ | print (x,y) | ||
+ | for i in range(0,101): | ||
+ | LED_Farbe((x*i),(y*i),.02) | ||
+ | |||
+ | # Aufraeumarbeiten nachdem das Programm beendet wurde | ||
+ | except KeyboardInterrupt: | ||
+ | GPIO.cleanup() | ||
+ | </pre> | ||
+ | '''Beispielprogramm PWM Download:''' | ||
+ | |||
+ | [[Medium:KY011_RPI_PWM.zip|KY011_RPI_PWM.zip]] | ||
+ | |||
+ | |||
+ | |||
+ | '''Anschlussbelegung Raspberry Pi:''' | ||
+ | |||
+ | {| style="height: 88px; padding-left: 30px;" width="229" | ||
+ | |- | ||
+ | ||LED <span style="color: #339966;">Gruen</span> | ||
+ | ||= | ||
+ | ||GPIO4 | ||
+ | ||[Pin 16] | ||
+ | |- | ||
+ | ||LED <span style="color: #ff0000;">Rot</span> | ||
+ | ||= | ||
+ | ||GPIO5 | ||
+ | ||[Pin 18] | ||
+ | |- | ||
+ | ||Sensor GND | ||
+ | ||= | ||
+ | ||Masse | ||
+ | ||[Pin 6] | ||
+ | |} |
Version vom 9. März 2016, 17:19 Uhr
Inhaltsverzeichnis
Bild
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
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, HIGH); // LED wird eingeschaltet delay (3000); // Wartemodus für weitere zwei Sekunden in denen die LEDs dann umgeschaltet sind }
Beispielprogramm ON/OFF Download:
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 beiden 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:
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 = 5 LED_GRUEN = 4 GPIO.setup(LED_ROT, GPIO.OUT, initial= GPIO.LOW) GPIO.setup(LED_GRUEN, 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 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 time.sleep(3) #Wartemodus fuer weitere zwei Sekunden, in denen die LED Dann ausgeschaltet ist # Aufraeumarbeiten nachdem das Programm beendet wurde except KeyboardInterrupt: GPIO.cleanup()
Beispielprogramm ON/OFF Download
Zu starten mit dem Befehl:
sudo python KY011_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 = 5 LED_Gruen = 4 # Set pins to output mode GPIO.setup(LED_Rot, GPIO.OUT) GPIO.setup(LED_Gruen, GPIO.OUT) Freq = 100 #Hz # Die jeweiligen Farben werden initialisiert. ROT = GPIO.PWM(LED_Rot, Freq) GRUEN = GPIO.PWM(LED_Gruen, Freq) ROT.start(0) GRUEN.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, pause): ROT.ChangeDutyCycle(Rot) GRUEN.ChangeDutyCycle(Gruen) 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): print (x,y) for i in range(0,101): LED_Farbe((x*i),(y*i),.02) # Aufraeumarbeiten nachdem das Programm beendet wurde except KeyboardInterrupt: GPIO.cleanup()
Beispielprogramm PWM Download:
Anschlussbelegung Raspberry Pi:
LED Gruen | = | GPIO4 | [Pin 16] |
LED Rot | = | GPIO5 | [Pin 18] |
Sensor GND | = | Masse | [Pin 6] |