KY-029 Module led bicolore rouge/vert

De SensorKit X40 Wiki

Aller à : navigation, rechercher

Photo

ky-029.jpg

Données techniques / Description sommaire

Module composé d'une LED 3mm bicolore rouge-verte, à cathode commune (GND). Une résistance de limitation est nécessaire pour alimenter ce module.

Vf [typ]= 2,0-2,5V


If= 20mA


Résistance de limitation:

Rf (3,3V) [Vert]= 120Ω

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

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


Rf (5V) [Vert] = 220Ω 

Rf (5V) [Rouge] = 220Ω 

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


Exemple d'utilisation avec une carte Arduino:

KY-011.jpg

Brochage

KY-011-brochage.png

Exemple de code pour Arduino

Exemple de code ON/OFF

Cet exemple de code fait s'allumer alternativement la LED rouge et la LED verte toutes les 3 secondes.

int Led_Rouge = 10;
int Led_Verte = 11;

void setup ()
{
  // Initialisation des broches de sortie pour les LEDS
  pinMode (Led_Rouge, OUTPUT); 
  pinMode (Led_Verte, OUTPUT); 
}

void loop () //Boucle de programme principale
{
  digitalWrite (Led_Rouge, HIGH); // la Led s'allume
  digitalWrite (Led_Verte, LOW); // la Led est éteinte
  delay (3000); // Délai de 3 secondes

  digitalWrite (Led_Rouge, LOW); // La Led s'éteint
  digitalWrite (Led_Verte, 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-029.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 val;

void setup () {
  // Initialisation des broches de sortie pour les LEDS
  pinMode (Led_Rouge, OUTPUT); 
  pinMode (Led_Verte, OUTPUT); 
}
void loop () {
   // Dans une boucle For, différentes valeurs PWM sont envoyées aux 2 LEDS
   for (val = 255; val> 0; val--)
      {
      analogWrite (Led_verte, val);
      analogWrite (Led_Rouge, 255-val);
      delay (15);
   }
   // Dans cette seconde boucle For, les valeurs sont inversées
   for (val = 0; val <255; val++)
      {
      analogWrite (Led_Verte, val);
      analogWrite (Led_Rouge, 255-val);
      delay (15);
   }
}

Exemple de programme à télécharger:

KY-029.zip


Affectation des broches Arduino:

LED Verte = [Pin 10]
LED Rouge = [Pin 11]
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.

#!/usr/bin/python
# coding=utf-8

# 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 = 24
LED_VERTE = 23
GPIO.setup(LED_ROUGE, GPIO.OUT, initial= GPIO.LOW)
GPIO.setup(LED_VERTE, 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
            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
            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

KY-029_RPI_ON-OFF.zip

Pour débuter avec la commande:

sudo python KY-029_RPI_ON-OFF.py

Exemple de code PWM

L'utilisation de signaux PWM (modulation de largeur d'amplitude) permet de faire varier la luminosité d'une LED. La LED est alimentée par des impulsions, le ratio entre la durée des impulsions et la durée au repos correspondant à une luminosité relative. En raison de la persistance rétinienne, l'oeil humain assimile ces changements d'alimentation de la LED à une variation de luminosité.

Vous trouverez plus d'informations sur http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.ApprendrePWM 

Plusieurs LEDS sont intégrées dans ce module et la création de couleurs différentes est produite par la superposition de différents niveaux de luminosité. Ceci est illustré dans l'exemple de code suivant.

#!/usr/bin/python
# coding=utf-8

# Les modules nécessaires sont importés et mis en place
import random, time 
import RPi.GPIO as GPIO
  
GPIO.setmode(GPIO.BCM) 
 
# Déclaration des broches de sortie sur lesquelles les LEDS sont raccordées
LED_Rouge = 24
LED_Verte = 23
  
# Configuration des broches en sortie
GPIO.setup(LED_Rouge, GPIO.OUT) 
GPIO.setup(LED_Verte, GPIO.OUT)
  
Freq = 100 #Hz
  
# Les couleurs respectives sont initialisées
ROUGE = GPIO.PWM(LED_Rouge, Freq) 
VERTE = GPIO.PWM(LED_Verte, Freq)
ROUGE.start(0)  
VERTE.start(0)
  
# Cette fonction génère la couleur réelle
# L'intensité de la couleur peut être modifiée grâce à la variable Couleur
# Après réglage de la couleur, la durée d'allumage est définie par 'time.sleep'
 
def LED_Couleur(Rouge, Verte, pause):
    ROUGE.ChangeDutyCycle(Rouge)
    VERTE.ChangeDutyCycle(Verte)
    time.sleep(pause)
 
    ROUGE.ChangeDutyCycle(0)
    VERTE.ChangeDutyCycle(0)
   
print "LED-Test [Appuyez sur Ctrl + C pour terminer le test]"
  
# Boucle de programme principale:
# Cette boucle doit faire varier l'intensité de chaque couleur de 0 à 100% en utilisant une boucle for
# Les mélanges des différentes luminosités permettent de créer un gradients de couleurs différentes.
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_Couleur((x*i),(y*i),.02)
  
# remise en place de tous les GPIO en entrées
except KeyboardInterrupt:
        GPIO.cleanup()

Exemple de programme à télécharger:

KY-029_RPI_PWM.zip

Commande pour lancer le programme:

sudo python KY-029_RPI_PWM.py

Brochage Raspberry Pi:

LED Verte = GPIO23 [Pin 16]
LED Rouge = GPIO24 [Pin 18]
Sensor GND = Masse [Pin 6]