#Compteur binaire 8 bits de 0 à 255 avec 8 leds, optimiser.
import RPi.GPIO as GPIO  #Importation du module GPIO
import time              #Importation du module time

pins = [11, 12, 13, 15, 16, 18, 22, 7]  #Liste des numéros de pin

def setup():             #Définit la fonction setup()
    GPIO.setmode(GPIO.BOARD)        #Définit les pins par position physique
    for pin in pins:
        GPIO.setup(pin, GPIO.OUT)   #Place chaque pin en sortie
        GPIO.output(pin, GPIO.HIGH) #Place chaque pin à 1 soit(+3.3V)
		                            #pour éteindre les leds

def loop():             #Définit la fonction loop()
    a=0
    while True:
        print(a)
        if a <= 255:
            b=a
            for pin in pins:
                b=b*2 #Tasse le bit à gauche (shit left)
                if b > 255:
                    GPIO.output(pin,GPIO.LOW)
                    b=b-256
                else:
                    GPIO.output(pin,GPIO.HIGH)
                
        else:
            a=0
                                
        time.sleep(0.5)   #attendre pendant 0.5 sec
        a=a+1

def destroy():           #Définit la fontion destroy() qui cause un arrêt
    for pin in pins: #du programme
        GPIO.output(pin, GPIO.HIGH)    # Éteint tous les leds
    GPIO.cleanup()                     # Relache le modue GPIO

if __name__ == '__main__':     # Le programme commence ici
    setup()                #Execute la fonction setup()
    try:
        loop()         #Execute la fontion loop()
    except KeyboardInterrupt:  # Si 'Ctrl+C' sont pressées exécute
        destroy()          #la fonction destroy()        
		
