Page 1 sur 2

Branche facilement tout afficheur 7segments sur TI-Innovator

Message non luPosté: 13 Mar 2017, 22:38
de critor
7601Le TI-Innovator Breadboard Pack que nous vous avions présenté lors de notre (Un)Boxing Week 2016 vient entre autres avec un afficheur numérique à 7 segments.
Il s'agit ici d'un LTS-4301JR avec pas moins de 10 pattes.
Comment peut-on donc faire pour le connecter rapidement et correctement en toute situation au port BreadBoard du périphérique TI-Innovator ?

Il suffit de commencer par identifier la cathode, en consultant par exemple la datasheet de ce composant. Ici, on peut utiliser au choix comme cathode la patte centrale des 2 rangées. Il nous suffit donc de la connecter sur une masse de la rangée inférieure du port BreadBoard du TI-Innovator.

77237722Mais maintenant il nous reste 7 segments plus le séparateur décimal, c'est-à-dire 8 broches à connecter correctement.
Il n'est pas indiqué clairement sur le composant quelle patte correspond à quoi, et nous n'aurons pas toujours la possibilité d'avoir la datasheet sous la main, notamment quand on transporte un projet pour le présenter...

7725Voici donc ce soir un petit utilitaire sympa pour TI-83 Premium CE et TI-84 Plus CE, ainsi que son adaptation pour TI-Nspire par Ti64CLi++.

Tu as juste à relier les 8 autres broches n'importe comment aux ports BB1 à BB10 de la rangée supérieure du connecteur BreadBoard.
Dans une première phase, le programme va tout simplement te demander pour chaque segment représenté à l'écran, de choisir le port BB qui l'allume, et la vérification visuelle est immédiate ! :bj:

7726Dans une deuxième phase, le programme va afficher l'ensemble des caractères qu'il supporte, te permettant ainsi de confirmer la correction du réglage.


Tu pourras également t'inspirer de cette fonctionnalité de réglage pour tes projets TI-Innovator, afin que tes utilisateurs ne se cassent pas trop la tête à chercher comment connecter correctement leur afficheur 7 segments.



Téléchargement :

Source : viewtopic.php?f=12&t=19484

Re: Branche facilement tout afficheur 7segments sur TI-Innov

Message non luPosté: 13 Mar 2017, 22:48
de Adriweb
Pas mal.

Au passage, je vois dans le code Send("SET DIGITAL.OUT "+eval(N)+" ON.
Il se trouve qu'il n'y a pas besoin de concaténer séparement les choses, le eval() est interpolé automatiquement, donc ceci fonctionne: Send("SET DIGITAL.OUT eval(N) ON

Re: Branche facilement tout afficheur 7segments sur TI-Innov

Message non luPosté: 13 Mar 2017, 22:53
de critor
Il me semble avoir remarqué des cas où cela ne fonctionnait pas, tu sais...
Notamment lorsque la chaîne n'est pas dans un Send().

Or comme je construis souvent mes chaînes *avant* d'appeler la fonction Send(), je préfère adopter une façon d'écrire qui marche partout.
Cela évite aussi d'induire le lecteur du programme en erreur (le "...eval(...)..." n'ayant pas le même comportement selon le contexte).

Re: Branche facilement tout afficheur 7segments sur TI-Innov

Message non luPosté: 13 Mar 2017, 22:57
de guinatore
Quelqu'un sait-il quel est le titre de la musique dans la vidéo svp? :D :D
Merci d'avance :p

Re: Branche facilement tout afficheur 7segments sur TI-Innov

Message non luPosté: 13 Mar 2017, 23:04
de Adriweb
critor a écrit:Il me semble avoir remarqué des cas où cela ne fonctionnait pas, tu sais...
Notamment lorsque la chaîne n'est pas dans un Send().

Or comme je construis souvent mes chaînes *avant* d'appeler la fonction Send(), je préfère adopter une façon d'écrire qui marche partout.
Cela évite aussi d'induire le lecteur du programme en erreur (le "...eval(...)..." n'ayant pas le même comportement selon le contexte).

C'était implicite dans mon message, mais je parlais bien dans le cas d'un Send(), oui.
Ce qui risque d'être le cas le plus présent pour les utilisateurs.

Re: Branche facilement tout afficheur 7segments sur TI-Innov

Message non luPosté: 13 Mar 2017, 23:09
de critor
Pas forcément.

Un programme propre/générique serait censé pouvoir fonctionner avec différents types de capteurs/actionneurs (tant qu'ils conviennent) branchés sur n'importe quel port.
Et cela se gère justement en prégénérant et stockant les chaînes spécifiant ces paramètres, les insérant ensuite dans chaque chaîne de commande en ayant besoin.


Et il n'empêche qu'utiliser des écritures ambigues (comportement différent selon le contexte), c'est pas bien.
Nous ne rendons pas service à ceux qui liront les programmes, puis penseront pouvoir utiliser les mêmes écritures pour leurs idées de programmes, et ne comprendront ensuite pas pourquoi ça ne marche pas...

Re: Branche facilement tout afficheur 7segments sur TI-Innov

Message non luPosté: 13 Mar 2017, 23:14
de Wistaro
Super, merci à toi :)

Est-il possible de rajouter un second module 7 segments pour faire un compteur sur 2 digits?

Re: Branche facilement tout afficheur 7segments sur TI-Innov

Message non luPosté: 13 Mar 2017, 23:18
de critor
Merci :)


En théorie, rien n'interdit d'utiliser un 2ème afficheur 7 segments..

En pratique, le port BreadBoard ne suffira pas.
Il n'a que 10 voies, or il nous en faudrait au moins 14 là pour contrôler les 14 segments.
Image

Peut-être en utilisant un autre connecteur pour le 2ème afficheur, mais il faudra alors du code spécifique vu que ce ne sera pas du tout connecté pareil.

Re: Branche facilement tout afficheur 7segments sur TI-Innov

Message non luPosté: 13 Mar 2017, 23:37
de Adriweb
critor a écrit:Et il n'empêche qu'utiliser des écritures ambigues (comportement différent selon le contexte), c'est pas bien.
Nous ne rendons pas service à ceux qui liront les programmes, puis penseront pouvoir utiliser les mêmes écritures pour leurs idées de programmes, et ne comprendront ensuite pas pourquoi ça ne marche pas...

Il me semble que c'est documenté, donc ça devrait avoir au moins le mérite d'être rappelé plus souvent, il n'y a pas forcément que des débutants par ici.
Oui, peut-être qu'un débutant va croire des choses fausses, mais une fois qu'il aura lu un minimum de littérature sur le sujet, il sera bien content de trouver l' "astuce" plus rapide à taper (et possiblement à exécuter). Après tout, il y a des centaines de choses à potentiellement apprendre en Basic, alors une de plus une de moins...

Enfin bref, détail - un non-débutant aura vu ma remarque ici et sur les programmes de TI qui font ça aussi, chacun fait ce qui lui plaira le mieux, ou plus habilement, selon le plus efficace par rapport au contexte (dans un Send() ou non, etc.)

Re: Branche facilement tout afficheur 7segments sur TI-Innov

Message non luPosté: 13 Mar 2017, 23:42
de critor
Même un non débutant ne fait pas du TI-Basic tous les jours.

Et je trouve même que cette subitilité est un défaut, qui casse l'esprit et la logique du TI-Basic.
Un horrible hack quoi...

Normalement en TI-Basic les 2 codes suivants sont équivalents :
Code: Tout sélectionner
"..."
fonction(Rep)

Code: Tout sélectionner
fonction("...")


Désormais, dans le cas particulier d'une fonction Send() et d'un token eval( dans la chaîne, il n'y a plus équivalence.