Double afficheur 7 segments

Description

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

Codes Sources

A voir également

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.