de JacquesZ » Mer 31 Aoû 2022 04:49
Oui ce sont des écrans Oleds car je voulais trouver une police d’affichage la plus proche de l’originale (pas évident)
Les écrans sont classiques trouvé sur AliExpress, je vais retrouver la Réf exacte ce sont des SSD1306 de 128x32 pixels. La résolution n’est pas folichonne, mais ça le fait, surtout à 1€ et quelques pièce!
Comme l’horloge de l’Airbus utilise 4 ecrans au total, il ne faut pas prendre la version I2C qui est limitée (adresse identique, tu ne peux pas utiliser 4 ecrans) mais la version en SPI qui nécessite plus de fils mais avec une Arduino Mega ça le fait sans problèmes.
Attention ces trucs sont fournis sans aucune doc, ils sont en fait alimentés en 3.3V, même si le signal de commande peut être en 5V. J’ai pas mal galèré avec mes OLEDs alimentés en 5V au départ et qui ne fonctionnaient qu’à moitié avant de passer l’alim en 3.3V et voir tous mes problèmes résolus…
Il existe plusieurs librairies pour ce genre d’écran sur Arduino, je les ai programmé avec Air Manager qui ne les supporte pas en natif, mais avec la fonction MessagePort() on y arrive. Il faut de la mémoire pour tout ça, donc une Arduino Mega est conseillée, une Nano n’a pas assez de RAM je pense, surtout que les modèles en SPI nécessitent plus de mémoire que les I2C d’après ce que j’ai compris.
Il existe de nombreuses librairies pour piloter les écrans. La librairie Adafruit (en fait il en faut deux, Adafruit SSD1306 plus la librairie Adafruit GFX) est pas mal mais limitée au niveau polices de caractères dispos, j’ai finalement choisi une autre librairie un poil plus complexe mais qui permet de piloter un plus grand nombre de types d’écrans et de récupérer des polices TTF (je crois) cette librairie universelle c’est U8g2
Il faut aussi inverser un des deux écrans centraux car la surface affichable a de grosses marges à droite et donc l’affichage des minutes était trop éloigné de celui des heures. Le driver permet de retourner l'affichage a 180 degrés, ce qui a résolu le problème, mais les écrans ne sont du coup pas tout à fait alignés verticalement!
Après c’est en deux temps: installation de u8g2, trouver et configurer le bon modèle d’écran et le câblage, trouver et charger la police, rajouter le code C++ propre à la fonctionnalité Message Port() sur Air Manager et télécharger tout ça dans l’Arduino, et ensuite créer un instrument Air Manager qui va causer en Lua avec l’horloge.
Aujourd’hui la où je suis coincé c’est (comme souvent) au niveau technique. Je n’arrive pas à trouver un micro inter 3 positions avec ressort pour la fonction chrono et timer.
Jacques
Dernière édition par
JacquesZ le Mer 31 Aoû 2022 05:08, édité 1 fois.