Afficheur 7 segments Adafruit

Vous venez de déballer votre Raspberry Pi et vous vous posez des questions ? C'est ici que ça se passe !

Modérateur : Francois

Avatar du membre
la_couenne
Messages : 15
Enregistré le : lun. 2 févr. 2015 07:32

Afficheur 7 segments Adafruit

Message par la_couenne » ven. 20 mai 2016 21:35

Bonjour à tous!

Je suis dégouté car j'ai l'impression qu'il n'y a rien de compliqué mais pourtant je ne trouve pas l'information..
J'ai fait un projet de réveil qui se connecte à mon agenda pour définir l'heure du lever du lendemain.
Image
Je souhaite allumer mes afficheurs à 7 segments via l'interface I2C.

J'utilise la distribution Jessie sur mon Raspberry, une fois mon afficheur connecté, j'ai vérifié qu'il soit reconnu en tapant la commande:
sudo i2cdetect -y 1

Maintenant je ne parviens pas à trouver un exemple de code python, ni les librairies sur le site d'adafruit :shock:
Sur leur page il y a bien un readme ici: https://github.com/adafruit/Adafruit-Ra ... ython-Code
mais il ne m'aide pas, ou alors je passe à côté...

Si quelqu'un peut m'aider, je serai éternellement reconnaissant car ça fait une semaine que je sèche :(
Merci d'avance

EVOTk

Re: Afficheur 7 segments Adafruit

Message par EVOTk » ven. 20 mai 2016 22:01

Salut,
Quelle est la référence de tes afficheurs ? Ce sont des afficheurs classique ou a l’arrière il y a une platine intégrée pour les gérer ?

destroyedlolo
Raspinaute
Messages : 1587
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: Afficheur 7 segments Adafruit

Message par destroyedlolo » ven. 20 mai 2016 22:40

Et quel est le résultat d'i2cdetect ?
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

Avatar du membre
la_couenne
Messages : 15
Enregistré le : lun. 2 févr. 2015 07:32

Re: Afficheur 7 segments Adafruit

Message par la_couenne » ven. 20 mai 2016 23:29

Merci de vos réponses rapides :)

Ce sont des afficheurs normaux avec 10 pins, mais je les ai reliés à la place d'un petit afficheur qui lui était soudé sur une platine I2C munie de 4 fils (5v, GND, SCL et SDA)

Voici le résultat d'i2cdetect:

Code : Tout sélectionner

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- 38 -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         
le 38 est en face du 8
(i2cdetect ne retourne rien quand je débranche l'afficheur..)

Merci ;)

Edit La modération a écrit : Je me suis permis j'ajouter les balises code/code pour passer en police proportionnelle. Ainsi, on comprend mieux le le retour d'i2cdetect.
En bref, adresse 38, quoi !

destroyedlolo
Raspinaute
Messages : 1587
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: Afficheur 7 segments Adafruit

Message par destroyedlolo » sam. 21 mai 2016 10:56

Ben, du plus simple au plus compliqué :
  1. il faut que tu trouves la référence AdaFruit de la carte I2C, ce qui te permettra de trouver le driver
  2. sinon, trouver le numéro du chip driver LED : celui qui controle les segments LED par l'I2C et à ce moment, tu trouveras le driver correspondant ou alors, avec le datashit, tu sauras quelles sont les commandes à envoyer
  3. si tu ne trouves pas, il faut que tu cherches sur le Net quels serait le chip qui pourrait répondre à l'adresse 38
Comme généralement c'est pas mal fait chez AdaFruit donc la #1 devrait facilement se faire :mrgreen:
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

spourre
Raspinaute
Messages : 735
Enregistré le : lun. 22 déc. 2014 16:50
Localisation : 67380 LINGOLSHEIM

Re: Afficheur 7 segments Adafruit

Message par spourre » sam. 21 mai 2016 11:25

la_couenne a écrit :Merci de vos réponses rapides :)

Ce sont des afficheurs normaux avec 10 pins, mais je les ai reliés à la place d'un petit afficheur qui lui était soudé sur une platine I2C munie de 4 fils (5v, GND, SCL et SDA)
Bonjour,

Tout cela est clair comme du jus de boudin et ne favorise pas le dépannage.
Dans l'ordre, il faudrait préciser:

1) référence de la carte d'origine (à priori, une Adafruit qui interface un (ou des) afficheurs 7 segments en I2C
2) référence du gros afficheurs 7 segments qui, semble-t-il, remplace le petit afficheur d'origine.

Le risque principal étant que ce nouvel afficheur soit incompatible avec l'ancien:
- technologie (anode ou cathode commune, driver différent, intensité consommée, tension, câblage, multiplexage...)

Avoir une réponse I2C signifie juste que la partie I2C de la carte d'origine n'est pas HS. Le lien donné explique juste la "nouvelle" politique d'adafruit qui a mis ses logiciels dans des git car la maintenance des versions en téléchargement était devenue trop lourde.


Comme toujours, un problème bien exposé est souvent un problème à moitié résolu. Il faut être précis, même si ce n'est pas toujours facile pour un newby.

Sylvain

Avatar du membre
la_couenne
Messages : 15
Enregistré le : lun. 2 févr. 2015 07:32

Re: Afficheur 7 segments Adafruit

Message par la_couenne » sam. 21 mai 2016 14:27

