Table des matières:
- Étape 1: Présentation du circuit
- Étape 2: Fabrication de PCB
- Étape 3: Présentation du logiciel
- Étape 4: Tester la conception
- Étape 5: Conclusion
- Étape 6: Références utilisées
Vidéo: Module de contrôleur LCD Uber I2C : 6 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
Préambule
Ce Instructable détaille comment créer un module de contrôleur LCD HD44780 (photo 1 ci-dessus). Le module permet à l'utilisateur de contrôler tous les aspects de l'écran LCD par programmation via I2C, comprenant: LCD et affichage, contraste et intensité du rétroéclairage. Bien que l'Arduino Uno R3 ait été utilisé pour le prototyper, il fonctionnera aussi bien avec n'importe quel microcontrôleur prenant en charge I2C.
introduction
Comme mentionné ci-dessus, cet article documente la création d'un module de contrôleur LCD I2C, il était principalement conçu comme un exercice de conception pour déterminer combien de temps il faudrait pour créer un PCB fonctionnel.
La conception remplace le module de contrôleur générique standard (photo 3 ci-dessus) et s'appuie sur les Instructables et les bibliothèques que j'ai produites plus tôt.
Du prototype de concept initial (photo 2 ci-dessus) au PCB terminé et entièrement testé (photo 1 ci-dessus), il a fallu un total de 5,5 jours.
De quelles pièces ai-je besoin ?Voir la nomenclature ci-dessous
De quel logiciel ai-je besoin ?
- IDE Arduino 1.6.9,
- Kicad v4.0.7 si vous souhaitez modifier le PCB. Sinon, envoyez simplement 'LCD_Controller.zip' à JLCPCB.
De quels outils ai-je besoin ?
- Microscope au moins x3 (pour soudure CMS),
- Fer à souder SMD (avec stylo à flux liquide et soudure fourrée),
- Pince à épiler solide (pour la soudure CMS),
- Pince fine (pointe et nez retroussé),
- DMM avec contrôle de continuité sonore.
De quelles compétences ai-je besoin ?
- Beaucoup de patience,
- Une grande dextérité manuelle et une excellente coordination main/œil,
- Excellentes compétences en soudure.
Sujets couverts
- introduction
- Aperçu du circuit
- Fabrication de PCB
- Présentation du logiciel
- Tester la conception
- Conclusion
- Références utilisées
Étape 1: Présentation du circuit
Un schéma de circuit complet de toute l'électronique est donné dans l'image 1 ci-dessus, avec un PDF de celui-ci ci-dessous.
Le circuit a été conçu pour remplacer exactement le module de contrôleur LCD PCF8574A I2C standard avec les améliorations suivantes;
- Compatibilité 3v3 ou 5v sélectionnable par l'utilisateur I2C,
- Contrôle de contraste numérique ou réglage de pot conventionnel,
- Sélection d'intensité de rétroéclairage variable avec contrôle de la fonction d'assouplissement quartique pour obtenir une décoloration en douceur.
Contrôle de l'affichage LCD
Il s'agit d'un fac-similé du module de contrôle LCD I2C standard utilisant un PCF8574A (IC2) pour la conversion I2C vers parallèle.
L'adresse I2C par défaut pour cela est 0x3F.
Compatibilité 3v3 ou 5v I2C
Pour un fonctionnement 3v3, ajustez Q1, Q2 ROpt1, 2, 5 & 6, IC1, C2 et C2.
Si un fonctionnement 5v est requis, n'installez aucun composant 3v3, en les remplaçant par des résistances 0 Ohm ROpt 3 et 4.
Contraste numérique
Le contrôle numérique du contraste est réalisé via l'utilisation d'un potentiomètre numérique U2 MCP4561-103E/MS et C4, R5.
Si un potentiomètre mécanique conventionnel est requis, il peut être installé sur le PCB, RV1 10K, au lieu de U2, C4 et R5. Voir BoM pour le potentiomètre compatible.
En pontant le cavalier J6, l'adresse I2C est 0x2E. Si cela est supposé pour un fonctionnement normal, cela est ponté.
Sélection d'intensité de rétroéclairage variable
L'intensité du rétroéclairage variable est contrôlée par la modulation PWM du rétroéclairage LED LCD via U1 broche 6 et ATTiny85. Afin de conserver une compatibilité totale avec le module de contrôle LCD I2C standard, R1, T1 R7 et T2 sont utilisés pour moduler le rail d'alimentation +ve.
L'adresse I2C par défaut pour cela est 0x08. Ceci est sélectionnable par l'utilisateur, au moment de la compilation avant la programmation de U1.
Étape 2: Fabrication de PCB
Comme mentionné précédemment, ce Instructable était un exercice, principalement destiné à déterminer combien de temps il faudrait pour terminer une conception (qui avait un but pratique).
Dans ce cas, j'ai pensé au concept initial le samedi après-midi et j'avais terminé le prototype le samedi soir, photo 1 ci-dessus. Mon idée, comme indiqué, était de créer ma propre variante du module de contrôleur LCD I2C, avec une empreinte identique, offrant un contrôle programmatique complet de l'écran LCD sur I2C.
Le diagramme schématique et la disposition du PCB ont été développés avec Kicad v4.0.7 photos 2 et 3. Cela a été terminé dimanche après-midi et les pièces ont été commandées auprès de Farnell et le PCB a été téléchargé sur JLCPCB dimanche soir.
Les composants sont arrivés de Farnell mercredi, suivis des PCB de JLCPCB jeudi (j'ai utilisé le service de livraison DHL pour accélérer les choses) photos 4, 5, 6 & 7.
Jeudi soir, deux cartes (variantes 3v3 et 5v) avaient été construites et testées avec succès sur un écran LCD 4 x 20. Photos 8, 9 et 10.
Un incroyable 5,5 jours du concept initial à la réalisation.
Je suis étonné de la rapidité avec laquelle JLCPCB est capable de prendre une commande, de fabriquer un PCB PTH double face et de l'expédier au Royaume-Uni. Un blistering de 2 jours pour la fabrication et 2 jours pour la livraison. C'est plus rapide que les fabricants de PCB basés au Royaume-Uni et à une fraction du prix.
Étape 3: Présentation du logiciel
Il y a trois composants principaux au logiciel nécessaires pour contrôler le module de contrôleur LCD I2C;
1. Bibliothèque Arduino LiquidCrystal_I2C_PCF8574
Disponible ici
A utiliser dans votre sketch Arduino pour contrôler l'écran LCD.
Remarque: cela fonctionne aussi bien avec le contrôleur de module LCD générique I2C. Seulement, cela donne des fonctionnalités que les autres bibliothèques.
2. Bibliothèque Arduino MCP4561_DIGI_POT
À utiliser dans votre croquis pour contrôler par programmation le contraste de l'écran LCD
Disponible ici
3. Contrôle par programmation des niveaux de rétroéclairage LCD à l'aide de la fonction PWM et Quartic easing pour obtenir une décoloration en douceur
Comme mentionné précédemment, la carte contient un seul ATTiny85 utilisé pour contrôler la décoloration progressive du rétroéclairage de l'écran.
Les détails de ce logiciel sont donnés dans un précédent Instructable « Smooth PWM LED Fading With the ATTiny85 »
Dans ce cas, afin de conserver les mêmes dimensions finales du PCB qu'un module de contrôleur LCD générique, la variante SOIC de l'ATTiny85 a été choisie. Les photos 1 et 2 montrent comment le SOIC ATTiny85 a été programmé et testé dans la configuration du prototype.
Le code programmé dans l'ATTiny85 était 'Tiny85_I2C_Slave_PWM_2.ino' disponible ici
Pour plus de détails sur la façon de créer votre propre programmeur ATTiny85, consultez ce Instructable 'Programming the ATTiny85, ATTiny84 and ATMega328P: Arduino As ISP'
Étape 4: Tester la conception
Pour tester la conception, j'ai créé un croquis nommé « LCDControllerTest.ino » qui permet à l'utilisateur de définir n'importe quel paramètre spécifique à l'écran LCD directement via une connexion de terminal série.
Le croquis peut être trouvé sur mon référentiel GitHub I2C-LCD-Controller-Module
L'image 1 ci-dessus montre la presse de carte compatible 5v I2C montée sur un écran LCD 4 par 20 et l'image 2 l'affichage par défaut lors de l'exécution du code de test pour la première fois.
Il utilise les valeurs par défaut suivantes pour le contre-jour et le contraste;
- #define DISPLAY_BACKLIGHT_LOWER_VALUE_DEFAULT ((long non signé) (10))
- #define DISPLAY_CONTRAST_VALUE_DEFAULT ((uint8_t) (40))
J'ai trouvé que cela fonctionnait bien avec l'écran LCD 4 x 20 que j'avais en réserve.
Étape 5: Conclusion
Lorsque j'ai commencé dans l'industrie de l'électronique/du logiciel il y a un certain temps maintenant, l'accent était mis sur l'utilisation de la construction en fil ou en veroboard pour le prototypage avec beaucoup de sur-ingénierie sur le circuit final au cas où vous auriez fait une erreur, compte tenu du coût et de la durée d'un re-spin.
Une erreur vous coûte généralement quelques semaines sur le calendrier et fait exploser la marge bénéficiaire (et éventuellement votre travail).
Les PCB étaient appelés « œuvres d'art », parce qu'il s'agissait vraiment d'œuvres d'art. Créé deux fois en taille réelle à l'aide de ruban de crêpe noir collant par un « traceur » ou un dessinateur et réduit photographiquement par la maison de fabrication pour que la photo résiste aux pochoirs.
Des schémas de circuits ont également été créés par des traceurs et dessinés à la main à partir de vos notes de conception. Des copies ont été faites de manière photostatique et appelées « tirages bleus ». Parce qu'ils étaient invariablement de couleur bleue.
Les microcontrôleurs n'en étaient qu'à leurs balbutiements et étaient généralement émulés en circuit si votre entreprise pouvait se le permettre avec l'environnement de développement complexe et coûteux qui l'accompagne.
En tant que fabricant à l'époque, le simple coût de la chaîne d'outils de développement logiciel était prohibitif, vous étiez inévitablement obligé de saisir des valeurs hexadécimales directement dans l'EPROM (RAM/Flash si vous étiez très chanceux) puis de passer des heures à interpréter le comportement résultant pour déterminer ce que votre code fonctionnait s'il ne fonctionnait pas comme prévu (bit 'wiggling' ou serial printf étant les techniques de débogage les plus populaires. Certaines choses ne changent jamais). Vous deviez généralement écrire toutes vos propres bibliothèques car aucune n'était disponible (il n'y avait certainement pas de source riche comme Internet).
Cela signifiait que vous passiez beaucoup de temps à essayer de comprendre comment quelque chose fonctionnait et que vous passiez moins de temps à créer de manière créative.
Tous vos diagrammes ont été dessinés à la main, généralement sur A4 ou A3 et ont dû être soigneusement réfléchis, leur donnant un flux logique de chemin de signal de gauche à droite. Les corrections signifiaient généralement que vous deviez commencer avec une nouvelle feuille.
Pour la plupart, votre circuit final a été développé à l'aide de veroboard pour la permanence et monté dans un simple boîtier en ABS pour lui donner cette « touche professionnelle ».
Par contraste, j'ai développé tout ce projet en 5,5 jours en utilisant un logiciel gratuit de haute qualité résultant en un PCB standard professionnel. Si l'envie m'en avait pris, j'aurais pu le monter dans une boîte imprimée en 3D de ma propre fabrication.
Quelque chose dont vous ne pouviez rêver qu'il y a moins d'une décennie.
Comment les choses ont changé pour le mieux.
Étape 6: Références utilisées
Capture de schéma KiCAD et conception de PCB
KiCAD EDA
Outil de développement logiciel Arduino ORG
Arduino
Bibliothèque Arduino LiquidCrystal_I2C_PCF8574
Ici
Bibliothèque Arduino MCP4561_DIGI_POT
Ici
Fading LED PWM en douceur avec l'ATTiny85
Ici
Programmation des ATTiny85, ATTiny84 et ATMega328P: Arduino As ISP
Conseillé:
Module d'alimentation IoT : Ajout d'une fonction de mesure de la puissance IoT à mon contrôleur de charge solaire : 19 étapes (avec photos)
Module d'alimentation IoT : Ajout d'une fonction de mesure de la puissance IoT à mon contrôleur de charge solaire : Bonjour à tous, j'espère que vous allez tous bien ! Dans ce instructable, je vais vous montrer comment j'ai fait un module de mesure de puissance IoT qui calcule la quantité d'énergie générée par mes panneaux solaires, qui est utilisé par mon contrôleur de charge solaire t
Contrôleur de jeu DIY basé sur Arduino - Contrôleur de jeu Arduino PS2 - Jouer à Tekken avec la manette de jeu DIY Arduino : 7 étapes
Contrôleur de jeu DIY basé sur Arduino | Contrôleur de jeu Arduino PS2 | Jouer à Tekken avec la manette de jeu DIY Arduino : Bonjour les gars, jouer à des jeux est toujours amusant, mais jouer avec votre propre contrôleur de jeu personnalisé DIY est plus amusant. Nous allons donc créer un contrôleur de jeu utilisant arduino pro micro dans cette instructables
Écran LCD I2C/IIC - Utilisez un écran LCD SPI vers l'écran LCD I2C à l'aide du module SPI vers IIC avec Arduino : 5 étapes
Écran LCD I2C/IIC | Utilisez un écran LCD SPI sur l'écran LCD I2C à l'aide du module SPI vers IIC avec Arduino : Salut les gars, car un SPI LCD 1602 normal a trop de fils à connecter, il est donc très difficile de l'interfacer avec arduino, mais il existe un module disponible sur le marché qui peut convertir l'affichage SPI en affichage IIC, vous n'avez donc besoin de connecter que 4 fils
Écran LCD I2C/IIC - Convertir un écran LCD SPI en écran LCD I2C : 5 étapes
Écran LCD I2C/IIC | Convertir un écran LCD SPI en écran LCD I2C : l'utilisation de l'écran lcd spi nécessite trop de connexions, ce qui est vraiment difficile à faire
YABC - Encore un autre contrôleur Blynk - Contrôleur de température et d'humidité du cloud IoT, ESP8266 : 4 étapes
YABC - Encore un autre contrôleur Blynk - Contrôleur de température et d'humidité du cloud IoT, ESP8266 : Salut les fabricants, j'ai récemment commencé à cultiver des champignons à la maison, des pleurotes, mais j'ai déjà 3x de ces contrôleurs à la maison pour le contrôle de la température du fermenteur pour ma bière maison, femme fait aussi ce truc de Kombucha maintenant, et en tant que thermostat pour la chaleur