la domotique à 2€ : commander un ecran LCD en I2C sur arduino

Lien pour recevoir le code et schéma de câblage

Pour commander un écran LCD avec un arduino, il est possible d’utiliser le protocole I2C qui ne monopolise que 2 sorties sur l’arduino au lieu du raccordement des 16 broches habituelles, cette vidéo explique comment faire

Faire un don permet de maintenir cette chaine en vie et permet également d’effectuer des recherches  indépendantes dans le bâtiment et l’énergie. En effet, tout est réinvestis pour produire de nouvelles vidéos (achat de matériaux et de produits) pour faire de nouvelles recherches, des essais, et test que je vous présente. Même un petit montant apporte sa pierre à l’édifice et sans cela, cette chaine serait vouée à mourir. Donc un grand merci pour votre soutien et pour vos dons. Je ne peux que vous encourager à continuer en cliquant sur les liens ci-dessous :

Soutenir par tipeee 

Soutenir par carte ou paypal

Soutenir par patreon

Soutenir par utip

Acheter mon livre

Acheter une séance de coaching privé

Transcription texte la domotique à 2€, commander un écran LCD avec un module i2c :

Salut, aujourd’hui dans cette vidéo sur la domotique à 2€, on va voir comment commander des écrans LCD. Alors déjà, concernant les écrans LCD, on va trouver deux types d’écrans, les écrans 2 lignes et les écrans 4 lignes. Les écrans 2 lignes, cela va être des 16 x 2, ce qui signifie qu’il y a 16 caractères par ligne et 2 lignes. Et les écrans 4 linges, cela va être des écrans LCD 20 x 4, ce qui signifie qu’y y a 20 caractères par ligne et 4 lignes. On peut voir qu’ils sont un peu plus gros que les écrans 16 x 2 . Et le nombre de caractères et de ligne va être important, car dans notre programme arduino, on va devoir dire où on souhaite positionner le début de notre message par rapport à l’écran et aux caractères que l’on peut afficher. Et piloter des écrans dans la domotique à 2€, cela va être important pour nous car on pourra afficher des informations telles que des températures, des pressions, des taux d’humidité, des débits d’eau, des courants électriques ou des tensions. Et c’est quand même mieux de le faire sur un écran avec 4 x 20 caractères que sur un petit afficheur a segments. On pourra afficher beaucoup plus de choses.

Concernant les écrans LCD, il y a les pins dessus, il y a 16 points de raccordements, et 16 points de raccordement lorsqu’on a un arduino uno ou nano, cela prend beaucoup de place sur les broches et il ne reste plus grand-chose pour mettre des capteurs. Et pour contrer ce phénomène, il y a un petit module qui s’appel le module I2C, qui viens se mettre derrière les écrans. IIC signifie Inter intergrated Circuit, et c’est un système de commande par BUS, alors je ne vais pas explique ce qu’est le BUS, car je ne sais pas trop, ce n’est pas de mon niveau, et il y a des gens qui le font bien mieux que moi. Mais ce que je vois, c’est que lorsqu’il y a ce petit module IIC raccordé à l’arrière d’un écran LCD, (lorsqu’on les achètes, ils sont déjà soudés dessus) on peut commander son écran avec seulement 2 fils par le système de bus. On raccorde le +5 volts, le gnd à l’écran, et après, et après, il suffit de raccorder SDA et SCL à notre carte arduino, et cela nous permet de commander notre écran avec seulement 2 fils. Et avec ce système, on peut même aller encore plus loin, dans le sens où chaque écran possède une adresse de communication. C’est-à-dire que je vais prendre 2 bornes sur mon arduino, la borne A4 et la borne A5, et je vais pouvoir brancher un grand nombre d’écrans LCD sur ces deux bornes, et il me suffira de définir une adresse différente à chaque écran, ce qui fait qu’avec les 2 fils de commande BUS qui seront tous raccordés sur les pin A4 et A5 de mon arduino, je pourrais envoyer un message différent sur chaque écran. Donc cela permet de libérer énormément de pins sur notre carte arduino, et l’avantage d’utiliser le module I2C, il est là.

