![]() |
Objets (ou class) pour écran OLED sd1306 |
décembre 2019 |
Un circuit LCD OLED 1306 ne consomme rien ou presque 2.7 mA, c'est super pratique dans de nombreux cas de petits montages d'amateurs alimentés sur batterie.
Souvent lorsque l'on développe un petit logiciel qui utilise par exemple le wifi on est obligé de saisir "en dur" dans le programme le nom du SSID wifi et le mot de passe.
Cela limite le potentiel du montage, pas possible d'en offrir un aux enfants ou aux parents sans connaitre le nom de leur box et leur passe, ce n'est pas pratique, ce n'est qu'un exemple
de blocage d'une mémorisation en dur dans le programme. La librairie présentée ici apporte une solution à ce type de projet.
Il est également pénible de présenter un menu sur ce type d'écran et de réinventer une solution à chaque montage, la librairie présentée ici apporte également une solution à ce type de problème.
L'interface avec l'utilisateur est réduite au plus simple, un écran OLED SD1306 et un Encodeur rotatif KY-040 qui permet un défilement des choix
par rotation dans un sens ou dans l'autre et la validation par appui sur le bout du bouton.
Remarque : La librairie est disponible dans la partie "programmation" de ce site.
Choisir la librairie "lib_1306_rot" qui regroupe toutes les fonctions citées
ainsi que des possibilités additionnelles.
L'écran OLED SD-1306 est commercialisé sous plusieurs formes, je suis tombé sur deux types différents.
Un modèle des plus classique (celui que je recommande) mono-couleur.
Un modèle "bicolor" jaune et bleu, au début je me suis dit cool, je vais pouvoir mettre en évidence sur l'écran des mots. Et bien non, en réalité cet écran
à un fonctionnent très particulier. La partie haute est jaune puis il y a une ligne sans cellule (une séparation noire ou l'on ne peut rien affiché et qui
fait "tâche" si on ne l'a pas anticipée) Cette caractéristique peut être mise à partie dans certains montages pour afficher par exemple un titre en jaune
et plus bas du texte en bleu.
Les deux objets présentés ici n'exploitent pas l'écran bicolor, son utilisation détériore l'affichage (ligne sans segment) je vous recommande donc si vous souhaitez
utiliser ces objets de commander des écrans blanc. Malheureusement sur les photos ci-dessous je n'avais plus d'écran blanc donc j'ai fait avec ce qu'il me restait !
L'encodeur rotatif KY-040 utilisé ici est un 30 pas, mais il est possible d'en utiliser un autre type, les objets présentés ici n'utilisent l'encodeur que pour déterminer si on
le tourne dans un sens ou dans l'autre, on ne compte pas les pas ! Il est également utilisé pour valider un choix.
Il suffit donc d'ajouter ces deux éléments à un montage
pour disposer d'une interface utilisateur.
L'objet menu permet lui d'afficher jusqu'à 5 lignes de choix.
Le choix en cours est entouré par un rectangle qui est (plus ou moins) à la taille du texte de la ligne.
Une fois le bouton appuyé on sort du menu et la valeur retournée est un chiffre de 0 à x (nombre de ligne -1).
Il est préférable de prévoir un petit délai en sortie du menu pour éviter les rebonds, une valeur de 200 doit suffire.
Pour comprendre comment utiliser ces objets, le mieux est de consulter l'exemple que je joints à l'article. L'exemple comporte 3 choix
Saisir le nom, saisir le prénom et le dernier afficher le résultat. Il est disponible dans les exemples de la description de la librairie.