Taula de continguts:

Pantalla LCD de 5V amb Arduino Due 3.3V I2C: 5 passos
Pantalla LCD de 5V amb Arduino Due 3.3V I2C: 5 passos

Vídeo: Pantalla LCD de 5V amb Arduino Due 3.3V I2C: 5 passos

Vídeo: Pantalla LCD de 5V amb Arduino Due 3.3V I2C: 5 passos
Vídeo: Бесконтактный датчик температуры дальнего действия MLX90614-DCI с Arduino 2024, Desembre
Anonim
Pantalla LCD de 5V amb Arduino Due 3.3V I2C
Pantalla LCD de 5V amb Arduino Due 3.3V I2C

Aquesta publicació té com a objectiu explicar una manera més senzilla d’utilitzar l’Arduino Due (o una altra placa de 3,3V) amb la popular pantalla LCD 16x2 amb el mòdul adaptador I2C.

El problema inicial és que la pantalla LCD necessita 5V perquè la seva llum de fons funcioni correctament, però els pins SCL i SDA haurien de funcionar a 3,3V per comunicar-se amb l’Arduino Due sense causar danys. Per solucionar-ho, he trobat dues opcions:

La solució més esmentada és utilitzar un convertidor de nivell lògic bidireccional, que de fet resol el problema. Però també afegeix un altre component a la vostra llista i connexions de cablejat addicionals al vostre circuit

L'altra manera que he trobat és simplement dessoldar 2 resistències de tracció a la "motxilla adaptadora I2C" de la pantalla LCD. A més de ser molt més fàcil, té altres avantatges explicats a la comparació al final. Aquest mètode és el focus principal d’aquest post

Subministraments

Arduino Due

Pantalla LCD 16x2 amb el mòdul adaptador I2C

Soldador

Bomba de soldar o metxa de soldar

Pinces

Pas 1: origen de la solució

La solució no la vaig inventar jo, vaig veure un suggeriment i una explicació força bons al fòrum Arduino a l’enllaç següent, que reproduiré en aquest post.

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

Resposta de: david_prentice

No he trobat cap tutorial complet a Internet i, com que és un problema molt comú, intento presentar la solució aquí en detall, comprovar que realment funciona i afegir informació que pugui mitigar un cert escepticisme sobre els seus resultats.

Pas 2: explicació

Dispositius

Perquè la comunicació I2C funcioni, requereix resistències de tracció connectades als pins SDA i SCL. Això es deu al fet que els dispositius només fan que aquests pins BAIXIN mentre es comuniquen. Per representar un HIGH, només ha d’enviar un LOW i, gràcies als pullups, passa a HIGH. (aquesta comprensió serà força important més endavant)

La "motxilla I2C" LCD té dues resistències de tracció 4K7 que compleixen el requisit I2C. Però com que estan connectats a Vcc, si utilitzeu 5 V, trauran SDA i SCL a 5 V.

Si mireu el full de dades, podeu veure que, a diferència d’altres taules, el Due ja té resistències d’extracció 1K5 incorporades a la seva SDA principal, pins SCL, que les arrossega a 3,3 V.

Proves

  • Pantalla LCD -> Arduino
  • Gnd -> Gnd
  • Vcc -> 5V
  • SDA -> SDA
  • SCL -> SCL

Si acabeu de connectar la pantalla LCD del Due (seguint el cablejat anterior), els extractors Due 1k5 (o 1k0) Due connectats a 3,3 V i els pulls LCD 4K7 connectats a 5 V donaran lloc a línies I2C inactives a 3,7 V (3,6 V amb 1k0). Això no és bo, ja que el full de dades Due estableix un voltatge màxim de 3,6 V per a les seves línies d'E / S.

En provar aquest escenari, només amb la pantalla LCD, vaig obtenir 3, 56 V. En afegir un mòdul EEPROM als mateixos SDA i SCL, va pujar a 3.606 V. En ambdós casos tot va funcionar amb normalitat, però estan lluny del voltatge ideal. nivells considerant el màxim estipulat de 3,6 V.

