π
<-
Chat plein-écran
[^]

Afficheur 7 segments

Assembleur, Axe, C/C++, ICE...

Re: Afficheur 7 segment

Message non lude critor » 17 Jan 2017, 19:55

Voilà ce que donne ton programme :


Chaque nouveau caractère est rafraîchi en moins de 0,5 seconde.
Et sachant que ça veut dire successivement :
  • éteindre 7 diodes
  • allumer de 2 à 7 diodes
soit de 9 à 14 commandes TI-Innovator successives, je ne suis pas du tout déçu par la vitesse, bien au contraire c'est plus rapide que ce que je pensais ! :D
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 42.1%
 
Messages: 41492
Images: 14556
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Afficheur 7 segment

Message non lude critor » 17 Jan 2017, 21:41

Pour le fun, voici ce que ça me sortait lors du 1er branchement : :P
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 42.1%
 
Messages: 41492
Images: 14556
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Afficheur 7 segment

Message non lude Adriweb » 17 Jan 2017, 22:08

Merth en avait fait un aussi: https://www.youtube.com/watch?v=KQH05ukVgcA On y voit le même genre de vitesse.
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.2%
 
Messages: 14613
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Afficheur 7 segment

Message non lude critor » 17 Jan 2017, 22:18

Voilà, j'ai fait un programme ci-joint qui est capable de s'adapter à n'importe quelle façon de connecter l'afficheur 7 segments.
Et qui devient donc utilisable par tous, et pas seulement par l'auteur initial du projet ! :bj:

