Afficheur double destiné à afficher un nombre compris entre 0 et 99.
Par défaut, l'afficheur affiche des nombres générés aléatoirement.
Source / Exemple :
# -*- coding: cp1252 -*-
# Afficheur 7 segments
# Immaginé et développé par Amaury
# Initialisation
from Tkinter import*
import time
import random
chiffre={0:[1,2,3,4,5,6], 1:[2,3], 2:[1,2,7,5,4], 3:[1,2,3,4,7], 4:[6,7,2,3], 5:[1,6,7,3,4], 6:[1,6,5,4,3,7], 7:[1,2,3], 8:[1,2,3,4,5,6,7], 9:[1,2,3,4,6,7]}
coded={1:[30,50,80,50],7:[30,100,80,100],4:[30,150,80,150],6:[25,55,25,95],2:[85,55,85,95],3:[85,105,85,145],5:[25,105,25,145]}
codeu={1:[120,50,170,50],7:[120,100,170,100],4:[120,150,170,150],6:[115,55,115,95],2:[175,55,175,95],3:[175,105,175,145],5:[115,105,115,145]}
d=0
u=0
# Dessin du Canevas
root=Tk()
can=Canvas(width=200,height=200)
can.pack()
# Dessin des afficheurs
can.create_rectangle(0,0,200,200,fill="white",outline="white")
can.create_rectangle(10,30,190,170,width=2,fill="grey")
can.create_line(100,30,100,170,width=2)
while 1:
d=0
u=0
consigne=random.randint(0,99) #Génération aléatoire, à supprimer pour afficher une acquisition
# Digits au repos
can.create_line(30,50,80,50,width=5,fill="pink")
can.create_line(30,100,80,100,width=5,fill="pink")
can.create_line(30,150,80,150,width=5,fill="pink")
can.create_line(120,50,170,50,width=5,fill="pink")
can.create_line(120,100,170,100,width=5,fill="pink")
can.create_line(120,150,170,150,width=5,fill="pink")
can.create_line(25,55,25,95,width=5,fill="pink")
can.create_line(115,55,115,95,width=5,fill="pink")
can.create_line(85,55,85,95,width=5,fill="pink")
can.create_line(175,55,175,95,width=5,fill="pink")
can.create_line(25,105,25,145,width=5,fill="pink")
can.create_line(115,105,115,145,width=5,fill="pink")
can.create_line(85,105,85,145,width=5,fill="pink")
can.create_line(175,105,175,145,width=5,fill="pink")
root.update()
#Décomposition de la valeur à afficher en unités et dixaines
while(consigne>=10):
consigne=consigne-10
d=d+1
u=consigne
segu=list(chiffre [u])
segd=list(chiffre [d])
# Digits allumés
for i in segu:
can.create_line(codeu[i],width=5,fill="red")
for j in segd:
can.create_line(coded[j],width=5,fill="red")
root.update()
time.sleep(0.5) #Période de rafraichissement
Conclusion :
Peut être intégrée dans une application plus importante
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.