Table des matières:

Écran LCD 5V avec Arduino Due 3.3V I2C : 5 étapes
Écran LCD 5V avec Arduino Due 3.3V I2C : 5 étapes

Vidéo: Écran LCD 5V avec Arduino Due 3.3V I2C : 5 étapes

Vidéo: Écran LCD 5V avec Arduino Due 3.3V I2C : 5 étapes
Vidéo: Lesson 07: Getting Additional 5V and GND from Arduino 2024, Novembre
Anonim
Écran LCD 5V avec Arduino Due 3.3V I2C
Écran LCD 5V avec Arduino Due 3.3V I2C

Cet article vise à expliquer un moyen plus simple d'utiliser l'Arduino Due (ou une autre carte 3.3V) avec le populaire écran LCD 16x2 avec le module adaptateur I2C.

Le problème initial est que l'écran LCD a besoin de 5V pour que son rétroéclairage fonctionne correctement, mais les broches SCL et SDA doivent fonctionner à 3,3V pour communiquer avec l'Arduino Due sans causer de dommages. Pour résoudre ce problème, j'ai trouvé deux options:

La solution la plus mentionnée consiste à utiliser un convertisseur de niveau logique bidirectionnel, qui résout effectivement le problème. Mais cela ajoute également un autre composant à votre liste et des connexions de câblage supplémentaires sur votre circuit

L'autre façon que j'ai trouvée consiste simplement à dessouder 2 résistances pullup dans le "sac à dos adaptateur I2C" de l'écran LCD. En plus d'être beaucoup plus facile, il a d'autres avantages expliqués dans la comparaison à la fin. Cette méthode est l'objectif principal de cet article

Fournitures

Arduino en raison

Écran LCD 16x2 avec le module adaptateur I2C

Fer à souder

Pompe à souder ou mèche à souder

Pince à épiler

Étape 1: Origine de la solution

La solution n'a pas été inventée par moi, j'ai vu une assez bonne suggestion et explication sur le forum Arduino dans le lien ci-dessous, que je vais reproduire dans ce post.

forum.arduino.cc/index.php?topic=553725.0

Réponse de: david_prentice

Je n'ai trouvé aucun didacticiel complet sur Internet et, comme il s'agit d'un problème très courant, j'essaie de présenter la solution ici en détail, de constater que cela fonctionne réellement et d'ajouter des informations qui pourraient atténuer le scepticisme quant à ses résultats.

Étape 2: Explication

Dispositifs

Pour que la communication I2C fonctionne, elle nécessite des résistances de rappel connectées aux broches SDA et SCL. C'est parce que les appareils ne font que ces broches LOW tout en communiquant. Pour représenter un HIGH, il n'a qu'à ne pas envoyer de LOW, et grâce aux pullups il passe à HIGH. (cette compréhension sera assez importante plus tard)

Le "sac à dos I2C" LCD dispose de deux résistances de rappel 4K7 qui répondent à l'exigence I2C. Mais comme ils sont connectés à Vcc, si vous utilisez 5 V, ils tireront SDA et SCL à 5 V.

Si vous regardez la fiche technique, vous pouvez voir que, contrairement à d'autres cartes, la Due a déjà des résistances de rappel 1K5 intégrées sur ses broches SDA principales, SCL, qui les tirent à 3,3 V.

Essais

  • Affichage LCD -> Arduino
  • Terre -> Terre
  • Vcc -> 5V
  • SDA -> SDA
  • SCL -> SCL

Si vous connectez simplement l'écran LCD sur le Due (en suivant le câblage ci-dessus), les pullups Due 1k5 (ou 1k0) connectés à 3,3 V et les pullups LCD 4K7 connectés au 5 V entraîneront des lignes I2C inactives à 3,7 V (3,6 V avec 1k0). Ce n'est pas bon, puisque la fiche technique Due stipule une tension maximale de 3,6 V pour ses lignes d'E/S.

En testant ce scénario, avec uniquement l'écran LCD, j'ai obtenu 3, 56 V. En ajoutant un module EEPROM au même SDA et SCL, il est passé à 3,606 V. Dans les deux cas tout a fonctionné normalement, mais ceux-ci sont loin d'une tension idéale niveaux en tenant compte du 3,6 V maximum stipulé.

