# Importation des bibliothèques nécessaires pour le contrôle des broches GPIO,
# la modulation de largeur d'impulsion (PWM) pour ajuster l'intensité lumineuse des LEDs,
# et les fonctions liées au temps pour créer des délais.
from machine import Pin, PWM
import time
# Configuration des paramètres pour le PWM.
delai = 1 # Délai de 1 seconde entre chaque ajustement de l'intensité des LEDs.
frequence = 5000 # Fréquence de 5 kHz pour le signal PWM.
# Initialisation des broches pour les LEDs orange et rouge en mode PWM.
# Ceci permet de contrôler l'intensité lumineuse des LEDs.
led_orange = PWM(Pin(12), frequence)
led_rouge = PWM(Pin(13), frequence)
# Boucle principale du script, qui s'exécute indéfiniment.
while True:
i = 1 # Valeur initiale du duty cycle pour led_orange.
j = 1023 # Valeur initiale du duty cycle pour led_rouge. 1023 est généralement la valeur maximale pour un duty cycle de 10 bits.
# Boucle secondaire pour créer un effet de variation d'intensité pour les deux LEDs.
while i < 1024:
# Mise à jour du duty cycle des LEDs pour ajuster leur intensité.
led_orange.duty(i) # Augmente progressivement l'intensité de led_orange.
led_rouge.duty(j) # Diminue progressivement l'intensité de led_rouge.
# Incrémente et décrémente les valeurs de duty cycle.
i = i + 50 # Incrémente i de 50 à chaque itération.
j = j - 50 # Décrémente j de 50 à chaque itération.
# Vérification pour s'assurer que les valeurs de duty cycle restent dans les limites autorisées.
if i > 1023: i = 1023 # Limite i à 1023 si elle dépasse cette valeur.
if j < 0: j = 0 # Limite j à 0 si elle descend en dessous de cette valeur.
# Affichage des valeurs actuelles de i et j pour le suivi.
print("i = "+ str(i))
print("j = " + str(j))
# Pause d'une seconde entre chaque ajustement des LEDs.
time.sleep(delai)
# Condition pour sortir de la boucle secondaire une fois i atteint ou dépasse 1023.
if (i >= 1023):
break