#Varie l'intensitée d'allumage d'un led en variant le Duty Cycle
#d'une fréquence. Plus le Duty Cycle est grand, plus grande sera l'intensitée.

import RPi.GPIO as GPIO        #Importation du module GPIO
import time                    #Importation du module time

LedPin = 12     #pine 12 ou GPIO 18,CLK,PCM. Mieux adapté pour signal horloge

GPIO.setmode(GPIO.BOARD)       #Définit les pines par position physique
GPIO.setup(LedPin, GPIO.OUT)   #Place la pine en sortie
GPIO.output(LedPin, GPIO.LOW)  #Place la pine à 0 (0V) pour éteindre le led

p = GPIO.PWM(LedPin, 1000)     # Place la Fréquence à 1KHz
p.start(0)                     # Start PWM output,  avec un Duty Cycle = 0

try:                           #essaie
	while True:            #recommencer toujour
		for dc in range(0, 101, 4):   # aug. le duty cycle: 0~100 par step de 4
			p.ChangeDutyCycle(dc) # Changer le duty cycle
			time.sleep(0.05)      # attendre 50 millisecondes
		time.sleep(1)                 # attendre 1 seconde
		for dc in range(100, -1, -4): # Dim. le duty cycle: 100~0 par step de -4
			p.ChangeDutyCycle(dc) # Changer le duty cycle
			time.sleep(0.05)      # attendre 50 millisecondes
		time.sleep(1)                 # attendre 1 seconde
except KeyboardInterrupt:     #sauf si les clés <Ctrl> et <c> sont enfoncées
	p.stop()
	GPIO.output(LedPin, GPIO.LOW)    # éteindre le led
	GPIO.cleanup()                   # Relache le modue GPIO

