Je pensais que les afficheur LCD I2C étaient standard, je me suis trompé.
non pas standard.
Le panneau LCD de l'afficheur est contrôlé presque toujours par un circuit intérgré "quasi standard' qui reçoit ses commandes en parallèle , sur 8 ou 4 bits.
Entre ce controleur d'écran et le bus I2C un second circuit intégré d'interface(I2C/Parallèle) et à ce niveau des circuits intégrés divers peuvent être rencontrés
Donc la solution c'est soit de trouver un programme complet qui se base sur la meme librairie soit de modifier le programme que j'ai trouvé pour qu'il s'adapte a la bonne libraire ( ce dont je ne me sent pas capable a l'heure actuelle.
Effectivement je continue a réfléchir et a chercher de mon coté, donc oui j'ai réussi a régler mon problème.
Je résume :
j'ai réussi a faire fonctionner la RTC avec afficheur LCD I2C.
J'ai réussi a faire fonctionner la sonde humidité/température.
J'ai réussi a combiner les deux et a afficher les infos la ou je voulais.
Maintenant c'est comment récupérer ces infos pour pouvoir les afficher avec un afficheur 7 segments de 4 digits.
Je me vois deux problèmes :
Comment récupérer ces infos et sous quelle forme.
Comment alimenter les 4 x 7 segment a partir d'un arduino uno sachant qu'il ne me reste que 10 ou 11 sorties de dispo.
4 X 7 segments ça fait 28 circuits + les ":" et le signe des degrés.
Le résultat final sera une horloge géante affichant alternativement l'heure, la date et la température.
Pour contoler un afficheur 7 non 8 segments -> ne pas oublier le point décimal, on peut utiliser des registres à décalge de type 74HC595.
Avec plusieurs afficheurs il faut 1 registre par afficheur, les registres étant chaînés (mis à la queue leu leu)
Il doit exister une nombreuse documentation à commencer sur ce forum -> utilise la loupe en haut à droite pour faire des recherches sur ce forum, quelque chose comme "afficheurs 74HC595" devrait donner des résultats.
Felicitation d'avoir fait tout ça en projet débutant.
Tu peux trouver des écrans 4Digit 7Segments sur des shield a commander en I2C ici ou ici par exemple
Sinon tu peux utiliser des registres à décalage qui te permettent de rajouter des sorties à ton arduino. Un des composants les plus courants est le 74HC595. Il est très bien documenté exemple de tuto
D'autres composants remplissent la même fonction mais communiquent en I2C mcp23s17. Ils sont aussi plus chers.
Je vais donc mettre un frein et essayer de comprendre ce que je fait et surtout étudier un peu pour ne plus faire du bête copié/collé.
sage décision !!
ce qui me bloque c'est comment extraire la valeur de chaque digit
prenons les minutes, il faut extraire le chiffre des dizaines et celui des unités
Utiliser la division entière par 10 et le modulo 10 (reste de la division par 10)
Etudier Division et Modulo sur cette page , extraite d'un ensemble de tutoriels chaudement recommendés
J'ai fait un tour sur le lien concernant les opération de base ( division et modulo ) et j'ai compris comment faire pour extraire les unité et le dizaines.
Par contre je viens d'éplucher les exemple de le biblio RTC et je ne vois nulle part comment on place la valeur dans une variable.
Un transistor (npn ou pnp) par afficheur pour commuter le commun (anode ou cathode) soit 4 broches sur l'arduino, quand aux 7 segments ils sont tous en parallèle soit 7 broches sur l'arduino. On commute les communs en séquence dont on perd 75% de luminosité, par contre on n'ajoute rien d'autre que des transistors pas chers !
rafununu:
Un transistor (npn ou pnp) par afficheur pour commuter le commun (anode ou cathode) soit 4 broches sur l'arduino, quand aux 7 segments ils sont tous en parallèle soit 7 broches sur l'arduino. On commute les communs en séquence dont on perd 75% de luminosité, par contre on n'ajoute rien d'autre que des transistors pas chers !
Certes, mais au niveau logiciel cela me semble beaucoup plus simple de travailler avec les registres
Juste une précision, pour l'écran a 4 digits, il faut afficher chaque chiffre séquentiellement. Par exemple pour écrire 1234 on affiche 1 _ _ _ puis _ 2 _ _ puis _ _ 3 _ puis _ _ _ 4. C'est la persistance rétinienne (le cerveau de l'utilisateur quoi) qui donne l'impression de lire 1234