Alors oui, il y a une chance que cela fonctionne comme le mien sans faire de modification. Mais le niveau de tension est encore loin d'être idéal et un écart sur le pullup Due ou LCD peut l'amener à dépasser la limite de 3,6 V. (Il serait conseillé au moins de tester soigneusement avec un potentiomètre 20K ou 100K quelle est la résistance la plus basse entre 5 V et les broches SCL/SDA avant qu'elles n'atteignent 3,6 V, bien que le reste de la solution soit beaucoup plus sûr et probablement plus facile)

Solution

La solution présentée consiste simplement à retirer les résistances pull-up du sac à dos LCD, qui tentent de tirer la ligne jusqu'à 5 V. Ensuite, seules les résistances pull-up intégrées Due resteront, tirant les lignes SCL et SDA à 3,3 V. Cela a parfaitement fonctionné, maintenant les broches inactives à environ 3,262 V !

Les connexions restent les mêmes:

  • Écran LCD -> Arduino
  • Terre -> Terre
  • Vcc -> 5V
  • SDA -> SDA
  • SCL -> SCL

Si vous vous demandez si l'écran LCD ne tirera pas la ligne à 5 V pour représenter un HAUT lors de la communication, rappelez-vous que sur I2C, les appareils ne tirent que les lignes BAS, étant le signal HAUT représenté lorsqu'il n'interfère pas, qui sera le 3,3 V de les tractions à bord du Due.

De plus, le 3,3 V est suffisant pour que le sac à dos I2C soit considéré comme un signal HAUT.

Étape 3: Identifiez et retirez les résistances

Identifier et retirer les résistances
Identifier et retirer les résistances
Identifier et retirer les résistances
Identifier et retirer les résistances

L'image ci-dessus montre en rouge les résistances pullup que j'ai trouvées dans mon module.

Identifier

Comme le sac à dos de l'adaptateur LCD I2C peut varier, les résistances peuvent ne pas être dans la même configuration. Pour identifier les résistances de pullup, vous pouvez utiliser un multimètre avec un test de continuité. Chaque résistance de rappel doit avoir une extrémité connectée à la broche SCL ou SDA et l'autre extrémité à Vcc.

Dans mon cas, il y avait trois des résistances 4K7 (472 en code SMD) sur la carte. Seuls deux d'entre eux ont satisfait aux exigences ci-dessus, soulignant que ce sont les tractions que nous recherchions !

Pour plus de précaution (si pour une raison quelconque elles n'étaient pas 4K7), j'ai également testé les autres résistances et j'ai confirmé qu'aucune d'entre elles ne satisfaisait aux exigences pour être des pull-ups.

Supprimer

Maintenant, il ne vous reste plus qu'à les dessouder ! C'est plus facile si vous avez une pompe à souder ou une mèche à souder et une pince à épiler pour vous aider.

Étape 4: Comparaison entre les solutions

Convertisseur de niveau logique bidirectionnel (LLC)

Avantages:

Ne nécessite aucun équipement ou capacité de soudure

Les inconvénients:

Ajoute plus de câbles et la LLC à votre liste de composants de liste

Connexions plus mesquines avec les composants supplémentaires

Un peu plus cher

Dessouder les résistances de rappel LCD

Avantages:

Résultat final plus propre

Vous pouvez probablement le faire tout de suite, sans avoir à attendre la LLC

Particulièrement utile si vous souhaitez réduire la variété des composants et la complexité de l'assemblage dans un projet complexe ou que vous souhaitez reproduire

Les inconvénients:

Modifie le circuit LCD (si vous le voulez "prêt à l'emploi" avec l'Uno, ayant déjà les pullups 4K7, vous pouvez annuler les modifications en les ressoudant)

Étape 5: Considérations finales

J'espère que ce tutoriel vous éclairera sur ce problème de compatibilité et certaines de ses solutions possibles.

Si vous avez des idées d'amélioration, de meilleures explications, de nouvelles solutions ou si vous avez trouvé une erreur dans la publication, n'hésitez pas à me le dire dans les commentaires !:)

Conseillé: