Trois 7 segments sur UNO

Bonsoir,
J'ai de nouveau un soucis sur ma programmation.
Je vous explique : j'ai un capteur de température qui m’envoie une valeur. Et je veux afficher cette valeur sur trois afficheurs 7 segments.
La ou ça se complique c'est que je veux une plage de 0° à 29.9° pour une résolution de 0.1°, donc 299 valeurs possibles... En faisant de la manière dont j'ai appris, c'est à dire pour chaque valeur possible déclarer quelle broche va être allumée et quelle broche va être éteinte, je dépasse largement les 32ko de l'Arduino UNO...
Je ne sais pas comment faire... Si quelqu'un a une idée :slight_smile:

L'idée de base :
Matériel:
un registre à décalage par afficheur
les trois registres en série
Chaqune des 8 sorties d'un registre à décalage contrôle un segment ou le point décimal.

Logiciel:
1 Tableau unique pour 10 octets
chiffre(i) = 0b10010101 par exemple -> "1" le segment est allumé, "0" le segment est éteint -> a toi de faire la table de conversion à partir de la fiche technique de l'afficheur.

A l'aide de la fonction shiftout() de l'IDE arduino tu envoie successivement 3 octets : un par afficheur

Un registre à décalage n'a strictement besoin que de 2 lignes de commande l'horloge et les données. Pour éviter de voir les états intermédiaires il bon d'utiliser une troisième ligne "Latch" ou en français "verrou".

Voila je stoppe ici: il y a plein de documentation sur le net qui couvre cet usage. Registre à décalage = Shift Register

Bonjour,

Si tu ne veut pas te casser la tête :

Test sur mon blog :

Merci pour vos réponses !
Après quelques recherches sur les registres à décalage, je suis tombé la dessus : Montage 10 afficheurs 7 segments. - #15 by Artouste - Français - Arduino Forum
La deuxième carte, avec les 8 afficheurs 7 segments, leds et BP, est très intéressante.
J'ai quelques questions à poser :
-Existe-t-il une librairie ?
-Comment est reliée la nappe à l'arduino ?
-Comment est la qualité générale ?
Voila, c'est à peu près tout.
Voici le lien : http://dx.com/p/8x-digital-tube-8x-key-8x-double-color-led-module-81873

qg44:
-Existe-t-il une librairie ?

Oui mais je la trouve un peu bizarre dans sa conception :

Sinon ça ce contrôle en "bas niveau" assez facilement :

qg44:
-Comment est reliée la nappe à l'arduino ?

Avec des fils :grin:

qg44:
-Comment est la qualité générale ?

Ça dépend, la carte sur DX (là ou je l'ai acheté) est pas trop mal.

bonsoir
perso, je les trouve pratique là où il faut quelques bp et du 7segments avec de la luminosité variable
c'est simple d'interfaçage (avec la lib ou le bas niveau style skywodd)
noter au passage la possible extension de BP expliquée par skywodd (jamais eu besoin de l'utiliser , mais c'est bon à savoir) 8)
le vrai seul reproche que je ferais est d'ordre mécanique , le connecteurs d'entrée/sortie (HE10 en 2X5) sont tres mal placés pour etre facilement et proprement integrable.
mais tant que ce n'est pas pour faire de la "serie industrielle" ça ce gere facilement. :grin:

a ~ 7$ le module livré , c'est un produit intéressant

@ skywodd, tu la trouve bizarre en quoi la lib ?

Artouste:
@ skywodd, tu la trouve bizarre en quoi la lib ?

Quand j'avais regardé le code de la lib je me rappelle avoir vu des trucs pas nette.
C'est du reste pour ça que j'ai codé mon truc en bas niveau.

skywodd:

Artouste:
@ skywodd, tu la trouve bizarre en quoi la lib ?

Quand j'avais regardé le code de la lib je me rappelle avoir vu des trucs pas nette.
C'est du reste pour ça que j'ai codé mon truc en bas niveau.

ok
perso, je la trouve plutôt bien "finie (mais pas joué avec depuis qq mois) " avec sa prise en compte astucieuse de pouvoir mettre les
7seg la "tête en bas" ce qui dans certains cas règle l'implantation mécanique"
reste là alors le problème du DP qui se retrouve en haut à gauche :grin:
mais quand on le sait avant ...

J'ai ouvert le code d'origine histoire de me souvenir du probléme.
1er fichier .cpp, ça a pas raté ...
Les calculs en int de 0 à 8, les digitalWrite() pour le spi software, les String pour le texte, ...

skywodd:
J'ai ouvert le code d'origine histoire de me souvenir du probléme.
1er fichier .cpp, ça a pas raté ...
Les calculs en int de 0 à 8, les digitalWrite() pour le spi software, les String pour le texte, ...

ok en gros ça commence mal, mais ça fini bien :grin:

tiens il faudra que je regarde avec ton code et l'extension BP que tu a trouvé si ce ne serait pas possible
de coller un encodeur cheap A/B + Push , intuitivement je me dis qu'a petit taux de rotation ça doit etre possible
ça peu être un plus en ergonomie pour interfacer simple

Voila, j'ai commandé la carte chez DX.com avec un shield ethernet, je vais voir ce que j'arrive à faire avec !! Plus qu'a attendre la réception...
Un grand merci à vous :slight_smile:

qg44:
Voila, j'ai commandé la carte chez DX.com avec un shield ethernet, je vais voir ce que j'arrive à faire avec !! Plus qu'a attendre la réception...

Faire très attention avec les cartes Arduino en provenance de chine, certaines contrefaçons sont de si mauvaise qualité qu'elle peuvent prendre feu spontanément (j'ai eu le cas par mail).