# Programme WS2812_01
# Allume les LED en vert, rouge, bleu
# Une par une 

# Importation des bibliothèques utilisées par le script
from time import sleep
from rpi_ws281x import *

# Configuration du ruban/anneau de LED:
LED_COUNT      = 12      # Nombre de LED sur le ruban/anneau.
LED_PIN        = 18      # Broche GPIO connectée au ruban/anneau (18 = PWM).
LED_FREQ_HZ    = 800000  # Fréquence du signal envoyé aux LED (800khz)
LED_DMA        = 10      # Canal DMA utilisé pour générer le signal
LED_BRIGHTNESS = 255     # 0 = éteint - 255 = maxi
LED_INVERT     = False   # Mettre True pour inverser le signal (utilisation d'un transistor en sortie)
LED_CHANNEL    = 0       # Mettre à 1 pour les GPIO 13, 19, 41, 45 ou 53

# Créer le ruban/anneau avec les éléments de configuration
strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, LED_FREQ_HZ, LED_DMA, LED_INVERT, LED_BRIGHTNESS, LED_CHANNEL)
# Initialisation de la bibliothèque. A appeler avant toute utilisation
strip.begin()

# Allumer toutes les LED une par une en Rouge
for i in range(strip.numPixels()):
    # Mettre la LED i à la couleur choisie
    strip.setPixelColor(i, Color(255, 0, 0))
    # Valider l'affichage sur le ruban
    strip.show()
    # Attendre une seconde
    sleep(0.1)
    
# Allumer toutes les LED une par une en Vert
for i in range(strip.numPixels()):
    # Mettre la LED i à la couleur choisie
    strip.setPixelColor(i, Color(0, 255, 0))
    # Valider l'affichage sur le ruban
    strip.show()
    # Attendre une seconde
    sleep(0.1)

# Allumer toutes les LED une par une en Bleu
for i in range(strip.numPixels()):
    # Mettre la LED i à la couleur choisie
    strip.setPixelColor(i, Color(0, 0, 255))
    # Valider l'affichage sur le ruban
    strip.show()
    # Attendre une seconde
    sleep(0.1)

# Eteindre les LED une par une
for i in range(strip.numPixels()):
    # Mettre la LED i à la couleur choisie
    strip.setPixelColor(i, Color(0, 0, 0))
    # Valider l'affichage sur le ruban
    strip.show()
    # Attendre une seconde
    sleep(0.05)


    

