Änderungen

KY-011 2-Farben - Rot+Grün- 5mm LED Modul

629 Byte hinzugefügt, 10:18, 21. Mär. 2016
/* Codebeispiel Raspberry Pi */
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
 
 
'''Vf [typ]= 2,0-2,5V'''
 
 
'''If= 20mA'''
 
 
 
'''<u>Vorwiderstände:</u>'''
 
'''Rf (3,3V) [<span style="color: #339966;">Grün</span>]= 120Ω'''
 
'''Rf (3,3V) [<span style="color: #ff0000;">Rot</span>]= 120Ω'''
 
''[z.B. beim Einsatz mit ARM CPU-Kern basierten Mikrokontrollern wie <u>Raspberry-Pi</u>]''
 
 
'''Rf (5V) [<span style="color: #339966;">Grün</span>] = 220Ω''' 
 
'''Rf (5V) [<span style="color: #ff0000;">Rot</span>] = 220Ω''' 
 
''[z.B. beim Einsatz mit Atmel Atmega basierten Mikrokontrollern wie <u>Arduino</u>]''
==Pin-Belegung==
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 = 245LED_GRUEN = 254
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]"
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(43) #Wartemodus für fuer 4 Sekunden print("LED GRUEN 3 Sekunden an") GPIO.output(LED_ROT,GPIO.HIGHLOW) #LED wird eingeschaltet GPIO.output(LED_GRUEN,GPIO.LOWHIGH) #LED wird eingeschaltet time.sleep(23) #Wartemodus für fuer weitere zwei Sekunden, in denen die LED Dann ausgeschaltet ist
# Aufraeumarbeiten nachdem das Programm beendet wurde
except KeyboardInterrupt:
GPIO.cleanup()
 
 
</pre>
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 scriptBenoetigte Module werden importiert und eingerichtet
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 # Hier werden die Ausgangs-Pin deklariert, an dem die LEDs angeschlossen sind.LED_Rot = 5 green LED_Gruen = 4
# Set pins to output mode
GPIO.setup(redLED_Rot, GPIO.OUT) GPIO.setup(greenLED_Gruen, GPIO.OUT)
Freq = 100 #Hz
# Setup all the LED colors with an initial duty cycle of 0 which is offDie jeweiligen Farben werden initialisiert.RED ROT = GPIO.PWM(redLED_Rot, Freq) RED.start(0) GREEN GRUEN = GPIO.PWM(greenLED_Gruen, Freq) GREENROT.start(0) GRUEN.start(0)
# Define a simple function to turn on the LED colorsDiese 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 colorLED_Farbe(RRot, GGruen, on_timepause): # Color brightness range is 0-100% REDROT.ChangeDutyCycle(RRot) GREENGRUEN.ChangeDutyCycle(GGruen) time.sleep(on_timepause) # Turn all LEDs off after on_time seconds REDROT.ChangeDutyCycle(0) GREENGRUEN.ChangeDutyCycle(0) print("Light It Up!") print("Press CTRL LED-Test [druecken Sie STRG+ C to quit.\n, um den Test zu beenden]") print(" R G \n---------")
# Main loopHauptprogrammschleife:# 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 RUNNINGTrue:
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):
colorLED_Farbe((x*i),(y*i),.02)
# If CTRL+C is pressed the main loop is brokenAufraeumarbeiten nachdem das Programm beendet wurde
except KeyboardInterrupt:
RUNNING = False print "\Quitting" # Actions under 'finally' will always be called regardless of what stopped the programfinally: # Stop and cleanup so the pins are available to be used again GPIO.cleanup() 
</pre>
'''Beispielprogramm PWM Download:'''
[[Medium:KY-011_PWMKY011_RPI_PWM.zip|KY-011_PWMKY011_RPI_PWM.zip]]
Zu starten mit dem Befehl:
<pre class="brush:bash">sudo python KY011_RPI_PWM.py
</pre>
'''Anschlussbelegung Raspberry Pi:'''
Bürokrat, Administrator
611
Bearbeitungen