Pour une trentaine d'euros, on dispose d'un afficheur graphique monochrome compatible avec le driver ESSD1322 et la librairie u8g2.
.
Je me suis battu avec ce produit un bon moment avant d'arriver à le faire fonctionner. Alors, je vous donne la combine qui permet de piloter cet afficheur avec un ESP32:
Ouvrez le fichier: /Arduino/libraries/U8g2/src/clib/u8g2.h et décommentez s'il y a lieu la ligne #define U8G2_16BIT
Dans mon cas, elle était en commentaire et pas moyen de faire fonctionner cet afficheur avec le ESP32.
A toutes fins utiles, voici mon ficier projet d'essai:
Bonsoir,
A ma connaissance, c'est lez module OLED le plus grand disponible à moins de 30 Euros 9,8cm x 3cm.
En matière de consommation, elle est bien plus basse qu'un TFT. Tout dépend du besoin et du projet.
Si on veut par exemple afficher du texte sur une largeur de 32 caractères et 8 lignes, ce produit est pertinent.
Par contre, l'utilisation de la librairie U8g2 est délicate avecESP32 sous Arduino. Les objets graphiques ne supportent pas l'utilisation de Ticker.h.
Pour mon projet actuel, j'avais besoin d'utiliser un clavier matriciel conjointement avec l'afiicheur OLED. Ma fonction de debouncing bien que très économe en temps machine réclame une exécution répétitive à environ 300 Hz. Avec un ESP8266, ça ne pose aucun problème de faire appel à Ticker pour faire cela.
Par contre avec un ESP32, cela ne fonctionne pas. Il y a un conflit de temps réel entre la librairie U8g2 et les timers en activité.
J'ai résolu le problème en plaçant ma fonction de debouncing dans une tache RTOS.
bisra:
Pour mon projet actuel, j'avais besoin d'utiliser un clavier matriciel conjointement avec l'afficheur OLED.
Combien de touches ton clavier matriciel?
J'ai fini aujourd'hui un clavier analogique 5x4 il n'a besoin que d'une seule entrée analogique et n'a besoin d'aucune bibliothèque.
J'utilise un MCP23S17 qui dispose de 16 E/S. On peut donc gérer jusqu'à 64 touches.
Pour l'instant, j'ai utilisé 4x4 et 4x5. J'ai aussi essayé le décodage analogique. Ca fonctionne mais il faut plein de résistances de valeurs assez précises. Et j'avais des erreurs dans le temps probablement à mettre au compte des dérives en température.
Finalement, gérer un clavier par logiciel, ça marche bien une fois que l'on a résolu le problème du debouncing et au point de vue matériel c'est plus simple. Les ressources mobilisées sont 1xGPIO pour le chip select et 2 ou 3 GPIO pour le SPI du micro qui sont partagés avec l'afficheur SPI et éventuellement d'autres boîtiers SPI.
bisra:
J'utilise un MCP23S17 qui dispose de 16 E/S. On peut donc gérer jusqu'à 64 touches.
Pour l'instant, j'ai utilisé 4x4 et 4x5. J'ai aussi essayé le décodage analogique. Ca fonctionne mais il faut plein de résistances de valeurs assez précises. Et j'avais des erreurs dans le temps probablement à mettre au compte des dérives en température.
Finalement, gérer un clavier par logiciel, ça marche bien une fois que l'on a résolu le problème du debouncing et au point de vue matériel c'est plus simple. Les ressources mobilisées sont 1xGPIO pour le chip select et 2 ou 3 GPIO pour le SPI du micro qui sont partagés avec l'afficheur SPI et éventuellement d'autres boîtiers SPI.
Si tu n'entres dans la routine clavier que toutes les 100ms par ex, tu n'as pas besoin de debouncing.
bisra:
Ca fonctionne mais il faut plein de résistances de valeurs assez précises.
En fait pas vraiment. Toutes les resistances sont a 1% actuellement.
Mon schema prevoit deux valeurs seulement. Si on les achète ensemble par dix, elles sont du même lot et ont peu de variance.