KY-016 Module led RGB 5mm

De SensorKit X40 Wiki

Aller à : navigation, rechercher

Photo

ky-016.jpg

Données techniques / Description sommaire

Ce module est constitué d'une LED RGB qui est composée de 3 LEDS de couleurs différentes: rouge - vert - bleu. Celles-ci sont reliées par une cathode commune. En fonction de la tension d'entrée, des résistances en série sont nécessaires.


Vf [Rouge]= 1,8V

Vf [VerteBleue]= 2,8V

If= 20mA


Résistances de limitation:

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

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

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

[Valeurs calculées lors de l'utilisation avec des microcontrôleurs ARM de base tel que la Raspberry Pi]


Rf (5V) [Verte] = 100Ω 

Rf (5V) [Rouge] = 180Ω 

Rf (5V) [Bleue] = 100Ω 

[Valeurs calculées lors de l'utilisation avec des microcontrôleurs Atmel Atmega tel que Arduino]

Brochage

4 G LR LG LB.png

Exemple de code pour Arduino

Exemple de code ON/OFF

Cet exemple montre comment les LEDS intégrées sont alternativement allumées puis éteintes toutes les 3 secondes.

int Led_Rouge = 10;
int Led_Verte = 11;
int Led_Bleue = 12;
 
void setup ()
{
  // Initialisation des broches de sortie pour les LEDS
  pinMode (Led_Rouge, OUTPUT); 
  pinMode (Led_Verte, OUTPUT);
  pinMode (Led_Bleue, OUTPUT); 
}
 
void loop () //Boucle de programme principale
{
  digitalWrite (Led_Rouge, HIGH); // la Led s'allume
  digitalWrite (Led_verte, LOW); // la LED commute
  digitalWrite (Led_Bleue, LOW); // la LED commute
  delay (3000); // Délai de 3 secondes
 
  digitalWrite (Led_Rouge, LOW); // la LED commute
  digitalWrite (Led_Verte, HIGH); // la Led s'allume
  digitalWrite (Led_Bleue, LOW); // la LED commute
  delay (3000); // Délai de 3 secondes supplémentaires pendant lequel les LEDS sont commutées
  
  digitalWrite (Led_Rouge, LOW); // la LED commute
  digitalWrite (Led_Verte, LOW); // la LED commute
  digitalWrite (Led_Bleue, HIGH); // la Led s'allume
  delay (3000); // Délai de 3 secondes supplémentaires pendant lequel les LEDS sont commutées
}

Téléchargement de l'exemple de code ON/OFF:

KY-016_LED_ON-OFF.zip


Exemple de code en PWM

Un signal PWM (modulation de largeur d'impulsion) permet de faire varier la luminosité d'une LED. Le signal fait varier le temps pendant lequel il est à l'état haut et celui pendant lequel il est à l'état bas, ce qui fait varier la tension moyenne d'alimentation de la LED. La persistance rétinienne de l'oeil fait que nous visualisons cela comme un changement de luminosité.

Plusieurs LEDS sont intégrées dans ce module et la superposition de différents niveaux de luminosité de ces LEDS permet d'obtenir différentes couleurs. Ceci est illustré dans l'exemple de code suivant.

int Led_Rouge = 10;
int Led_Verte = 11;
int Led_Bleue = 12;

int val;

void setup () {
  // Initialisation des broches de sortie pour les LEDS
  pinMode (Led_Rouge, OUTPUT); 
  pinMode (Led_Verte, OUTPUT); 
  pinMode (Led_Bleue, OUTPUT); 
}
void loop () {
   // Dans une boucle For, différentes valeurs PWM sont envoyées aux 3 LEDS
   for (val = 255; val> 0; val--)
      {
       analogWrite (Led_Bleue, val);
       analogWrite (Led_Verte, 255-val);
       analogWrite (Led_Rouge, 128-val);
       delay (1);
   }
   // Les signaux sont ensuite inversés
   for (val = 0; val <255; val++)
      {
      analogWrite (Led_Bleue, val);
      analogWrite (Led_Verte, 255-val);
      analogWrite (Led_Rouge, 128-val);
      delay (1);
   }
}

Exemple de programme à télécharger:

KY-016_PWM.zip


Affectation des broches Arduino:

LED Rouge = [Pin 10]
LED Verte = [Pin 11]
LED Bleue = [Pin 12]
Sensor GND = [Pin GND]

Exemple de code pour Raspberry Pi

Exemple de code ON/OFF

Cet exemple montre comment les LEDS intégrées sont alternativement allumées puis éteintes toutes les 3 secondes.

# Les modules nécessaires sont importés et mis en place
import RPi.GPIO as GPIO
import time
  
GPIO.setmode(GPIO.BCM)
  
# Initialisation des broches de sortie pour les LEDS
LED_ROUGE = 6
LED_VERTE = 5
LED_BLEUE = 4

GPIO.setup(LED_ROUGE, GPIO.OUT, initial= GPIO.LOW)
GPIO.setup(LED_VERTE, GPIO.OUT, initial= GPIO.LOW)
GPIO.setup(LED_BLEUE, GPIO.OUT, initial= GPIO.LOW)
  
print "LED-Test [Appuyez sur Ctrl + C pour terminer le test]"
 
# Boucle de programme principale
try:
        while True:
			print("LED ROUGE allumée 3 secondes")
			GPIO.output(LED_ROUGE,GPIO.HIGH) #la Led s'allume
			GPIO.output(LED_VERTE,GPIO.LOW) #la LED commute
			GPIO.output(LED_BLEUE,GPIO.LOW) #la LED commute
			time.sleep(3) #Délai de 3 secondes
			print("LED VERTE allumée 3 secondes") 
			GPIO.output(LED_ROUGE,GPIO.LOW) #la LED commute
			GPIO.output(LED_VERTE,GPIO.HIGH) #la Led s'allume
			GPIO.output(LED_BLEUE,GPIO.LOW) #la LED commute
			time.sleep(3) #Délai de 3 secondes
			print("LED BLEUE allumée 3 secondes") 
			GPIO.output(LED_ROUGE,GPIO.LOW) #la LED commute
			GPIO.output(LED_VERTE,GPIO.LOW) #la LED commute
			GPIO.output(LED_BLEUE,GPIO.HIGH) #la Led s'allume
			time.sleep(3) #Délai de 3 secondes
  
#remise en place de tous les GPIO en entrées
except KeyboardInterrupt:
        GPIO.cleanup()

Téléchargement de l'exemple de code ON/OFF:

[images/3/3a/KY009_RPi_ON-OFF.zip KY016_RPi_ON-OFF.zip]


Pour débuter avec la commande:

sudo python KY016_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-016_RPi_PWM.zip

Zu starten mit dem Befehl:

sudo python KY-016_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]