64 lines
1.4 KiB
Plaintext
64 lines
1.4 KiB
Plaintext
#LED
|
|
from apa102 import APA102
|
|
#BOUTON
|
|
import RPi.GPIO as GPIO
|
|
import time
|
|
|
|
|
|
# Initialisation des LEDs
|
|
num_leds = 12
|
|
led = APA102(num_led=num_leds)
|
|
|
|
# Initialisation Bouton
|
|
BUTTON = 17
|
|
GPIO.setmode(GPIO.BCM)
|
|
GPIO.setup(BUTTON, GPIO.IN)
|
|
|
|
etat = {'mute': False}
|
|
|
|
## LED
|
|
def set_couleur(couleur):
|
|
couleur = couleur.upper()
|
|
# Dictionnaire des couleurs
|
|
couleurs_rgb = {
|
|
'R': (255, 0, 0), # Rouge
|
|
'V': (0, 255, 0), # Vert
|
|
'B': (0, 0, 255), # Bleu
|
|
'J': (255, 255, 0), # Jaune
|
|
'VI': (128, 0, 128), # Violet
|
|
'RO': (255, 105, 180), # Rose
|
|
'O': (255, 165, 0), # Orange
|
|
}
|
|
rgb = couleurs_rgb.get(couleur, (0, 0, 0)) # Éteindre si couleur inconnue
|
|
|
|
for i in range(num_leds):
|
|
led.set_pixel(i, *rgb)
|
|
led.show()
|
|
|
|
def eteindre_led():
|
|
set_couleur("") # Couleur inconnue → éteint
|
|
|
|
def cleanup_led():
|
|
led.cleanup()
|
|
|
|
##BOUTON
|
|
# Bascule mute/unmute
|
|
def toggle_mute(channel):
|
|
etat['mute'] = not etat['mute']
|
|
if etat['mute']:
|
|
set_couleur('VI') # Rouge = mute
|
|
else:
|
|
set_couleur('') # Vert = unmute
|
|
|
|
# Event du bouton préssé
|
|
GPIO.add_event_detect(BUTTON, GPIO.FALLING, callback=toggle_mute, bouncetime=300)
|
|
|
|
try:
|
|
while True:
|
|
time.sleep(1) # Le programme tourne sans rien faire
|
|
|
|
except KeyboardInterrupt:
|
|
print("Nettoyage GPIO")
|
|
cleanup_led()
|
|
GPIO.cleanup()
|