Sadržaj:

5V LCD zaslon s Arduino Due 3.3V I2C: 5 koraka
5V LCD zaslon s Arduino Due 3.3V I2C: 5 koraka

Video: 5V LCD zaslon s Arduino Due 3.3V I2C: 5 koraka

Video: 5V LCD zaslon s Arduino Due 3.3V I2C: 5 koraka
Video: Как использовать SSD1306 128x32 OLED-дисплей I2C с кодом Arduino 2024, Srpanj
Anonim
5V LCD zaslon s Arduino Due 3.3V I2C
5V LCD zaslon s Arduino Due 3.3V I2C

Ovaj post ima za cilj objasniti lakši način korištenja Arduino Due (ili druge 3,3 V ploče) s popularnim LCD zaslonom 16x2 s I2C adapterskim modulom.

Početni problem je u tome što je LCD -u potrebno 5V da bi pozadinsko osvjetljenje radilo ispravno, ali SCL i SDA pinovi bi trebali raditi na 3.3V kako bi komunicirali s Arduino Dueom bez nanošenja štete. Da bih to riješio, pronašao sam dvije mogućnosti:

Najviše spomenuto rješenje je korištenje dvosmjernog pretvarača logičke razine, što doista rješava problem. Ali također dodaje još jednu komponentu na vaš popis i dodatne ožičenje na vašem krugu

Drugi način na koji sam otkrio je jednostavno odlijepiti 2 otpornika u "I2C adapterskom ruksaku" s LCD -a. Osim što je mnogo lakše, ima i druge prednosti objašnjene u usporedbi na kraju. Ova je metoda glavni fokus ovog posta

Pribor

Arduino Due

LCD 16x2 zaslon s I2C adapterskim modulom

Lemilica

Pumpa za lemljenje ili fitilj za lemljenje

Pinceta

Korak 1: Podrijetlo rješenja

Rješenje nisam izmislio, vidio sam prilično dobar prijedlog i objašnjenje na Arduino forumu na donjoj poveznici, koje ću reproducirati u ovom postu.

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

Odgovor od: david_prentice

Nisam mogao pronaći nikakav cjelovit vodič na Internetu, a budući da je to vrlo čest problem, pokušavam ovdje detaljno predstaviti rješenje, svjedočiti da ono zaista djeluje i dodati informacije koje bi mogle ublažiti skepsu prema njegovim ishodima.

Korak 2: Objašnjenje

Uređaji

Da bi I2C komunikacija funkcionirala, potrebni su pullup otpornici spojeni na SDA i SCL pinove. To je zato što uređaji samo NIZO okreću ove igle tijekom komunikacije. Da bi predstavljao HIGH, samo ne mora slati LOW, a zahvaljujući povlačenjima ide na HIGH. (ovo razumijevanje će kasnije biti prilično važno)

LCD "I2C ruksak" ima dva 4K7 pull-up otpornika koji zadovoljavaju zahtjeve I2C. No budući da su spojeni na Vcc, ako koristite 5 V, povući će SDA i SCL na 5 V.

Ako pogledate podatkovnu tablicu, možete vidjeti da, za razliku od drugih ploča, Due već ima ugrađene 1K5 pull-up otpornike na svojim glavnim SDA, SCL pinovima, koji ih vuku na 3,3 V.

Testovi

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

Ako samo spojite LCD na Due (slijedeći gornje ožičenje), 1k5 (ili 1k0) Due povezivanje spojeno na 3,3 V i 4K7 LCD izvlačenje spojeno na 5 V rezultirat će praznim I2C vodovima na 3,7 V (3,6 V s 1k0). To nije dobro jer podatkovna tablica Due propisuje maksimalni napon od 3,6 V za svoje I/O vodove.

Testiranjem ovog scenarija, samo s LCD -om, dobio sam 3, 56 V. Dodavanjem EEPROM modula na isti SDA i SCL, popeo se na 3,606 V. U oba slučaja sve je radilo normalno, ali oni su daleko od idealnog napona razine uzimajući u obzir predviđeni maksimum od 3,6 V.

