Chaque radioamateur, après quelques travaux de bricolage simples, arrive à l'objectif de construire quelque chose de grandiose à l'aide de capteurs et de boutons. Après tout, il est beaucoup plus intéressant d'afficher des données sur l'écran que sur le moniteur du port. Mais alors la question se pose: quel écran choisir ? Et en général, comment le connecter, que faut-il pour se connecter? Les réponses à ces questions seront discutées dans cet article.
LCD 1602
Parmi les nombreuses options parmi les écrans, je voudrais distinguer l'écran LCD1602 basé sur le contrôleur HD4478. Il y a cet affichage en deux couleurs: lettres blanches sur fond bleu, lettres noires sur fond jaune. La connexion du LCD 1602 à l'Arduino ne posera aucun problème non plus, car il y a une bibliothèque intégrée, et vous n'avez pas besoin de télécharger quoi que ce soit de plus. Les écrans diffèrent non seulement par le prix, mais aussi par la taille. Souvent les radioamateurs utilisent 16x 2, soit 2 lignes de 16 caractères. Mais il y a aussi 20 x 4, où il y a 4 lignes de 20 caractères. Les dimensions et la couleur ne jouent aucun rôle dans la connexion de l'écran lcd 1602 à Arduno, elles sont connectées de la même manière. L'angle de vision est de 35 degrés, le temps de réponse de l'affichage est de 250 ms. Peut fonctionner à des températures de -20 à 70 degrés Celsius. Lorsqu'il fonctionne, il utilise 4 mA pour l'écran et 120 mA pour le rétroéclairage.
Où est-il utilisé ?
Cet écran a sa popularité non seulement parmi les radioamateurs, mais aussi parmi les grands fabricants. Par exemple, les imprimantes, les machines à café utilisent également LCD1602. Cela est dû à son prix bas, cet écran coûte 200-300 roubles sur les sites chinois. Cela vaut la peine d'y acheter, car dans nos magasins, les marges pour cet affichage sont très élevées.
Se connecter à Arduino
Connecter LCD 1602 à Arduino Nano et Uno n'est pas différent. Vous pouvez travailler avec l'affichage en deux modes: 4 bits et 8. Lorsque vous travaillez avec un affichage 8 bits, les bits inférieurs et supérieurs sont utilisés, et avec un 4 bits, seuls les bits inférieurs. Il n'y a aucun intérêt particulier à travailler avec 8 bits, puisque 4 contacts supplémentaires seront ajoutés pour se connecter, ce qui n'est pas conseillé, car la vitesse ne sera pas plus élevée, la limite de mise à jour de l'affichage est de 10 fois par seconde. En général, beaucoup de fils sont utilisés pour connecter le lcd 1602 à l'Arduino, ce qui cause quelques désagréments, mais il existe des blindages spéciaux, mais nous en reparlerons plus tard. La photo montre la connexion de l'écran à l'Arduino Uno:
Exemple de code:
inclure //Ajoutez la bibliothèque requise LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ lcd.begin(16, 2); // Définir la dimension de l'écran lcd.setCursor(0, 0); // Positionne le curseur au début de la ligne 1 lcd.print("Hello, world!"); // Affiche le texte lcd.setCursor(0, 1); // Positionne le curseur au début de la ligne 2 lcd.print("fb.ru"); // Texte de sortie } void loop(){ }
À quoi sert le code ? Tout d'abord, la bibliothèque pour travailler avec l'écran est connectée. Comme mentionné ci-dessus, cette bibliothèque est déjà incluse dans l'IDE Arduino et vous n'avez pas besoin de la télécharger et de l'installer en plus. Ensuite, les contacts connectés aux broches sont définis: RS, E, DB4, DB5, DB6, DB7, respectivement. Ensuite, la taille de l'écran est définie. Puisque nous travaillons avec une version à 16 caractères et 2 lignes, nous écrivons de telles valeurs. Nous plaçons le curseur au début de la première ligne et affichons notre premier texte Hello World. Ensuite, placez le curseur sur la deuxième ligne et affichez le nom du site. C'est tout! La connexion de l'écran lcd 1602 à l'Arduino Uno a été envisagée.
Qu'est-ce que I2C et pourquoi est-il nécessaire ?
Comme mentionné ci-dessus, la connexion de l'écran nécessite beaucoup de broches. Par exemple, lorsque vous travaillez avec plusieurs capteurs et un écran LCD, 1602 contacts peuvent tout simplement ne pas suffire. Souvent, les radioamateurs utilisent les versions Uno ou Nano, où il n'y a pas beaucoup de contacts. Ensuite, les gens sont venus avec des boucliers spéciaux. Par exemple, I2C. Il vous permet de connecter l'écran avec seulement 4 broches. C'est deux fois moins. Le module I2C est vendu à la fois séparément, où vous devez le souder vous-même, et déjà soudé àAffichage LCD 1602.
Connexion avec le module I2C
Connecter LCD 1602 à Arduino Nano avec I2C prend peu de place, seulement 4 broches: masse, alimentation et 2 sorties de données. Nous connectons l'alimentation et la masse à 5V et GND sur l'Arduino, respectivement. Les deux contacts restants: SCL et SDA sont connectés à n'importe quelle broche analogique. Sur la photo, vous pouvez voir un exemple de connexion lcd 1602 à arduino avec module I2C:
Code de programme
S'il était nécessaire d'utiliser une seule bibliothèque pour travailler avec un affichage sans module, alors deux bibliothèques sont nécessaires pour travailler avec un module. L'un d'eux est déjà dans l'IDE Arduino - Wire. Une autre bibliothèque, LiquidCrystal I2C, doit être téléchargée séparément et installée. Pour installer la bibliothèque dans Arduino, le contenu de l'archive téléchargée doit être téléchargé dans le dossier racine des bibliothèques. Exemple de code utilisant I2C:
include include LiquidCrystal_I2C lcd(0x27, 16, 2); // Configurer l'affichage void setup() { lcd.init(); lcd.backlight();// Activer le rétroéclairage de l'écran lcd.print("FB.ru"); lcd.setCursor(8, 1); lcd.print("LCD 1602"); } void loop() { // Définit le curseur sur la deuxième ligne et le caractère nul. lcd.setCursor(0, 1); // Affiche le nombre de secondes depuis le démarrage de l'arduino lcd.print(millis()/1000); }
Comme vous pouvez le voir, le code est presque le même.
Comment puis-je ajouter mon propre symbole ?
Le problème avec ces écrans est qu'il n'y a pasprise en charge du cyrillique et des symboles. Par exemple, vous devez charger un caractère dans l'affichage afin qu'il puisse le refléter. Pour ce faire, l'affichage vous permet de créer jusqu'à 7 de vos personnages. Présentez le tableau:
0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
0 | 0 | 0 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
0 | 0 | 0 | 0 | 1 |
0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 0 |
Si 0 - il n'y a rien, si 1 - c'est une zone ombrée. Dans l'exemple ci-dessus, vous pouvez voir la création du personnage "smiley souriant". En utilisant un exemple de programme dans Arduino, cela ressemblerait à ceci:
include include // Inclure la bibliothèque requise // Smile symbol bitmask byte smile[8]={ B00010, B00001, B11001, B00001, B11001, B00001, B00010, }; LCD LiquidCrystal (7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ lcd.begin(16, 2); // Définir la dimension de l'écran lcd.createChar(1, smile); // Crée le caractère numéro 1 lcd.setCursor(0, 0); // Positionne le curseur au début de la ligne 1 lcd.print("\1"); // Affiche le smiley (caractère numéro 1) - "\1" } void loop(){ }
Comme vous pouvez le voir, a été crééle masque de bits est le même que le tableau. Une fois créé, il peut être affiché en tant que variable à l'écran. N'oubliez pas que seuls 7 caractères peuvent être stockés en mémoire. En principe, cela suffit. Par exemple, si vous souhaitez afficher le symbole du degré.
Problèmes où l'affichage peut ne pas fonctionner
Il y a des moments où l'affichage ne fonctionne pas. Par exemple, il s'allume, mais n'affiche pas les caractères. Ou il ne s'allume plus du tout. Vérifiez d'abord si vous avez correctement connecté les contacts. Si vous aviez l'habitude de connecter lcd 1202 à Arduino sans I2C, il est très facile de s'emmêler dans les fils, ce qui peut entraîner un mauvais fonctionnement de l'affichage. Vous devez également vous assurer que le contraste de l'affichage est augmenté, car au contraste minimum, il n'est même pas visible si l'écran LCD 1602 est allumé ou non. Si cela ne résout pas le problème, le problème réside peut-être dans la soudure des contacts, c'est-à-dire lors de l'utilisation du module I2C. En outre, une raison courante pour laquelle l'affichage peut ne pas fonctionner est le réglage incorrect de l'adresse I2C. Le fait est qu'il existe de nombreux fabricants et qu'ils peuvent définir une adresse différente, vous devez la corriger ici:
LiquidCrystal_I2C lcd(0x27, 16, 2);
En parenthèses, vous pouvez voir deux valeurs, 0x27 et 16, 2 (16, 2 est la taille d'affichage, et 0x27 est juste l'adresse I2C). Au lieu de ces valeurs, vous pouvez essayer de mettre 0x37 ou 0x3F. Eh bien, une autre raison est simplement un écran LCD 1602 défectueux. Considérant que presque tout pour Arduino est fabriqué en Chine, vous ne pouvez pas être sûr à 100% que le produit achetéle produit n'est pas défectueux.
LCD 1602 avantages et inconvénients
Regardons les avantages et les inconvénients du LCD 1602.
Pros
- Prix. Ce module peut être acheté à un prix très abordable dans les magasins chinois. Le prix est de 200 à 300 roubles. Parfois même vendu avec un module I2C.
- Facile à connecter. Probablement personne ne connecte un LCD 1602 sans I2C de nos jours. Et avec ce module, la connexion ne prend que 4 broches, il n'y aura pas de "toile" de fils.
- Programmation. Grâce aux bibliothèques prêtes à l'emploi, travailler avec ce module est facile, toutes les fonctions sont déjà enregistrées. Et si vous avez besoin d'ajouter votre personnage, cela ne prend que quelques minutes.
Inconvénients
Pendant la période d'utilisation par des milliers de radioamateurs, aucun gros inconvénient n'a été identifié, seulement il y a des cas d'achat de mariage, puisque les options d'affichage chinoises sont principalement utilisées
Cet article explique comment connecter l'écran LCD 1602 à Arduino et présente également des exemples de programmes pour travailler avec cet écran. C'est vraiment l'un des meilleurs de sa catégorie, ce n'est pas seulement que des milliers de radioamateurs le choisissent pour leurs projets !