#affiche un nombre en binaire 8 bits de 0 à 255 avec 8 leds.
import RPi.GPIO as GPIO  #Importation du module GPIO

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()
    while True:
        a=input("entrez un nombre de 0 à 255: ou Ctrl c pour terminer:  ")
        a=int(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)

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()                        
    