Dakle, da, postoji šansa da će funkcionirati baš kao što je radio moj, a da nije napravio nikakve izmjene. No, razina napona je još uvijek daleko od idealne, a neke razlike na Due -u ili LCD pullupu mogu uzrokovati da pređe granicu od 3,6 V. (Bilo bi preporučljivo barem prije pažljivo provjeriti potenciometrom od 20K ili 100K koji je najmanji otpor između 5 V i SCL/SDA pinova prije nego što dosegnu 3,6 V, iako je ostatak otopine mnogo sigurniji i vjerojatno lakši)

Riješenje

Predloženo rješenje je jednostavno uklanjanje pull-up otpornika s LCD ruksaka koji pokušavaju izvući vod do 5 V. Zatim će ostati samo ugrađeni pull-up otpornici Due koji povlače SCL i SDA vodove na 3.3V. Radio je savršeno, održavajući igle u praznom hodu na oko 3.262 V!

Veze ostaju iste:

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

Ako se pitate neće li LCD povući liniju na 5 V kako bi predstavljao HIGH tijekom komunikacije, imajte na umu da na I2C uređaji povlače linije samo LOW, što je HIGH signal predstavljen kada ne ometa, što će biti 3,3 V od Due-ova uvlačenja.

Također, 3,3 V je dovoljno da se I2C ruksak može smatrati VISOKIM signalom.

Korak 3: Identificirajte i uklonite otpornike

Identificirajte i uklonite otpornike
Identificirajte i uklonite otpornike
Identificirajte i uklonite otpornike
Identificirajte i uklonite otpornike

Gornja slika prikazuje crvenom bojom otpornike koje sam pronašao u svom modulu.

Identificirati

Budući da se LCD I2C adapter ruksak može razlikovati, otpornici možda nisu u istoj konfiguraciji. Za identifikaciju izvlačnih otpornika možete koristiti multimetar s testom kontinuiteta. Svaki pull-up otpornik trebao bi imati jedan kraj spojen na SCL ili SDA pin, a drugi kraj na Vcc.

U mom slučaju, na ploči su bila tri od 4K7 (472 u SMD kodu) otpornika. Samo su njih dvojica zadovoljili gore navedene zahtjeve, ističući da su to tragovi koje smo tražili!

Radi dodatne mjere opreza (ako iz nekog razloga nisu bili 4K7), testirao sam i ostale otpornike i potvrdio da niti jedan od njih ne zadovoljava uvjete za podizanje.

Ukloniti

Sada ih samo trebate odlijepiti! Lakše je ako imate pomoć pumpe za lemljenje ili fitilja za lemljenje i pincete.

Korak 4: Usporedba rješenja

Dvosmjerni pretvarač logičke razine (LLC)

Prednosti:

Ne zahtijeva nikakvu opremu za lemljenje niti sposobnost

Protiv:

Oglasi više kabela i LLC na popisu komponenti popisa

Messier veze s dodatnim komponentama

Nešto skuplji

Odspojite LCD pull-up otpornike

Prednosti:

Čistiji konačni rezultat

Vjerojatno to možete učiniti odmah, ne morate čekati LLC

Posebno dobro ako želite smanjiti raznolikost komponenti i složenost sastavljanja u složenom projektu ili koje želite replicirati

Protiv:

Mijenja LCD krug (ako želite da je "spreman za upotrebu" s Uno -om, koji već ima 4K7 izvlačenje, možete poništiti promjene koje ste ih lemili)

Korak 5: Završna razmatranja

Nadam se da će ovaj vodič rasvijetliti ovo pitanje kompatibilnosti i neka od njegovih mogućih rješenja.

Ako imate ideje za poboljšanje, bolja objašnjenja, nova rješenja ili ste pronašli grešku u postu, recite mi u komentarima!:)

Preporučeni: