Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: Pinagmulan ng Solusyon
- Hakbang 2: Paliwanag
- Hakbang 3: Kilalanin at Alisin ang Mga Resistor
- Hakbang 4: Paghahambing sa Pagitan ng Mga Solusyon
- Hakbang 5: Pangwakas na Pagsasaalang-alang
Video: 5V LCD Display Sa Arduino Naaangkop na 3.3V I2C: 5 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:10
Nilalayon ng post na ito na ipaliwanag ang isang mas madaling paraan upang magamit ang Arduino Due (o ibang 3.3V board) na may tanyag na LCD 16x2 Display na may module ng adapter ng I2C.
Ang paunang problema ay ang LCD na nangangailangan ng 5V para sa backlight nito upang gumana nang maayos, ngunit ang mga SCL at SDA na pin ay dapat na gumana sa 3.3V upang makipag-usap sa Arduino Dahil nang hindi nagdudulot ng pinsala. Upang malutas ito, nakakita ako ng dalawang pagpipilian:
Ang pinaka-nabanggit na solusyon ay ang paggamit ng isang Bi-Directional Logic Level Converter, na talagang nalulutas ang problema. Ngunit nagdaragdag din ito ng isa pang bahagi sa iyong listahan at mga karagdagang koneksyon sa mga kable sa iyong circuit
Ang iba pang paraan na aking nahanap ay ang simpleng pag-urong ng 2 pullup resistors sa "I2C adapter backpack" mula sa LCD. Bukod sa mas madali, mayroon itong iba pang mga kalamangan na ipinaliwanag sa paghahambing sa huli. Ang pamamaraang ito ang pangunahing pokus ng post na ito
Mga gamit
Arduino Dahil
Ipakita ang LCD 16x2 kasama ang module ng adapter ng I2C
Panghinang
Soldering pump o soldering wick
Mga Tweezer
Hakbang 1: Pinagmulan ng Solusyon
Ang solusyon ay hindi naimbento sa akin, nakita ko ang isang magandang mungkahi at paliwanag sa Arduino Forum sa link sa ibaba, na gagawin ko sa post na ito.
forum.arduino.cc/index.php?topic=553725.0
Sagot mula sa: david_prentice
Hindi ko makita ang anumang kumpletong tutorial sa internet at, dahil ito ay isang pangkaraniwang problema, sinusubukan kong ipakita ang solusyon dito nang detalyado, masaksihan na talagang gumagana ito, at magdagdag ng impormasyon na maaaring makapagpahina ng ilang pag-aalinlangan tungkol sa mga kinalabasan.
Hakbang 2: Paliwanag
Mga aparato
Para gumana ang komunikasyon ng I2C, nangangailangan ito ng mga pullup resistors na konektado sa mga pin ng SDA at SCL. Iyon ay dahil ang mga aparato ay mababaling lamang ang mga pin na ito habang nakikipag-usap. Upang kumatawan sa isang TAAS, kailangan lamang na hindi magpadala ng isang mababa, at salamat sa mga pullup na napupunta sa TAAS. (ang pag-unawang ito ay magiging mahalaga sa paglaon)
Ang LCD "I2C backpack" ay may dalawang 4K7 pull-up resistors na nagsisilbi sa kinakailangan ng I2C. Ngunit dahil konektado sila sa Vcc, kung gagamitin mo ang 5 V, hilahin nila ang SDA at SCL sa 5 V.
Kung titingnan mo ang datasheet, maaari mong makita iyon, hindi katulad ng ibang mga board, ang Dahil ay mayroon nang onboard na 1K5 na mga pull-up resistor sa pangunahing SDA, mga pin ng SCL, na hinihila ang mga ito sa 3.3 V.
Mga Pagsusulit
- Ipakita ang LCD -> Arduino
- Gnd -> Gnd
- Vcc -> 5V
- SDA -> SDA
- SCL -> SCL
Kung ikinonekta mo lamang ang LCD sa Dahil (sumusunod sa mga kable sa itaas), ang 1k5 (o 1k0) Dahil sa mga pullup na konektado sa 3.3V at ang mga 4K7 LCD pullup na konektado sa 5 V ay magreresulta sa mga idle I2C na linya sa 3.7 V (3.6 V may 1k0). Iyon ay hindi mabuti, dahil ang Dahil sa datasheet ay nagtatakda ng maximum na boltahe na 3.6 V para sa mga linya ng I / O.
Sa pamamagitan ng pagsubok sa senaryong ito, na may LCD lamang, nakakuha ako ng 3, 56 V. Sa pamamagitan ng pagdaragdag ng isang EEPROM Module sa parehong SDA at SCL, umakyat ito sa 3.606 V. Sa parehong mga kaso ang lahat ay gumana nang normal, ngunit ang mga iyon ay malayo sa perpektong boltahe mga antas na isinasaalang-alang ang 3.6 V na itinakdang maximum.
Kaya oo, may isang pagkakataon na gagana ito tulad ng ginawa ng minahan habang hindi gumagawa ng anumang pagbabago. Ngunit ang antas ng boltahe ay malayo pa rin mula sa perpekto at ilang pagkakaiba-iba sa Dahil sa paghugot ng LCD o LCD ay maaaring magdulot nito sa itaas ng 3.6 V na limitasyon. (Maipapayo na hindi bababa sa pagsubok bago maingat na may 20K o 100K potentiometer kung ano ang pinakamababang paglaban sa pagitan ng 5 V at SCL / SDA pin bago makarating sa 3.6 V, kahit na ang natitirang solusyon ay mas ligtas at marahil mas madali)
Solusyon
Ang ipinakita na solusyon ay alisin lamang ang mga pull-up resistors mula sa LCD backpack, na subukang hilahin ang linya hanggang 5 V. Pagkatapos, ang Dahil lamang sa onboard na pull-up resistors ang mananatili, hinihila ang mga linya ng SCL at SDA sa 3.3V. Gumana ito ng perpekto, pinapanatili ang mga idle pin sa paligid ng 3.262 V!
Ang mga koneksyon ay mananatiling pareho:
- LCD Display -> Arduino
- Gnd -> Gnd
- Vcc -> 5V
- SDA -> SDA
- SCL -> SCL
Kung nagtataka ka kung hindi hilahin ng LCD ang linya sa 5 V upang kumatawan sa isang TAAS kapag nakikipag-usap, tandaan na sa I2C hinuhugot lamang ng mga aparato ang mga linya LOW, na ang HIGH signal ay kinakatawan kapag hindi makagambala, na magiging 3.3 V mula sa on-board na pull-up ng Dahil.
Gayundin, ang 3.3 V ay sapat para sa I2C backpack upang isaalang-alang bilang isang HIGH signal.
Hakbang 3: Kilalanin at Alisin ang Mga Resistor
Ipinapakita ng imahe sa itaas sa pula ang mga pullup resistors na nakita ko sa aking module.
Kilalanin
Tulad ng maaaring mag-iba ang backpack ng LCD I2C adapter, ang mga resistors ay maaaring wala sa parehong pagsasaayos. Upang makilala ang mga resistors ng pullup, maaari kang gumamit ng isang multimeter na may isang pagpapatuloy na pagsubok. Ang bawat resistor na pull-up ay dapat magkaroon ng isang dulo na konektado sa SCL o SDA pin at sa kabilang dulo sa Vcc.
Sa aking kaso, mayroong tatlong mga resistor sa board na 4K7 (472 sa SMD). Dalawa lamang sa kanila ang nasiyahan sa mga kinakailangan sa itaas, na itinuturo na ito ang mga hinahanap na hinahanap!
Para sa labis na pag-iingat (kung sa ilang kadahilanan hindi sila 4K7), sinubukan ko rin ang iba pang mga resistor at nakumpirma na wala sa kanila ang nasiyahan sa mga kinakailangan para sa pagiging pull-up.
Tanggalin
Ngayon, ang kailangan mo lang gawin ay masira ang mga ito! Mas madali kung mayroon kang isang soldering pump o soldering wick at tweezers na makakatulong.
Hakbang 4: Paghahambing sa Pagitan ng Mga Solusyon
Bi-Directional Logic Level Converter (LLC)
Mga kalamangan:
Hindi nangangailangan ng anumang kagamitan o kakayahan sa paghihinang
Kahinaan:
Mas maraming mga ad ang ad at ang LLC sa iyong listahan ng mga bahagi ng listahan
Mga koneksyon sa Messier sa mga sobrang sangkap
Bahagyang mas mahal
Mas mababa ang LCD pull-up Resistors
Mga kalamangan:
Mas malinis na pangwakas na resulta
Marahil ay magagawa mo ito kaagad, hindi na maghintay para sa LLC
Lalo na mabuti kung nais mong bawasan ang pagkakaiba-iba ng mga bahagi at pagiging kumplikado ng pagpupulong sa isang kumplikadong proyekto o nais mong gumaya
Kahinaan:
Binabago ang LCD circuit (Kung nais mong "handa nang gamitin" gamit ang Uno, na mayroon nang mga 4K7 na pullup, maaari mong i-undo ang mga pagbabago sa paglulutas sa kanila)
Hakbang 5: Pangwakas na Pagsasaalang-alang
Inaasahan kong ang tutorial na ito ay nagbibigay ilaw sa isyu ng pagiging tugma at ilan sa mga posibleng solusyon nito.
Kung mayroon kang anumang mga ideya sa pagpapabuti, mas mahusay na mga paliwanag, mga bagong solusyon, o nakakita ng anumang error sa post, mangyaring sabihin sa akin sa mga komento!:)
Inirerekumendang:
I2C / IIC LCD Display - Gumamit ng isang SPI LCD sa I2C LCD Display Gamit ang SPI to IIC Module With Arduino: 5 Hakbang
I2C / IIC LCD Display | Gumamit ng isang SPI LCD sa I2C LCD Display Gamit ang SPI to IIC Modyul Sa Arduino: Kumusta mga tao dahil ang isang normal na SPI LCD 1602 ay may maraming mga wires upang kumonekta kaya napakahirap i-interface ito sa arduino ngunit may isang module na magagamit sa merkado na maaaring i-convert ang SPI display sa IIC display kaya kailangan mong ikonekta ang 4 na wires lamang
I2C / IIC LCD Display - I-convert ang isang SPI LCD sa I2C LCD Display: 5 Mga Hakbang
I2C / IIC LCD Display | I-convert ang isang SPI LCD sa I2C LCD Display: ang paggamit ng spi lcd display ay nangangailangan ng maraming mga koneksyon upang gawin na talagang mahirap gawin kaya natagpuan ko ang isang module na maaaring i-convert ang i2c lcd sa spi lcd upang magsimula tayo
Mga graphic sa isang SSD1306 I2C OLED 128x64 Display With CircuitPython Gamit ang isang Itsybitsy M4 Express: 13 Mga Hakbang (na may Mga Larawan)
Mga graphic sa isang SSD1306 I2C OLED 128x64 Display With CircuitPython Gamit ang isang Itsybitsy M4 Express: Ang display na SSD1306 OLED ay isang maliit (0.96 "), mura, malawak na magagamit, I2C, monochrome grapikong display na may 128x64 pixel, na madaling ma-interfaced (4 lamang wires) sa microprocessor development boards tulad ng isang Raspberry Pi, Arduino o
Bumuo ng isang Pasadyang Display sa LCD Studio (Para sa Mga G15 Keyboard at LCD Screens) .: 7 Mga Hakbang
Bumuo ng isang Pasadyang Display sa LCD Studio (Para sa G15 Keyboard at LCD Screens) .: Ok kung nakuha mo lang ang iyong G15 keyboard at lubos na hindi nakaka-impression sa mga pangunahing pagpapakita na kasama nito pagkatapos ay dadalhin ka namin sa mga pangunahing kaalaman sa paggamit ng LCD Studio upang gumawa ng iyong sarili. Ang halimbawang ito ay ang paggawa ng isang display na nagpapakita lamang ng bas
Gumawa ng isang $ 2 na naaangkop na Smartphone Car Mount sa loob ng 10 Minuto: 6 na Hakbang (na may Mga Larawan)
Gumawa ng isang $ 2 na naaangkop na Smartphone Car Mount sa loob ng 10 Minuto: Naglalakad ka ba sa mga aisles sa tindahan pagkatapos ng tindahan na naghahanap para sa tamang bagay upang hawakan ang iyong telepono / GPS / mobile device habang nagmamaneho ka? Mayroong tone-toneladang mga ito sa merkado ngunit hindi ko pa nagawang maghanap ng isa na gumana sa aking kakaibang sha