Les personnes qui ont consulté cet article ont aussi regardé  Comment faire un coffre en contre plaqué pour cacher des canalisations ?

Quand on regarde le module I2C au cul de notre écran, il y a des petites broches A0 A1 et A2, et en soudant un petit bout de métal sur ces pins, on va ainsi changer l’adresse de l’écran. Mais, cela est d’un niveau supérieur, et ici, nous n’eu auront pas besoin. On va juste se concentrer sur comment afficher un message sur un écran. également, sur ce module I2C, il y aura un petit potentiomètre qui va nous permettre de régler directement les contrastes de l’écran. Voici devant moi des écrans avec des contrastes qui dans un cas sont au maximum, et dans l’autre sont au minimum. D’ailleurs, je m’était fait piéger la première fois que je l’ai utilisé, les contrastes étaient au minimum, j’affichais mon message, et pendant 2 heures, cela ne fonctionnait pas, et je ne comprenais pas pourquoi. Tout simplement parce que les contrastes étaient au minimum. Donc le petit potentiomètre, si je le tourne, je vais pouvoir faire afficher les caractères plus ou moins intensément.

Aussi, l’avantage d’avoir des écrans où le module I2C est fournis mais pas soudé, il est possible de le souder dans l’autre sens, ainsi, si on fait un montage en définitif, ce qui permet d’avoir accès au potentiomètre depuis le coté écran pour faire son réglage de contrastes sans devoir ouvrir la boite de notre appareil.

Déjà, première étape, avant de faire notre programme que l’on va mettre dans l’arduino, et faire afficher un message sur l’écran, il faut connaitre l’adresse de l’écran. Il y a 2 solutions pour connaitre l’adresse de l’écran, soit on va regarder ce qui est câblé à l’arrière du module I2C et quel est le type de puce utilisé, et en fonction de ces informations, on peut déduire l’adresse de l’écran. Cela sera dans le complément de la vidéo, ou alors, on va utiliser un programme qu’on va mettre dans l’arduino et qui va lire ce que dis le module I2C et il va nous donner l’adresse de l’écran.

Les personnes qui ont consulté cet article ont aussi regardé  dénuder un cable, cutter ou jokari ?

Et concrètement ce programme est un scanner d’adresse I2C, et donc si j’ouvre le moniteur série, il scanne, et me dis que l’adresse de l’écran est 0x27. Donc regardons tout de suite comment fonctionne ce petit logiciel et ensuite, lorsque nous aurons trouvé l’adresse d’un écran on pourra programmer l’écran pour faire afficher un messages sur les lignes du LCD.

Donc voila, nous avons un petit programme, alors je ne l’ai pas écrit, je l’ai juste téléchargé, et, il est en anglais, mais cela reste simple.

Alors, ce que j’utilise ici, c’est un arduino UNO, et il y a quelques informations importantes, donc SDA, cela va être important, c’est le nom d’une des broches sur le protocole I2C de l’écran, SCL, pareil, c’est le nom d’une des broches de nécessaire pour faire fonctionner l’écran. Et cela nous dis qu’il faut qu’on se raccorde sur le PIN A4 de notre arduino UNO, le PIN 20 sur arduino Méga, et pour SCL, il faut se raccorder sur le PIN A5, et le pin 21 sur un arduino méga.

Ensuite, le programme, je ne vais pas l’expliquer, car je n’ai pas tout compris, et cela n’est pas nécessaire, cela va juste scanner et nous donner l’adresse de l’écran raccordé au module I2C.

