INHOUDSOPGAWE:

5V LCD -skerm met Arduino Due 3.3V I2C: 5 stappe
5V LCD -skerm met Arduino Due 3.3V I2C: 5 stappe

Video: 5V LCD -skerm met Arduino Due 3.3V I2C: 5 stappe

Video: 5V LCD -skerm met Arduino Due 3.3V I2C: 5 stappe
Video: Как использовать ESP32 WiFi и Bluetooth с Arduino IDE, полная информация с примерами и кодом. 2024, November
Anonim
5V LCD -skerm met Arduino Due 3.3V I2C
5V LCD -skerm met Arduino Due 3.3V I2C

Hierdie post het ten doel om 'n makliker manier om die Arduino Due (of ander 3.3V -bord) met die gewilde LCD 16x2 -skerm met die I2C -adaptermodule te verduidelik.

Die aanvanklike probleem is dat die LCD 5V nodig het om die agtergrond behoorlik te laat werk, maar die SCL- en SDA -penne moet op 3.3V werk om met die Arduino Due te kommunikeer sonder om skade aan te rig. Om dit op te los, het ek twee opsies gevind:

Die mees genoemde oplossing is om 'n tweerigting-logiese vlakomskakelaar te gebruik, wat die probleem inderdaad oplos. Maar dit voeg ook nog 'n komponent by u lys en bykomende bedradingaansluitings op u kring

Die ander manier wat ek gevind het, is om eenvoudig 2 pullup -weerstande in die "I2C -adapterrugsak" van die LCD af te soldeer. Behalwe dat dit baie makliker is, het dit ook ander voordele wat in die vergelyking aan die einde verduidelik word. Hierdie metode is die hooffokus van hierdie pos

Voorrade

Arduino Due

LCD 16x2 -skerm met die I2C -adaptermodule

Soldeerbout

Soldeerpomp of soldeerlont

Pincet

Stap 1: Oorsprong van die oplossing

Die oplossing is nie deur my uitgevind nie; ek het 'n redelike goeie voorstel en verduideliking op die Arduino Forum in die onderstaande skakel gesien, wat ek in hierdie pos sal weergee.

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

Antwoord van: david_prentice

Ek kon geen volledige tutoriaal op die internet vind nie, en omdat dit 'n baie algemene probleem is, probeer ek die oplossing hier in detail voorstel, sien hoe dit werk, en voeg inligting by wat 'n mate van skeptisisme oor die uitkomste daarvan kan versag.

Stap 2: Uitleg

Toestelle

Om die I2C -kommunikasie te laat werk, benodig dit pullup -weerstande wat aan die SDA- en SCL -penne gekoppel is. Dit is omdat die toestelle hierdie penne net LOW draai terwyl hulle kommunikeer. Om 'n HOOG voor te stel, hoef dit slegs nie 'n LAAG te stuur nie, en danksy die pulpsies gaan dit na HOOG. (hierdie begrip sal later redelik belangrik wees)

Die LCD "I2C-rugsak" het twee optrekkeweerstands van 4K7 wat aan die I2C-vereiste voldoen. Maar aangesien hulle aan Vcc gekoppel is, trek hulle SDA en SCL na 5 V. as jy 5 V gebruik.

As u na die datablad kyk, kan u sien dat die Due, in teenstelling met ander borde, reeds 1K5-optrekweerstands aan boord op sy hoof SDA, SCL-penne, het wat dit na 3,3 V. trek.

Toetse

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

As u net die LCD op die Due aansluit (volgens die bedrading hierbo), sal die 1k5 (of 1k0) Due pullups wat gekoppel is aan 3.3V en die 4K7 LCD pullups wat gekoppel is aan die 5 V lei tot ledige I2C -lyne by 3.7 V (3.6 V) met 1k0). Dit is nie goed nie, aangesien die Due -datablad 'n maksimum spanning van 3,6 V vir sy I/O -lyne bepaal.

Deur hierdie scenario te toets, met slegs die LCD, het ek 3, 56 V. Deur 'n EEPROM -module by dieselfde SDA en SCL te voeg, het dit tot 3.606 V. gestyg. In beide gevalle werk alles normaal, maar dit is ver van die ideale spanning vlakke in ag genome die maksimum van 3,6 V.