Per tant, sí, hi ha la possibilitat que funcioni igual que la meva, però sense fer cap alteració. Però el nivell de tensió encara és lluny de ser ideal i algunes discrepàncies en el llançament Due o LCD poden fer que superi el límit de 3,6 V. (Seria aconsellable provar amb un potenciòmetre de 20K o 100K, com a mínim, la resistència més baixa entre 5 V i els pins SCL / SDA abans d’arribar a 3,6 V, tot i que la resta de la solució és molt més segura i probablement més fàcil)

Solució

La solució que es presenta és eliminar simplement les resistències de tracció de la motxilla LCD, que intenten estirar la línia fins a 5 V. Llavors, només quedaran les resistències de tracció Due a bord, tirant les línies SCL i SDA a 3,3 V. Va funcionar perfectament, mantenint els passadors de ralentí a uns 3.262 V.

Les connexions segueixen sent les mateixes:

  • Pantalla LCD -> Arduino
  • Gnd -> Gnd
  • Vcc -> 5V
  • SDA -> SDA
  • SCL -> SCL

Si us pregunteu si la pantalla LCD no estirarà la línia a 5 V per representar un HIGH quan es comuniqui, recordeu que a I2C els dispositius només treuen les línies BAIXA, sent el senyal HIGH representat quan no interfereix, que serà el 3,3 V de els pull-ups incorporats del Due.

A més, el 3,3 V és suficient perquè la motxilla I2C es consideri un senyal HIGH.

Pas 3: identifiqueu i traieu les resistències

Identifiqueu i traieu les resistències
Identifiqueu i traieu les resistències
Identifiqueu i traieu les resistències
Identifiqueu i traieu les resistències

La imatge superior mostra en vermell les resistències de tracció que he trobat al meu mòdul.

Identificar

Com que la motxilla adaptador LCD I2C pot variar, és possible que les resistències no tinguin la mateixa configuració. Per identificar les resistències de tracció, podeu utilitzar un multímetre amb una prova de continuïtat. Cada resistència de tracció ha de tenir un extrem connectat al pin SCL o SDA i l’altre extrem a Vcc.

En el meu cas, hi havia tres de les resistències 4K7 (472 en codi SMD) a la placa. Només dos d’ells van complir els requisits anteriors, i van assenyalar que aquests eren els pullups que estàvem buscant.

Per precaució addicional (si per alguna raó no eren 4K7), també vaig provar la resta de resistències i vaig confirmar que cap d'elles complia els requisits per ser pull-ups.

Elimina

Ara, tot el que heu de fer és dessoldar-los. És més fàcil si teniu una bomba de soldar o una metxa i pinces de soldar per ajudar-vos.

Pas 4: comparació entre solucions

Convertidor de nivell lògic bidireccional (LLC)

Avantatges:

No requereix cap equip de soldadura ni capacitat

Contres:

Anuncieu més cables i la LLC a la llista de components de la llista

Connexions més desordenades amb els components addicionals

Una mica més car

Desoldeu les resistències extraccionàries LCD

Avantatges:

Resultat final més net

Probablement ho pugueu fer immediatament sense haver d’esperar a la LLC

Especialment bo si voleu reduir la varietat de components i la complexitat del muntatge en un projecte complex o que voleu replicar

Contres:

Altera el circuit LCD (si el voleu "a punt per utilitzar-lo" amb l'Uno, ja que té els pull-ups 4K7, podeu desfer els canvis que els tornen a vendre)

Pas 5: consideracions finals

Espero que aquest tutorial aporti una mica de llum sobre aquest problema de compatibilitat i algunes de les seves possibles solucions.

Si teniu idees de millora, millors explicacions, noves solucions o trobeu algun error al missatge, digueu-ho als comentaris.:)

Recomanat: