Table des matières:
- Fournitures
- Étape 1: Origine de la solution
- Étape 2: Explication
- Étape 3: Identifiez et retirez les résistances
- Étape 4: Comparaison entre les solutions
- Étape 5: Considérations finales
Vidéo: Écran LCD 5V avec Arduino Due 3.3V I2C : 5 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
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
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é:
Macintosh à écran tactile - Mac classique avec un IPad Mini pour l'écran : 5 étapes (avec photos)
Macintosh à écran tactile | Mac classique avec un IPad Mini pour l'écran : Ceci est ma mise à jour et ma conception révisée sur la façon de remplacer l'écran d'un Macintosh vintage par un iPad mini. C'est le 6ème d'entre eux que j'ai fait au fil des ans et je suis assez content de l'évolution et du design de celui-ci ! En 2013, quand j'ai fait
Écran TTGO (couleur) avec Micropython (écran T TTGO) : 6 étapes
Écran TTGO (couleur) avec Micropython (écran T TTGO) : L'écran T TTGO est une carte basée sur l'ESP32 qui comprend un écran couleur de 1,14 pouce. La planche peut être achetée pour un prix de moins de 7$ (incluant les frais de port, prix vu sur banggood). C'est un prix incroyable pour un ESP32 avec écran.T
É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
Comment faire une horloge en temps réel à l'aide d'Arduino et d'un écran TFT - Arduino Mega RTC avec écran TFT de 3,5 pouces : 4 étapes
Comment faire une horloge en temps réel à l'aide d'Arduino et d'un écran TFT | Arduino Mega RTC avec un écran TFT de 3,5 pouces : visitez ma chaîne Youtube. Module RTC 2560 et DS3231….Avant de commencer…vérifiez la vidéo de ma chaîne YouTube..Remarque : - Si vous utilisez Arduin