So ja, daar is 'n kans dat dit sal werk net soos myne, terwyl dit nie verander word nie. Maar die spanningsvlak is nog steeds nie ideaal nie, en 'n teenstrydigheid met die Due of LCD -druk kan veroorsaak dat dit bo die limiet van 3,6 V oorskry. (Dit is raadsaam om ten minste eers met 'n 20K of 100K potensiometer noukeurig te toets wat die laagste weerstand tussen 5 V en SCL/SDA penne is voordat hulle tot 3,6 V kom, hoewel die res van die oplossing baie veiliger en waarskynlik makliker is)

Oplossing

Die oplossing is om die optrekweerstands eenvoudig uit die LCD-rugsak te verwyder, wat probeer om die lyn tot 5 V. te trek. Dan bly slegs die Due-aan boord-weerstande oor en trek die SCL- en SDA-lyne na 3.3V. Dit het perfek gewerk en die ledige penne op ongeveer 3,262 V gehou!

Die verbindings bly dieselfde:

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

As u wonder of die LCD nie die lyn na 5 V sal trek om 'n HOOG voor te stel tydens kommunikasie nie, onthou dat die toestelle op I2C slegs die lyne LOW trek, dit is die HOOG sein wat voorgestel word as dit nie inmeng nie, wat die 3.3 V van die Due se optrede aan boord.

Die 3.3 V is ook voldoende om die I2C -rugsak as 'n HOOG sein te beskou.

Stap 3: Identifiseer en verwyder die weerstande

Identifiseer en verwyder die weerstande
Identifiseer en verwyder die weerstande
Identifiseer en verwyder die weerstande
Identifiseer en verwyder die weerstande

Die prent hierbo toon in rooi die pullup -weerstande wat ek in my module gevind het.

Identifiseer

Aangesien die LCD I2C -adapterrugsak kan wissel, is die weerstande moontlik nie in dieselfde konfigurasie nie. Om die pullup -weerstande te identifiseer, kan u 'n multimeter met 'n kontinuïteitstoets gebruik. Elke optrekweerstand moet 'n einde aan die SCL- of SDA-pen hê en die ander kant aan Vcc.

In my geval was daar drie van die 4K7 (472 in SMD -kode) weerstande op die bord. Slegs twee van hulle voldoen aan die vereistes hierbo, en wys daarop dat dit die pullups is wat ons gesoek het!

Vir ekstra voorsorg (as dit om een of ander rede nie 4K7 was nie), het ek ook die ander weerstande getoets en bevestig dat nie een van hulle aan die vereistes voldoen om op te trek nie.

Verwyder

Al wat u hoef te doen is om hulle te laat los! Dit is makliker as u 'n soldeerpomp of soldeerstok en pincet het om te help.

Stap 4: Vergelyking tussen oplossings

Tweerigting Logic Level Converter (LLC)

Voordele:

Vereis geen soldeertoerusting of vermoë nie

Nadele:

Advertensieer meer kabels en die LLC in u lys met komponente

Messiger verbindings met die ekstra komponente

Effens duurder

Los die LCD-optelweerstands af

Voordele:

Skoner eindresultaat

U kan dit waarskynlik onmiddellik doen sonder om op die LLC te wag

Veral goed as u die verskeidenheid komponente en kompleksiteit in 'n komplekse projek wil verminder of wat u wil herhaal

Nadele:

Verander die LCD -stroombaan (as u wil hê dat dit gereed is om te gebruik met die Uno, reeds met die 4K7 pullups, kan u die veranderings ongedaan maak)

Stap 5: Laaste oorwegings

Ek hoop dat hierdie tutoriaal 'n bietjie lig werp op hierdie verenigbaarheidskwessie en sommige van die moontlike oplossings daarvan.

As u idees vir verbetering, beter verduidelikings, nuwe oplossings het, of as u 'n fout in die pos gevind het, vertel dit dan in die kommentaar!:)

Aanbeveel: