import os import wiringpi2 from time import sleep from Tkinter import * clock = 27 # Pin 27 GPIO data = 18 # Pin 18 GPIO latch = 24 # Pin 24 GPIO global voie1 voie1 = int global attn attn = int wiringpi2.wiringPiSetupGpio() # Configuration des pins wiringpi2.pinMode(24,1) # La pin 24 GPIO du Latch est en sortie wiringpi2.pinMode(18,1) # La pin 18 GPIO de data est en sortie wiringpi2.pinMode(27,1) # La pin 27 GPIO de clock est en sortie def send_att(attn): print 'Recu 1: ',attn if attn >= 0 and attn < 31: # Si 0 <= attn < 31 print 'Voie 1 < 31: ',attn wiringpi2.shiftOut(data,clock,1,(attn*2)) # Le 1 ou le 0 permet d'inverser l'ordre des bits if attn >= 31 and attn < 63: # Si 31 <= attn < 63 print 'Voie 1 < 63: ',attn wiringpi2.shiftOut(data,clock,1,(((attn-31)+32)*2)) if attn >= 63 and attn < 93: # Si 63 <= attn < 93 print 'Voie 1 > 63:' ,attn wiringpi2.shiftOut(data,clock,1,(((attn-62)+96)*2)) if attn >= 93: # Si attn >= 93 print 'Voie 1 > 93: ',attn attn = 93 def Send(): voie1 = Saisie1.get() # Voie 1 = Valeur saisie dans Spinbox send_att(voie1) # Appel de fonction avec voie1 = attn wiringpi2.digitalWrite(latch,1) # LATCH ON wiringpi2.digitalWrite(latch,0) # LATCH OFF print "Recu 2: ",voie1 fenetre = Tk() fenetre.title("Ways Command") Saisie1 = Spinbox(fenetre,from_=0,to=93.5,textvariable=voie1) # Saisir la valeur de la voie 1 avec Spinbox Saisie1.pack() Envoi = Button(fenetre,text="Envoyer",bg='green',command=Send) # Envoyer la valeur de la voie 1 avec Button Envoi.pack(side=LEFT) quitButton = Button(fenetre,text="Quittter",command=fenetre.destroy) # Quitter quitButton.pack(side=LEFT) fenetre.mainloop()