Table des matières:

Module de contrôleur LCD Uber I2C : 6 étapes
Module de contrôleur LCD Uber I2C : 6 étapes

Vidéo: Module de contrôleur LCD Uber I2C : 6 étapes

Vidéo: Module de contrôleur LCD Uber I2C : 6 étapes
Vidéo: Использование термопары MAX6675 с LCD1602 и Arduino 2024, Juillet
Anonim
Module de contrôleur LCD Uber I2C
Module de contrôleur LCD Uber I2C
Module de contrôleur LCD Uber I2C
Module de contrôleur LCD Uber I2C
Module de contrôleur LCD Uber I2C
Module de contrôleur LCD Uber I2C

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

Aperçu du circuit
Aperçu 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

Fabrication de PCB
Fabrication de PCB
Fabrication de PCB
Fabrication de PCB
Fabrication de PCB
Fabrication de PCB
Fabrication de PCB
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

Présentation du logiciel
Présentation du logiciel
Présentation du logiciel
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

Tester la conception
Tester la conception
Tester la conception
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é: