Perfectionnez-vous dans la programmation Arduino Licence 20 heures  Moyenne 

Perfectionnez-vous dans la programmation Arduino Licence 20 heures  Moyenne  Mis à jour le 06/02/2020   Créé par OpenClassrooms, Leading E-Learning Platform in Europe Programmez un écran LCD Créer des interfaces avec des matrices de LED vous paraît fastidieux ? Ça tombe bien, il existe dans le commerce des af}cheurs LCD ou LED déjà préconçus pour fournir une interface de lecture simpli}ée et qui permettent tout un tas d’usages. Nous allons voir dans ce chapitre comment utiliser l'un de ces af}cheurs : un écran LCD 16 caractères sur deux lignes. Comme nous n'allons pas réinventer ce qui existe déjà, nous allons surtout apprendre à utiliser la bibliothèque qui est liée à ce matériel. Vous concevrez aussi quelques programmes pour avoir une idée des possibilités de ces af}cheurs, qui permettent de lire des informations, même si l'Arduino n'est plus connecté à votre ordinateur. Alles, c'est parti ! Les écrans LCD existent depuis 1971. Ils n'ont pas cessé de se développer depuis, et équipent maintenant bien des appareils à af}chage embarqué (appareils photo, digicodes, montres, téléphones...). LCD est l'abbréviation anglaise de "liquid crystal display" qui veut dire : af}cheur à cristaux liquides. Je ne vais pas entrer dans le détail du fonctionnement de tels af}cheurs. Il faut juste savoir que cette technologie permet de créer des écrans plats qui consomment peu d’énergie. L'écran LCD que je vous propose d'acquérir (ou en tous cas d'étudier) est un écran permettant l'af}chage de 16x2 caractères, c'est-à-dire deux lignes de 16 caractères. Le coût de ce type d'écran varie entre 7€ et 15€ (tout dépend d'où vous le commandez et des fonctionnalités dont il dispose, entre autre le rétro-éclairage). Il en existe de plusieurs formes. Voici celui que j'utilise : Pour une question de goût personnel. En effet il en existe d'autres avec des couleurs d'af}chage différentes. À vous de choisir. Cet écran est de plus rétro-éclairé, ce qui permet de lire de jour comme de nuit. L'important c'est que vous choisissiez un écran compatible avec la bibliothèque fournie par l'Arduino pour les écrans à cristaux liquides. On repère ce type d'écran LCD car il dispose de 16 trous (où peuvent être soudées des broches de connexion). Voici un autre exemple d'écran LCD : On voit bien en haut de l'af}cheur, 16 marques de soudure. C’est une bonne façon de repérer les af}cheurs compatibles avec la bibliothèque LCD. Ces af}cheurs peuvent communiquer avec l’Arduino via cette bibliothèque grâce au pilote Hitachi HDD44780. Il peut être intéressant de lire cette présentation du HD44780 car elle renseigne correctement sur bien des questions qu'on peut se poser dans l'utilisation (et la connexion) de ce matériel. Pour la connexion, je vais vous en parler juste après. Il faut savoir qu'il y a deux façons de piloter l'écran : soit en utilisant les 16 connexions (mode 8 bits), soit en utilisant 4 connexions de moins (mode 4 bits), ce qui économise des pins de l'Arduino. Bon, je ne peux plus reculer. Je suis obligé de vous faire un point (léger) sur les notions de nombre décimal, binaire et hexadécimal... Décimal, binaire et hexadécimal Le système décimal est en base 10. Ce qui veut dire qu'on passe à la dizaine supérieure toutes les dix unités (ou bien on augmente le nombre des milliers toutes les 10 centaines...). Une image simple est d'imaginer un compteur de voiture (les anciens, ceux qui tournent). On voit bien qu'à chaque tour (donc 10 unités) des centaines de mètres, on fait tourner d'un cran les kilomètres. Ce système nous est familier car on l'utilise tout le temps. Voici les 16 premiers nombres du système décimal : Le système binaire est en base 2, c'est-à-dire que chaque fois qu'on passe deux unités (0 puis 1). Comme on ne peut pas parler de dizaine (puisque c'est en base 10) on va parler de bit. Le bit en position 0 est celui le plus à droite du nombre, puis le bit en position 1, puis 2... Donc pour augmenter les bits, on ajoute 1 au bit de gauche et on remet le bit de droite à 0. Voici donc les 16 premiers nombres du système binaire : Prenez votre temps pour comprendre le principe d'augmentation du nombre. En}n le système hexadécimal est en base 16. Donc sa dizaine ne change que toutes les 16 unités. Comme nos chiffres s'arrêtent à 9, il nous a fallu inventer des chiffres après 9. Les informaticiens ont donc utilisé des lettres. Du coup, voici les 16 premiers nombres en hexadécimal : Ces trois systèmes de numération sont utilisés en informatique. Voici le même nombre écrit en décimal, binaire et hexadécimal : 213 (décimal), 1101 0101 (binaire), D5 (hexadécimal). Vous pouvez assez facilement passer de l'une à l'autre des numérations par un calcul mathématique. Mais, vous pouvez faire ça encore plus simplement avec des outils dédiés (calculatrice en mode programmeur sur votre ordinateur, site de conversions, etc.) ou même avec un petit programme sur votre Arduino ! En voici un exemple : Ce programme af}chera le nombre 220 en décimal, binaire et hexadécimal. Si vous voulez placer un nombre binaire dans une variable, ajoutez un B majuscule avant la suite de 1 et 0 de ce nombre. Exemple : int nombre=B10010 le B signi}e que votre nombre est écrit en binaire. Pour enregistrer un nombre en hexadécimal, il faut ajouter "0x" (zéro et x minuscule) devant ce nombre. Exemple : int nombre=0xFA12F le "Ox" signi}e que votre nombre est en hexadécimal. Le système décimal est celui qu'on utilise tous les jours, il est lisible facilement nous les humains . Le système binaire est le celui qu'utilise la machine. Il est facile de construire un nombre en allumant ou éteignant des connexions. En effet, avec 4 LED côte à côte, vous pouvez créer (en les allumant pour 1 et en les éteignant pour 0) les nombres entre 0 et 16. Par exemple : allumé, éteint, éteint, allumé correspond à 1001 soit 9 en décimal. Le système hexadécimal, permet de coder les nombres de 8 bits (donc 16 positions binaires) sur seulement 2 caractères. En effet, le nombre binaire 1111 1111 correspond à FF en hexadécimal (255 en décimal). C'est donc un gain de place pour le codage Et bien c'est ce dont je parlais, soit on utilise 8 broches (plus les autres pour l'alimentation) pour coder l'information (donc 16 pins qui se mettront à 1 ou 0 pour former un nombre de 8 bits) ou seulement 4 broches (plus celles de l'alimentation) mais dans ce cas le nombre 8 bits sera séparé en deux : Les quatre premiers bits seront envoyés. On appelle ces bits les bits de poids fort (les quatre plus à gauche). Puis les 4 seconds. On appelle ces bit les bits de poids faible (les 4 plus à droite). Cela diminue donc par deux la vitesse de communication. Rassurez-vous, nous n'allons pas coder (même si c'est tout à fait possible) nous-mêmes la communication entre l'Arduino et l'af}cheur LCD ! Si vous avez jeté un œil aux explications sur le protocole de communication du HD44780 (qui sont bien faites mais pas forcément facilement compréhensibles), vous avez vu que pour échanger des informations, on utilise un protocole précis qui permet à chaque partie (Arduino et écran LCD) de se comprendre. C'est à cause de ce protocole que nous devons utiliser plus que 8 pins (ou 4 pins) pour connecter l'écran LCD. En effet, il nous faut aussi des pins pour l'adresse, le timing de l'échange d'info, l'alimentation de l'écran... Regardons de plus près comment connecter un écran LCD à l’Arduino en mode 4 bits ! Comme l'Arduino (malgré ses 16 MHz) n'est pas une bête de course, nous n'utiliserons que le mode 4 bits. Même si la communication est deux fois plus lente, ce type d'af}cheur ne sera de toute façon pas utilisé pour des changements d'information rapides. Le mode 4 bits est donc largement suf}sant, plus simple et moins gourmand en pins. Voici une image pour la connexion des différentes broches : Alors ça peut paraître un peu ardu comme ça, mais la connexion respecte une certaine logique (heureusement ). Voici un schéma que j'ai tenté de simpli}er : En partant de la gauche, voici à quoi servent les pins : Les deux premiers pins tout à gauche servent à l'alimentation de l'écran. Le troisième pin est connecté à un potentiomètre et sert pour régler l'af}chage (le contraste de l'écran). Le quatrième, noté RS, est connecté au pin 12 de l'Arduino dans notre exemple. Il sert à sélectionner la zone mémoire de l'écran LCD dans laquelle nous allons écrire (Register Select). Le cinquième doit toujours être connecté au ground. C'est un sélecteur de mode lecture ou écriture. On peut le connecter à un pin, mais dans notre cas c'est inutile. Comme il doit recevoir un signal à 0V, on le connecte au ground (état R/W). Le sixième, noté E, est connecté au pin 11 de l'Arduino dans notre exemple. Il permet de lancer ou non l'écriture dans les zones mémoires (Enable). uploads/Management/ programmez-un-ecran-lcd-perfectionnez-vous-dans-la-programmation-arduino-openclassrooms.pdf

  • 26
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Jan 03, 2022
  • Catégorie Management
  • Langue French
  • Taille du fichier 1.0289MB