π
<-

Afficheur 7 segments

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

Re: Afficheur 7 segment

Unread postby 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
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 47.3%
 
Posts: 41958
Images: 15681
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Afficheur 7 segment

Unread postby critor » 17 Jan 2017, 21:41

Pour le fun, voici ce que ça me sortait lors du 1er branchement : :P
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 47.3%
 
Posts: 41958
Images: 15681
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Afficheur 7 segment

Unread postby 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.

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...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.9%
 
Posts: 14738
Images: 1119
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: Afficheur 7 segment

Unread postby 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: Select all
[[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: Select all
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
You do not have the required permissions to view the files attached to this post.
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 47.3%
 
Posts: 41958
Images: 15681
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Afficheur 7 segment

Unread postby 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: Select all
[[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


Vidéo à venir si j'en ai le temps.
You do not have the required permissions to view the files attached to this post.
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 47.3%
 
Posts: 41958
Images: 15681
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Afficheur 7 segment

Unread postby 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.
User avatar
TheMachine02Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 29.6%
 
Posts: 341
Images: 0
Joined: 16 Jan 2013, 18:27
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Médecine

Re: Afficheur 7 segment

Unread postby 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)
User avatar
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 30.2%
 
Posts: 770
Images: 75
Joined: 14 Sep 2011, 12:29
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Afficheur 7 segment

Unread postby 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
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 47.3%
 
Posts: 41958
Images: 15681
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Afficheur 7 segment

Unread postby 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
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 47.3%
 
Posts: 41958
Images: 15681
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Afficheur 7 segment

Unread postby 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 ;)
User avatar
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 30.2%
 
Posts: 770
Images: 75
Joined: 14 Sep 2011, 12:29
Gender: Not specified
Calculator(s):
MyCalcs profile

PreviousNext

Return to Langages alternatifs

Who is online

Users browsing this forum: ClaudeBot [spider] and 2 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
655 utilisateurs:
>630 invités
>16 membres
>9 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)