Alors non le module n'est pas directement celui d'AdaFruit, mais sur le site du commerçant il me renvoie sur eux pour les dirvers.
Voici la page où je l'avais acheté: http://www.play-zone.ch/en/dk-4-zeichen ... kpack.html

Ils me renvoient ici: https://github.com/adafruit/Adafruit_LED_Backpack
Est-ce que je peux utiliser ces fichiers avec un raspberry ou sont-ils prévus pour un Arduino?
Car dans les exemples d'Adafuit, dans le script "clock_sevenseg_ds1307", il fait appel aux librairies Adafruit_LEDBackpack.h et Adafruit_GFX.h
Je dois les placer dans un dossier spécial pour que Python les trouve? (et je le trouve où?)

Pour ce qui est des références de mes afficheurs, pour le moment j'utilise ceux d'origine soudés au module I2C. (Pas encore remplacés par mes grand afficheurs).

Bon je vais chercher encore, merci pour votre aide ;)

spourre
Raspinaute
Messages : 735
Enregistré le : lun. 22 déc. 2014 16:50
Localisation : 67380 LINGOLSHEIM

Re: Afficheur 7 segments Adafruit

Message par spourre » dim. 22 mai 2016 17:59

Du bon et du moins bon:

1) Donc la carte est dans son état d'origine, interfacée en I2C et pouvant même s'alimenter en 5 V et en 3.3V (au prix d'une légère perte de luminosité (cf. description en allemand sur le site que vous avez indiqué).

2) en suivant votre lien pour le driver (qui conduit chez Adafruit), je tombe sur un tableau de compatibilité QUI NE MENTIONNE PAS LE RASPBERRY.
Pour moi, il faut donc oublier ce "pilote" . Si un autre participant pouvait confirmer mon interprétation, ça serait bien.

3) Heureusement, le Raspberry supporte l'I2C. Voici un lien, en français, qui donne pas mal d'explications:
http://innovelectronique.fr/2013/03/02/ ... spberrypi/

4) Vous pourrez donc utiliser cette carte mais, il va falloir étudier la documentation du contrôleur pour connaître ses registres et les valeurs à envoyer car vous devrez tout gérer à la main. C'est toujours très instructif, même si ça pique un peu les yeux:
http://pdf1.alldatasheet.fr/datasheet-p ... 16K33.html

On se rend compte que ce circuit, comme souvent, est très largement sous-exploité. D'ailleurs Adafruit reconnaît (dans les readme du driver), ne pas avoir su exploiter la fonction clavier (ce contrôleur est capable de gérer aussi un clavier ce qui pourrait être utile pour votre projet).

5) Je suis surpris de l'adresse de retour donnée par l'interrogation du bus I2C. Toujours sur le lien de votre fournisseur (mais aussi chez Adafruit), cette carte possède 3 straps à souder, qui déterminent son adresse I2C. Il y a 8 adresses qui vont de 0x70 à 0x77:
Mit 3 Adress-Jumpern (Lötbrücken) lassen sich die Module auf 8 verschiedene Adressen von 0x70-0x77 setzen - so können bis zu 8 Module gleichzeitig betrieben werden.
Pouvez-vous vérifier l'activation du support de l'I2c, la présence du module (lsmod) et retester ?

Bon courage

Sylvain

PS (donc après la signature): Je ne connais pas votre niveau mais comme on est dans la section "Débutants", je vous rappelle qu'un circuit I2C possède 2 adresses, une pour la lecture, l'autre pour l'écriture (on peut considérer que l'adresse est codée sur les 8 bits, chaque esclave a alors deux adresses, l'adresse paire qui sert à lui envoyer des données, l'adresse impaire pour lui demander d'en envoyer).

destroyedlolo
Raspinaute
Messages : 1587
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: Afficheur 7 segments Adafruit

Message par destroyedlolo » dim. 22 mai 2016 19:32

spourre a écrit :2) en suivant votre lien pour le driver (qui conduit chez Adafruit), je tombe sur un tableau de compatibilité QUI NE MENTIONNE PAS LE RASPBERRY.
Pour moi, il faut donc oublier ce "pilote" . Si un autre participant pouvait confirmer mon interprétation, ça serait bien.
Oui et non :mrgreen:
En fait, il suffirait de convertir les appelles wire.* en leur pendant pour rPI pour que ca fonctionne ... et ça doit existé car elle ne font que gérer la communication bas niveau I2C.
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

Avatar du membre
la_couenne
Messages : 15
Enregistré le : lun. 2 févr. 2015 07:32

Re: Afficheur 7 segments Adafruit

Message par la_couenne » dim. 22 mai 2016 19:39

Re bonjour à vous,

Merci Sylvain pour ta réponse complète et ton lien! Ca me semble trop complexe pour moi de modifier les wire.*

Du coup j'ai complètement changé de façon de faire! Car comme tu me demandais j'ai revu les caractéristiques de tous les composants, et je me suis aperçu que mes super grand digit consomment 15mA par segments! donc je ne pourrai pas les utiliser avec mon module I2C...

Au final je les ai branchés multiplexés sur 7 Gpio et utilisé encore 4 Gpio pour mettre l'afficheur à la masse afin de l'allumer. Avec le script je veux afficher chaque afficheur à tour de rôle durant 20msec, et ça devrait le faire. On verra si ça ne scintille pas trop :)
Image

En tout cas un grand merci à tous pour vos réponses précises, et rapides!
Bon début de semaine

Répondre

Retourner vers « Débutants »