Il y a juste une 1ère phase, une sorte de calibrage visuel où il faut choisir le port BB qui allume le segment demandé par le programme, avec en prime un retour visuel immédiat pour chaque choix. :D
7725
Plus besoin de suivre les fils et risquer de se tromper de port ! :bj:
Pour le moment, c'est une simple interface texte, mais je trouve que c'est déjà une belle avancée :
Code: Tout sélectionner
[[1,1,1,1,1,1,0,0][0,1,1,0,0,0,0,0][1,1,0,1,1,0,1,0][1,1,1,1,0,0,1,0][0,1,1,0,0,1,1,0][1,0,1,1,0,1,1,0][1,0,1,1,1,1,1,0][1,1,1,0,0,0,0,0][1,1,1,1,1,1,1,0][1,1,1,1,0,1,1,0][1,1,1,0,1,1,1,0][0,0,1,1,1,1,1,0][1,0,0,1,1,1,0,0][0,1,1,1,1,0,1,0][1,0,0,1,1,1,1,0][1,0,0,0,1,1,1,0][1,0,1,1,1,1,0,0][0,1,1,0,1,1,1,0][0,0,1,0,0,0,0,0][0,1,1,1,1,0,0,0][0,0,0,0,0,0,0,1][0,0,0,1,1,1,0,0][0,0,0,0,0,0,0,1][0,0,1,0,1,0,1,0][0,0,1,1,1,0,1,0][1,1,0,0,1,1,1,0][0,0,0,0,0,0,0,1][0,0,0,0,1,0,1,0][1,0,1,1,0,1,1,0][0,0,0,1,1,1,1,0][0,1,1,1,1,1,0,0][0,0,0,0,0,0,0,1][0,0,0,0,0,0,0,1][0,0,0,0,0,0,0,1][0,0,0,0,0,0,0,1][0,0,0,0,0,0,0,1]]→[A]
dim([A]
Rep(1→M
dim([A]
Rep(2→C
EffÉcran
Disp " -
Disp "! !
Disp " -
Disp "! !
Disp " - .
Disp "BB:
For(N,1,10
Output(6,3+2N,N
End
Output(8,1,"Orient display as on theleft, then select port to   match display on the right
1→N
0→L
0→K
0→dim(L₁
C→dim(L₁
0→L
1→V
While N≤C et K≠22 et K≠45 et K≠23
For(I,1,5
Output(I,23,"   
End
If N=1
Then
Output(1,24,"-
Else
If N=2
Then
Output(2,25,"!
Else
If N=3
Then
Output(4,25,"!
Else
If N=4
Then
Output(5,24,"-
Else
If N=5
Then
Output(4,23,"!
Else
If N=6
Then
Output(2,23,"!
Else
If N=7
Then
Output(3,24,"-
Else
Output(5,26,".
End
End
End
End
End
End
End
Output(7,1,"                         
Output(7,3+2V,"^
If L≠V
Then
V→L
If L₁(N
Send("DISCONNECT DIGITAL.OUT "+eval(N
V→L₁(N
Send("CONNECT DIGITAL.OUT "+eval(N)+"TO BB"+eval(V
Send("SET DIGITAL.OUT "+eval(N)+" ON
End
0→K
While non(Rep
getKey→K
End
V→L
V+(K=26 et V<10)-(K=24 et V>1→V
If K=105 ou K=22 ou K=23 ou K=45
Then
Send("DISCONNECT DIGITAL.OUT "+eval(N
If K=105
Then
N+1→N
1→V
0→L
End
End
End


Et plus j'ai rajouté une partie de l'alphabet également, à chaque fois que j'ai trouvé un moyen de représenter la lettre, que ce soit en majuscule ou minuscule :
7726
Code: Tout sélectionner
If K≠22 et K≠23 et K≠45
Then
For(N,1,C
Send("CONNECT DIGITAL.OUT "+eval(N)+" TO BB"+eval(L₁(N
End
EffÉcran
"0123456789AbCdEFGHiJKLMnoPQrStUVWXYZ→Chn1
0→A
While A<M et non(getKey
For(N,1,C
Send("SET DIGITAL.OUT "+eval(N)+" OFF
End
Output(1,1,sousch(Chn1,A+1,1
For(N,1,C
If [A](1+A,N
Send("SET DIGITAL.OUT "+eval(N)+" ON
End
Wait 1
A+1→A
End
For(N,1,C
Send("DISCONNECT DIGITAL.OUT "+eval(N
End
End


@Ti64CLi++ N'oublie pas les commandes "DISCONNECT" sur la terminaison de ton programme, car sinon le TI-Innovator n'est pas réinitialisé et il y aura plein d'erreurs au relancement de ton programme. Cela oblige à débrancher+éteindre tout puis rebrancher+rallumer sinon, ce qui est vite pénible. ;)

Voici une démo complète du programme, avec donc le calibrage visuel puis l'alphabet alphanumérique :


Téléchargement :
DISP7.8xp
(1.69 Kio) Téléchargé 80 fois
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 42.1%
 
Messages: 41492
Images: 14556
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Afficheur 7 segment

Message non lude critor » 17 Jan 2017, 22:49

Comme Adriweb est exigeant :P voici de suite la mise à jour qui n'éteint plus tous les segments à chaque rafraîchissement :
Code: Tout sélectionner
[[1,0,1,1,0,1,1,1,1,1,1,0,1,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0][1,1,1,1,1,0,0,1,1,1,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0][1,1,0,1,1,1,1,1,1,1,1,1,0,1,0,0,1,1,1,1,0,0,0,1,1,0,0,0,1,0,1,0,0,0,0,0][1,0,1,1,0,1,1,0,1,1,0,1,1,1,1,0,1,0,0,1,0,1,0,0,1,0,0,0,1,1,1,0,0,0,0,0][1,0,1,0,0,0,1,0,1,0,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,0,1,0,1,1,0,0,0,0,0][1,0,0,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,0,0,0,1,0,0,0,1,0,0,1,1,1,0,0,0,0,0][0,0,1,1,1,1,1,0,1,1,1,1,0,1,1,1,0,1,0,0,0,0,0,1,1,1,0,1,1,1,0,0,0,0,0,0][0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,1,1,1,1,1]]→[A]
dim([A]
Rep(2→M
dim([A]
Rep(1→C
EffÉcran
Disp " -
Disp "! !
Disp " -
Disp "! !
Disp " - .
Disp "BB:
For(N,1,10
Output(6,3+2N,N
End
Output(8,1,"Orient display as on theleft, then select port to   match display on the right
1→N
0→L
0→K
0→dim(L₁
C→dim(L₁
0→L
1→V
While N≤C et K≠22 et K≠45 et K≠23
For(I,1,5
Output(I,23,"   
End
If N=1
Then
Output(1,24,"-
Else
If N=2
Then
Output(2,25,"!
Else
If N=3
Then
Output(4,25,"!
Else
If N=4
Then
Output(5,24,"-
Else
If N=5
Then
Output(4,23,"!
Else
If N=6
Then
Output(2,23,"!
Else
If N=7
Then
Output(3,24,"-
Else
Output(5,26,".
End
End
End
End
End
End
End
Output(7,1,"                         
Output(7,3+2V,"^
If L≠V
Then
V→L
If L₁(N
Send("DISCONNECT DIGITAL.OUT "+eval(N
V→L₁(N
Send("CONNECT DIGITAL.OUT "+eval(N)+"TO BB"+eval(V
Send("SET DIGITAL.OUT "+eval(N)+" ON
End
0→K
While non(Rep
getKey→K
End
V→L
V+(K=26 et V<10)-(K=24 et V>1→V
If K=105 ou K=22 ou K=23 ou K=45
Then
Send("DISCONNECT DIGITAL.OUT "+eval(N
If K=105
Then
N+1→N
1→V
0→L
End
End
End
If K≠22 et K≠23 et K≠45
Then
For(N,1,C
Send("CONNECT DIGITAL.OUT "+eval(N)+" TO BB"+eval(L₁(N
End
EffÉcran
"0123456789AbCdEFGHiJKLMnoPQrStUVWXYZ→Chn1
0→dim(L₁
C→dim(L₁
0→A
While A<M et non(getKey
Output(1,1,sousch(Chn1,A+1,1
L₁
Matrliste([A],A+1,L₁
L₁-Rep→L₂
For(N,1,C
If 0<L₂(N
Then
Send("SET DIGITAL.OUT "+eval(N)+" ON
Else
If 0>L₂(N
Send("SET DIGITAL.OUT "+eval(N)+" OFF
End
End
Wait 1
A+1→A
End
For(N,1,C
Send("DISCONNECT DIGITAL.OUT "+eval(N
End
End

Le rafraîchissement est donc plus rapide. :)

Téléchargement :
DISP7.8xp
(1.7 Kio) Téléchargé 92 fois


Vidéo à venir si j'en ai le temps.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 42.1%
 
Messages: 41492
Images: 14556
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Afficheur 7 segment

Message non lude TheMachine02 » 17 Jan 2017, 22:53

Magnifique :#top#: Le TI innovator a l'air vraiment pas mal. Cette idée d'envoyer des commandes via chaîne de caractère est aussi intéressante. Et bravo à Ti64CLi++ pour le programme initial/branchements.
Avatar de l’utilisateur
TheMachine02Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 29.4%
 
Messages: 341
Images: 0
Inscription: 16 Jan 2013, 18:27
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Médecine

Re: Afficheur 7 segment

Message non lude grosged » 17 Jan 2017, 22:59

Est-il possible de modifier la luminosité en alternant très rapidement un segment ON / OFF ?..Si oui, plusieurs degrès possible ? (en jouant sur les durées ON et OFF)
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 30.2%
 
Messages: 770
Images: 75
Inscription: 14 Sep 2011, 12:29
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Afficheur 7 segment

Message non lude critor » 17 Jan 2017, 23:07

Je suis presque certain que non.
Les commandes TI-Innovator passent par l'USB et même si elles ne sont pas lentes, elles sont quand même loin d'être instantanées.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 42.1%
 
Messages: 41492
Images: 14556
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Afficheur 7 segment

Message non lude critor » 17 Jan 2017, 23:16

Voici la vidéo promise du programme amélioré :


Et si vous avez des idées pour représenter les lettres manquantes, n'hésitez pas ! ;)
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 42.1%
 
Messages: 41492
Images: 14556
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Afficheur 7 segment

Message non lude grosged » 17 Jan 2017, 23:28

je verrais bien :
- q représenté comme un 9 mais sans la barre du bas
- y toujours comme un 9 mais sans la barre du haut ;)
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 30.2%
 
Messages: 770
Images: 75
Inscription: 14 Sep 2011, 12:29
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

PrécédenteSuivante

Retourner vers Langages alternatifs

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 6 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1275 utilisateurs:
>1241 invités
>29 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)