Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Ratkaisun alkuperä
- Vaihe 2: Selitys
- Vaihe 3: Tunnista ja poista vastukset
- Vaihe 4: Ratkaisujen vertailu
- Vaihe 5: Viimeiset näkökohdat
Video: 5 V: n LCD -näyttö, jossa Arduino Due 3.3V I2C: 5 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 08:59
Tämän viestin tarkoituksena on selittää helpompi tapa käyttää Arduino Due (tai muuta 3,3 V: n korttia) suositun 16x2 LCD -näytön ja I2C -sovitinmoduulin kanssa.
Ensimmäinen ongelma on, että nestekidenäytön taustavalo tarvitsee 5 V: n, jotta sen taustavalo toimisi kunnolla, mutta SCL- ja SDA -nastojen tulisi toimia 3,3 V: n jännitteellä kommunikoidakseen Arduino Due -laitteen kanssa vahingoittamatta sitä. Tämän ratkaisemiseksi olen löytänyt kaksi vaihtoehtoa:
Kaikkein mainituin ratkaisu on käyttää kaksisuuntaista loogista tasomuunninta, joka todella ratkaisee ongelman. Mutta se lisää myös toisen komponentin luetteloosi ja lisäjohdotusliitäntöjä piirissäsi
Toinen tapa, jonka olen löytänyt, on yksinkertaisesti irrottaa 2 pullup -vastusta "I2C -adapterirepusta" nestekidenäytöstä. Sen lisäksi, että se on paljon helpompaa, sillä on muita etuja, jotka on selitetty vertailussa lopussa. Tämä menetelmä on tämän viestin pääpaino
Tarvikkeet
Arduino Due
16x2 LCD -näyttö I2C -sovitinmoduulilla
Juotin
Juotospumppu tai juotoskärki
Pinsetit
Vaihe 1: Ratkaisun alkuperä
Ratkaisu ei ollut minun keksimäni, näin melko hyvän ehdotuksen ja selityksen Arduino -foorumissa alla olevasta linkistä, jonka toistan tässä viestissä.
forum.arduino.cc/index.php?topic=553725.0
Vastaus henkilöltä: david_prentice
En löytänyt täydellistä opetusohjelmaa Internetistä, ja koska se on hyvin yleinen ongelma, yritän esitellä ratkaisun täällä yksityiskohtaisesti, todistaa sen tosiasiallisen toimivuuden ja lisätä tietoja, jotka saattavat lieventää epäilyksiä sen tuloksista.
Vaihe 2: Selitys
Laitteet
Jotta I2C -tiedonsiirto toimisi, se vaatii SDA- ja SCL -nastoihin kytketyt vetovastusvastukset. Tämä johtuu siitä, että laitteet kääntävät nämä nastat vain matalaksi kommunikoinnin aikana. HIGH: n esittämiseksi sen on vain lähetettävä LOW, ja pullupien ansiosta se siirtyy HIGH: iin. (tämä ymmärrys on tärkeä myöhemmin)
Nestekidenäytössä "I2C-reppu" on kaksi 4K7-vetovastusta, jotka palvelevat I2C-vaatimuksia. Mutta koska ne on kytketty Vcc: hen, jos käytät 5 V: ta, ne vetävät SDA: n ja SCL: n 5 V.
Jos tarkastelet tietolomaketta, näet, että toisin kuin muut levyt, Due-laitteessa on jo 1K5-vetovastusvastukset SDA: n SCL-nastoissa, mikä vetää ne 3,3 V.
Testit
- Näyttö LCD -> Arduino
- Gnd -> Gnd
- Vcc -> 5V
- SDA -> SDA
- SCL -> SCL
Jos liität nestekidenäytön vain Due -laitteeseen (yllä olevien johdotusten mukaisesti), 1k5 (tai 1k0) Due -vetimet, jotka on kytketty 3,3 V: iin ja 4K7 LCD -vetimet, jotka on kytketty 5 V: iin, johtavat joutokäynnillä oleviin I2C -linjoihin 3,7 V (3,6 V) 1k0). Tämä ei ole hyvä, koska Due -lomakkeessa on I/O -linjojen enimmäisjännite 3,6 V.
Testaamalla tätä skenaariota vain nestekidenäytöllä, sain 3, 56 V: n. Lisäämällä EEPROM -moduulin samaan SDA: han ja SCL: ään se nousi 3,606 V: iin. Molemmissa tapauksissa kaikki toimi normaalisti, mutta ne eivät ole kaukana ihanteellisesta jännitteestä ottaen huomioon 3,6 V: n maksimi.
Joten kyllä, on mahdollista, että se toimii aivan kuten omani, mutta ei tee muutoksia. Mutta jännitetaso on edelleen kaukana ihanteellisesta, ja erimielisyydet Due- tai LCD -vedossa voivat aiheuttaa sen ylittämisen 3,6 V: n rajan yläpuolelle. (Olisi suositeltavaa ainakin testata ennen varovasti 20K- tai 100K -potentiometrillä, mikä on pienin vastus 5 V: n ja SCL/SDA -nastojen välillä ennen kuin ne saavuttavat 3,6 V: n, vaikka muu liuos on paljon turvallisempaa ja luultavasti helpompaa)
Ratkaisu
Esitetty ratkaisu on yksinkertaisesti irrottaa vetovastukset nestekidenäytön reppusta, joka yrittää vetää linjaa 5 V: iin asti. Jäljelle jää vain Due-sisäänvedettävät vetovastukset, jotka vetävät SCL- ja SDA-linjat 3,3 V.. Se toimi täydellisesti pitäen joutokäynnit noin 3,262 V: n jännitteellä!
Liitännät pysyvät samana:
- LCD -näyttö -> Arduino
- Gnd -> Gnd
- Vcc -> 5V
- SDA -> SDA
- SCL -> SCL
Jos mietit, jos LCD -näyttö ei vedä linjaa 5 V: iin edustaakseen KORKEAa kommunikoidessaan, muista, että I2C: ssä laitteet vetävät vain viivoja LOW, mikä on KORKEA signaali, kun se ei häiritse, mikä on 3,3 V Due: n vetoketjut laivassa.
Myös 3,3 V riittää, jotta I2C -reppu voidaan pitää HIGH -signaalina.
Vaihe 3: Tunnista ja poista vastukset
Yllä oleva kuva näyttää punaisella moduulistani löytämäni pullup -vastukset.
Tunnistaa
Koska LCD I2C -sovittimen reppu voi vaihdella, vastukset eivät välttämättä ole samassa kokoonpanossa. Vetovoimien tunnistamiseksi voit käyttää yleismittaria jatkuvuustestillä. Jokaisella vetovastuksella tulee olla toinen pää kytketty SCL- tai SDA-nastaan ja toinen pää Vcc-liittimeen.
Minun tapauksessani oli kolme 4K7 (472 SMD -koodissa) -vastuksesta levyllä. Vain kaksi heistä täytti yllä olevat vaatimukset ja huomautti, että nämä ovat etsimämme pullupit!
Ylimääräisen varotoimenpiteen vuoksi (jos jostain syystä ne eivät olleet 4K7) testasin myös muut vastukset ja varmistin, ettei yksikään niistä täyttänyt pull-up-vaatimuksia.
Poista
Nyt sinun tarvitsee vain purkaa ne juotoksesta! Se on helpompaa, jos sinulla on juotospumppu tai juotospiikki ja pinsetit auttamaan.
Vaihe 4: Ratkaisujen vertailu
Kaksisuuntainen logiikan tasomuunnin (LLC)
Plussat:
Ei vaadi juotoslaitteita tai kykyjä
Haittoja:
Mainokset lisää kaapeleita ja LLC: n luettelosi komponenttiluetteloon
Messier -liitännät lisäkomponenttien kanssa
Hieman kalliimpi
Irrota LCD-vetovastus
Plussat:
Puhtaampi lopputulos
Luultavasti voit tehdä sen heti, eikä sinun tarvitse odottaa LLC: tä
Erityisen hyvä, jos haluat vähentää osien ja kokoonpanon monimutkaisuutta monimutkaisessa projektissa tai haluat kopioida
Haittoja:
Muuttaa LCD -piiriä (Jos haluat sen olevan "käyttövalmis" Unon kanssa, jolla on jo 4K7 -pullupit, voit kumota muutokset, jotka päivittävät ne uudelleen)
Vaihe 5: Viimeiset näkökohdat
Toivon, että tämä opetusohjelma valaisee hieman tätä yhteensopivuusongelmaa ja joitakin sen mahdollisia ratkaisuja.
Jos sinulla on parannusideoita, parempia selityksiä, uusia ratkaisuja tai olet löytänyt viestistä virheen, kerro siitä kommenteissa!:)
Suositeltava:
Lämpötilamittari, jossa DHT11 ja I2C 20x4 LCD: 6 vaihetta
Lämpötilamittari DHT11- ja I2C 20x4 -näytöllä: Tässä opetusohjelmassa opimme tekemään yksinkertaisen lämpötilamittarin DHT11 -anturin ja I2C -nestekidenäytön avulla Katso video
Esp8266 -pohjainen tehostusmuunnin, jossa on hämmästyttävä Blynk -käyttöliittymä, jossa on palautesäädin: 6 vaihetta
Esp8266 -pohjainen tehostusmuunnin hämmästyttävällä Blynk -käyttöliittymällä, jossa on palautesäädin: Tässä projektissa näytän sinulle tehokkaan ja yleisen tavan DC -jännitteiden lisäämiseen. Näytän sinulle, kuinka helppoa voi olla tehostusmuuntimen rakentaminen Nodemcun avulla. Rakennetaan se. Se sisältää myös näytön volttimittarin ja palautteen
Suuri Arduino LCD -kello, jossa on kaksi hälytystä ja lämpötilamittari, jota ohjaa infrapuna -TV: n kaukosäädin: 5 vaihetta
Suuri Arduino LCD -kello, jossa on kaksi hälytystä ja lämpötilamittari, jota ohjaa infrapuna -TV: n kaukosäädin: Kuinka rakentaa Arduino -pohjainen LCD -kello, jossa on kaksi hälytystä ja lämpötilamittari, jota ohjataan infrapuna -TV: n kaukosäätimellä
ESP32 -liitäntä, jossa on SSD1306, jossa on MicroPython: 5 vaihetta
ESP32 -liitäntä SSD1306: lla, jossa on MicroPython: Mikropython on pythonin optimoima ja pieni jalanjälki. Mikropython on saatavana monille ohjainperheille, mukaan lukien ESP8266, ESP32, Ardui
PC -laitteistomonitori, jossa Arduino ja Nokia 5110 LCD: 3 vaihetta
PC -laitteistomonitori Arduino- ja Nokia 5110 -näytöllä: Arduino -pohjainen PC -näyttö, joka näyttää suorittimen lämpötilan, kuormituksen, kellon ja käytetyt RAMCPU -kuormitukset tai kelloarvot, voidaan piirtää myös kaaviona. Nokia 5110 84x48 LCD