Ensuite, je vais téléverser le programme dans l’arduino UNO, le téléversement est maintenant terminé, le programme est dans l’arduino, donc maintenant, je vais ouvrir le moniteur série, (cela se trouve dans l’onglet outil) je positionne le bon port com. Et je peux voir que le programme scanne et m’affiche l’adresse. ici, dans mon cas 0X27. Et cette adresse, je peux bien sur la changer en modifiant le petit pin A0, A1 et A2 sur le module I2C. Donc il est important de retenir cette adresse, et aussi de bien respecter la taille des caractères, donc un x minuscule et non un X majuscule.

Donc pour télécharger gratuitement ce programme, en dessous, dans la description de cette vidéo, il y a un lien, vous cliquez, et laissez votre prénom et email, et je vous envoie le petit programme par email.

Maintenant que l’on connait l’adresse de l’écran, écrivons un petit programme qui fait afficher un message sur l’écran.

Première chose, il faut inclure une bibliothèque. Donc, on va dans croquis, inclure une bibliothèque, gérer les bibliothèques, et dans le gestionnaire de bibliothèques, on va rechercher liquid crystal I2C. On va trouver quelque chose qui va s’appeler liquid crystal I2C, que l’on va télécharger et installer. Ensuite, on va inclure la bibliothèque liquid crystal I2C .h Ensuite on va définir les caractéristiques de notre écran avec la ligne liquid crystal I2C, et cela va être important, car on va écrire l’adresse de l’écran, 0x27, puis on va écrire le nombre de caractères par lignes, et ensuite après on écrit le nombre de lignes de l’écran LCD. Dans le void setup, on va initialiser l’écran puis on va activer le rétroéclairage de l’écran.

Les personnes qui ont consulté cet article ont aussi regardé  récupération chaleur sur douche #28 un systéme qui récupére 13 degrés!

Ensuite, dans le programme, void loop, lcd set cursor 0,0, on lui dis de positionner le curseur de l’écran au point 0 de la ligne 0 de l’écran LCD 4 x 20.  Puis, avec la fonction lcd print, tu écris le message qui se trouve entre les parenthèses. ici, on met des guillemets puis www.jeremyrenove.com

Ensuite, on lui dis de mettre le curseur au point 0 de la ligne 1, puis on lui dis d’écrire la domotique à 2€

Là, le programme est fait, et si je fais téléverser, sur cet écran, je vais donc avoir un message qui va s’afficher sur l’écran. L’écran s’éteint et se rallume, et rien ne s’affiche. C’est probablement lié aux contrastes de l’écran. En tournant le potentiomètre des contrastes, le message apparait sur l’écran.

également, à propos des modules I2C, un point important, dessus, il y a un petit cavalier, et ce cavalier permet d’afficher ou non le rétroéclairage sur l’écran. Si je l’enlève, le message s’affiche toujours, mais sans le rétroéclairage.  Le mieux est de mettre ce petit cavalier, car après, dans le programme il est possible avec une ligne de commande de choisir si on allume ou éteint le rétroéclairage. Au lieu d’écrire LCD backlight, il suffit d’écrire LCD nobacklight. Ainsi, on dis si on veut que le programme allume ou éteigne le rétroéclairage.

Voila, donc j’espère que cette petite vidéo sur la domotique à 2€ vous aura aidé, maintenant, dans de prochaines vidéos, nous verrons ce qu’il est possible d’afficher sur un écran LCD, et surtout au lieu d’afficher un texte fixe, on affichera des variables. Des variables telles que température, pression, humidité, et ce genre de choses. Pour tout ceux qui voudraient des informations complémentaires sur le sujet, en dessous, dans la description, il y aura un lien vers mon site internet, vous laissez votre prénom et votre email, et cela vous permet de recevoir gratuitement par email les programmes qu’on viens de voir ensemble. Voila, donc j’espère que cette petite vidéo vous aura plu, je vous souhaite bon courage pour vos projets, je vous dis à plus tard, salut.

Partager l'article
  •  
  •  
  •  

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.