KY-011 2-Farben - Rot+Grün- 5mm LED Modul: Unterschied zwischen den Versionen
Aus Linkerkit.de
(→Codebeispiel Raspberry Pi) |
(→Codebeispiel Raspberry Pi) |
||
Zeile 101: | Zeile 101: | ||
'''Codebeispiel ON/OFF''' | '''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 | <pre class="brush:py"># Benoetigte Module werden importiert und eingerichtet | ||
Zeile 144: | Zeile 144: | ||
<pre class="brush:bash">sudo python KY011_RPI_ON-OFF.py | <pre class="brush:bash">sudo python KY011_RPI_ON-OFF.py | ||
</pre> | </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"> | ||
+ | |||
+ | #!/usr/bin/env python | ||
+ | # -*- coding: utf-8 -*- | ||
+ | # | ||
+ | # RGB_LED.py | ||
+ | # | ||
+ | # A short program to control an RGB LED by utilizing the PWM functions within the Python GPIO module | ||
+ | # | ||
+ | # Copyright 2015 Ken Powers | ||
+ | # | ||
+ | |||
+ | # Import the modules used in the script | ||
+ | import random, time | ||
+ | import RPi.GPIO as GPIO | ||
+ | |||
+ | # Set GPIO to Broadcom system and set RGB Pin numbers | ||
+ | RUNNING = True | ||
+ | GPIO.setmode(GPIO.BCM) | ||
+ | red = 5 | ||
+ | green = 4 | ||
+ | |||
+ | # Set pins to output mode | ||
+ | GPIO.setup(red, GPIO.OUT) | ||
+ | GPIO.setup(green, GPIO.OUT) | ||
+ | |||
+ | Freq = 100 #Hz | ||
+ | |||
+ | # Setup all the LED colors with an initial duty cycle of 0 which is off | ||
+ | RED = GPIO.PWM(red, Freq) | ||
+ | RED.start(0) | ||
+ | GREEN = GPIO.PWM(green, Freq) | ||
+ | GREEN.start(0) | ||
+ | |||
+ | # Define a simple function to turn on the LED colors | ||
+ | def color(R, G, on_time): | ||
+ | # Color brightness range is 0-100% | ||
+ | RED.ChangeDutyCycle(R) | ||
+ | GREEN.ChangeDutyCycle(G) | ||
+ | time.sleep(on_time) | ||
+ | |||
+ | # Turn all LEDs off after on_time seconds | ||
+ | RED.ChangeDutyCycle(0) | ||
+ | GREEN.ChangeDutyCycle(0) | ||
+ | |||
+ | print("Light It Up!") | ||
+ | print("Press CTRL + C to quit.\n") | ||
+ | print(" R G \n---------") | ||
+ | |||
+ | # Main loop | ||
+ | try: | ||
+ | while RUNNING: | ||
+ | for x in range(0,2): | ||
+ | for y in range(0,2): | ||
+ | print (x,y) | ||
+ | # Slowly ramp up power percentage of each active color | ||
+ | for i in range(0,101): | ||
+ | color((x*i),(y*i),.02) | ||
+ | |||
+ | # If CTRL+C is pressed the main loop is broken | ||
+ | except KeyboardInterrupt: | ||
+ | RUNNING = False | ||
+ | print "\Quitting" | ||
+ | |||
+ | # Actions under 'finally' will always be called regardless of what stopped the program | ||
+ | finally: | ||
+ | # Stop and cleanup so the pins are available to be used again | ||
+ | GPIO.cleanup() | ||
+ | |||
+ | </pre> | ||
+ | '''Beispielprogramm PWM Download:''' | ||
+ | |||
+ | [[Medium:KY-011_PWM.zip|KY-011_PWM.zip]] | ||
+ | |||
+ | |||
'''Anschlussbelegung Raspberry Pi:''' | '''Anschlussbelegung Raspberry Pi:''' |
Version vom 9. März 2016, 15:23 Uhr
Inhaltsverzeichnis
Bild
Technische Daten / Kurzbeschreibung
LED-Modul welche eine rote und grüne LED beinhaltet. Diese sind mittels gemeinsamer Kathode miteinander verbunden. Je nach Eingangsspannung, werden Vorwiderstände benötigt
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; void setup () { // Initialisierung Ausgangspins für die LEDs pinMode (Led_Rot, OUTPUT); pinMode (Led_Gruen, OUTPUT); } void loop () //Hauptprogrammschleife { digitalWrite (Led_Rot, HIGH); // LED wird eingeschaltet digitalWrite (Led_Gruen, 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 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 val; void setup () { // Initialisierung Ausgangspins für die LEDs pinMode (Led_Rot, OUTPUT); pinMode (Led_Gruen, 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_Gruen, val); analogWrite (Led_Rot, 255-val); delay (15); } // In der zweiten For-Schleife wird der Farbverlauf rückwärts durchgegangen for (val = 0; val <255; val++) { analogWrite (Led_Gruen, val); analogWrite (Led_Rot, 255-val); delay (15); } }
Beispielprogramm PWM Download:
Anschlussbelegung Arduino:
LED Grün | = | [Pin 10] |
LED Rot | = | [Pin 11] |
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 = 24 LED_GRUEN = 25 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(4) #Wartemodus für 4 Sekunden print("LED GRUEN 3 Sekunden an") GPIO.output(LED_ROT,GPIO.HIGH) #LED wird eingeschaltet GPIO.output(LED_GRUEN,GPIO.LOW) #LED wird eingeschaltet time.sleep(2) #Wartemodus für 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.
#!/usr/bin/env python # -*- coding: utf-8 -*- # # RGB_LED.py # # A short program to control an RGB LED by utilizing the PWM functions within the Python GPIO module # # Copyright 2015 Ken Powers # # Import the modules used in the script import random, time import RPi.GPIO as GPIO # Set GPIO to Broadcom system and set RGB Pin numbers RUNNING = True GPIO.setmode(GPIO.BCM) red = 5 green = 4 # Set pins to output mode GPIO.setup(red, GPIO.OUT) GPIO.setup(green, GPIO.OUT) Freq = 100 #Hz # Setup all the LED colors with an initial duty cycle of 0 which is off RED = GPIO.PWM(red, Freq) RED.start(0) GREEN = GPIO.PWM(green, Freq) GREEN.start(0) # Define a simple function to turn on the LED colors def color(R, G, on_time): # Color brightness range is 0-100% RED.ChangeDutyCycle(R) GREEN.ChangeDutyCycle(G) time.sleep(on_time) # Turn all LEDs off after on_time seconds RED.ChangeDutyCycle(0) GREEN.ChangeDutyCycle(0) print("Light It Up!") print("Press CTRL + C to quit.\n") print(" R G \n---------") # Main loop try: while RUNNING: for x in range(0,2): for y in range(0,2): print (x,y) # Slowly ramp up power percentage of each active color for i in range(0,101): color((x*i),(y*i),.02) # If CTRL+C is pressed the main loop is broken except KeyboardInterrupt: RUNNING = False print "\Quitting" # Actions under 'finally' will always be called regardless of what stopped the program finally: # Stop and cleanup so the pins are available to be used again GPIO.cleanup()
Beispielprogramm PWM Download:
Anschlussbelegung Raspberry Pi:
LED Gruen | = | GPIO4 | [Pin 16] |
LED Rot | = | GPIO5 | [Pin 18] |
Sensor GND | = | Masse | [Pin 6] |