Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Løsningens oprindelse
- Trin 2: Forklaring
- Trin 3: Identificer og fjern modstanderne
- Trin 4: Sammenligning mellem løsninger
- Trin 5: Afsluttende overvejelser
![5V LCD -skærm med Arduino Due 3.3V I2C: 5 trin 5V LCD -skærm med Arduino Due 3.3V I2C: 5 trin](https://i.howwhatproduce.com/images/002/image-4865-j.webp)
Video: 5V LCD -skærm med Arduino Due 3.3V I2C: 5 trin
![Video: 5V LCD -skærm med Arduino Due 3.3V I2C: 5 trin Video: 5V LCD -skærm med Arduino Due 3.3V I2C: 5 trin](https://i.ytimg.com/vi/cbL_7I9enqU/hqdefault.jpg)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:25
![5V LCD -skærm med Arduino Due 3.3V I2C 5V LCD -skærm med Arduino Due 3.3V I2C](https://i.howwhatproduce.com/images/002/image-4865-1-j.webp)
Dette indlæg har til formål at forklare en lettere måde at bruge Arduino Due (eller et andet 3.3V -kort) med den populære LCD 16x2 -skærm med I2C -adaptermodulet.
Det indledende problem er, at LCD'et har brug for 5V for at baggrundsbelysningen fungerer korrekt, men SCL- og SDA -benene skal fungere ved 3.3V for at kommunikere med Arduino Due uden at forårsage skade. For at løse dette har jeg fundet to muligheder:
Den mest omtalte løsning er at bruge en tovejs logisk niveauomformer, som faktisk løser problemet. Men det tilføjer også en anden komponent til din liste og yderligere ledningsforbindelser på dit kredsløb
Den anden måde, jeg har fundet, er simpelthen at aflodde 2 pullup modstande i "I2C adapter rygsæk" fra LCD'et. Udover at være meget lettere, har den andre fordele forklaret i sammenligningen til sidst. Denne metode er hovedfokus for dette indlæg
Forbrugsvarer
Arduino Due
LCD 16x2 Display med I2C adapter modul
Loddekolbe
Loddepumpe eller loddevæge
Pincet
Trin 1: Løsningens oprindelse
Løsningen blev ikke opfundet af mig, jeg så et ret godt forslag og forklaring på Arduino Forum i linket herunder, som jeg vil gengive i dette indlæg.
forum.arduino.cc/index.php?topic=553725.0
Svar fra: david_prentice
Jeg kunne ikke finde nogen komplet tutorial på internettet, og da det er et meget almindeligt problem, forsøger jeg at præsentere løsningen her i detaljer, se det faktisk fungere og tilføje oplysninger, der kan afbøde en vis skepsis til dens resultater.
Trin 2: Forklaring
Enheder
For at I2C -kommunikationen fungerer, kræver den pullup -modstande, der er forbundet til SDA- og SCL -benene. Det skyldes, at enhederne kun drejer disse stifter LAVT, mens de kommunikerer. For at repræsentere en HØJ skal den kun ikke sende en LAV, og takket være pulsen går den til HØJ. (denne forståelse vil være temmelig vigtig senere)
LCD "I2C rygsæk" har to 4K7 pull-up modstande, der opfylder I2C kravet. Men da de er forbundet til Vcc, hvis du bruger 5 V, vil de trække SDA og SCL til 5 V.
Hvis du ser på databladet, kan du se, at Due i modsætning til andre tavler allerede har indbyggede 1K5-pull-up-modstande på sine vigtigste SDA, SCL-ben, der trækker dem til 3,3 V.
Test
- Display LCD -> Arduino
- Gnd -> Gnd
- Vcc -> 5V
- SDA -> SDA
- SCL -> SCL
Hvis du bare tilslutter LCD'en på Due (efter ledningerne ovenfor), vil 1k5 (eller 1k0) Due pullups tilsluttet 3,3V og 4K7 LCD pullups tilsluttet 5 V resultere i inaktive I2C -linjer ved 3,7 V (3,6 V med 1k0). Det er ikke godt, da Due -databladet angiver en maksimal spænding på 3,6 V for sine I/O -linjer.
Ved at teste dette scenario, med kun LCD'en, fik jeg 3, 56 V. Ved at tilføje et EEPROM -modul til den samme SDA og SCL gik det op til 3.606 V. I begge tilfælde fungerede alt normalt, men de er langt fra ideel spænding niveauer i betragtning af det fastsatte maksimum på 3,6 V.
Så ja, der er en chance for, at det vil fungere ligesom mit, mens det ikke ændrede noget. Men spændingsniveauet er stadig langt fra ideelt, og en vis uoverensstemmelse med Due eller LCD pullup kan få det til at gå over 3,6 V -grænsen. (Det ville være tilrådeligt i det mindste at teste omhyggeligt med et 20K eller 100K potentiometer, hvad der er den laveste modstand mellem 5 V og SCL/SDA stifter, før de når 3,6 V, selvom resten af opløsningen er meget sikrere og sandsynligvis lettere)
Løsning
Den præsenterede løsning er simpelthen at fjerne pull-up-modstandene fra LCD-rygsækken, som forsøger at trække linjen op til 5 V. Derefter er det kun Due onboard-pull-up-modstandene, der trækker SCL- og SDA-linjerne til 3,3V. Det fungerede perfekt, og fastholdt tomgangsstifterne på omkring 3,262 V!
Forbindelserne forbliver de samme:
- LCD Display -> Arduino
- Gnd -> Gnd
- Vcc -> 5V
- SDA -> SDA
- SCL -> SCL
Hvis du undrer dig over, om LCD -displayet ikke vil trække linjen til 5 V for at repræsentere et HØJT, når du kommunikerer, skal du huske, at på I2C trækkes enhederne kun i linierne LOW, hvilket er HIGH -signalet, der repræsenteres, når det ikke forstyrrer, hvilket vil være 3,3 V fra Due's pull-ups ombord.
3,3 V er også tilstrækkelig til, at I2C -rygsækken betragtes som et HØJT signal.
Trin 3: Identificer og fjern modstanderne
![Identificer og fjern modstandene Identificer og fjern modstandene](https://i.howwhatproduce.com/images/002/image-4865-2-j.webp)
![Identificer og fjern modstandene Identificer og fjern modstandene](https://i.howwhatproduce.com/images/002/image-4865-3-j.webp)
Billedet ovenfor viser rødt de pullup -modstande, jeg har fundet i mit modul.
Identificere
Da LCD I2C -adapterrygsækken kan variere, er modstandene muligvis ikke i samme konfiguration. For at identificere pullup -modstandene kan du bruge et multimeter med en kontinuitetstest. Hver pull-up modstand skal have den ene ende forbundet til SCL- eller SDA-stiften og den anden ende til Vcc.
I mit tilfælde var der tre af 4K7 (472 i SMD -kode) modstande på tavlen. Kun to af dem opfyldte ovenstående krav og påpegede, at det er de pullups, vi ledte efter!
For ekstra forsigtigheds skyld (hvis de af en eller anden grund ikke var 4K7), testede jeg også de andre modstande og bekræftede, at ingen af dem opfyldte kravene til pull-ups.
Fjerne
Nu er alt du skal gøre at aflodde dem! Det er lettere, hvis du har en loddepumpe eller loddevæger og pincet til hjælp.
Trin 4: Sammenligning mellem løsninger
Bi-directional Logic Level Converter (LLC)
Fordele:
Kræver ikke loddeudstyr eller evner
Ulemper:
Annoncer flere kabler og LLC til din liste over komponentlister
Messier forbindelser med de ekstra komponenter
Lidt dyrere
Aflod LCD-pull-up-modstandene
Fordele:
Renere slutresultat
Du kan sandsynligvis gøre det med det samme uden at skulle vente på LLC
Især godt, hvis du vil reducere variationen af komponenter og samlingskompleksitet i et komplekst projekt, eller som du vil gentage
Ulemper:
Ændrer LCD -kredsløbet (Hvis du vil have det "klar til brug" med Uno, der allerede har 4K7 pullups, kan du fortryde ændringerne, der løser dem)
Trin 5: Afsluttende overvejelser
Jeg håber, at denne vejledning kaster lys over dette kompatibilitetsproblem og nogle af dens mulige løsninger.
Hvis du har forbedringsideer, bedre forklaringer, nye løsninger eller fundet en fejl i indlægget, kan du fortælle mig det i kommentarerne!:)
Anbefalede:
Sådan bruges et 20x4 I2C tegn LCD -display med Arduino: 6 trin
![Sådan bruges et 20x4 I2C tegn LCD -display med Arduino: 6 trin Sådan bruges et 20x4 I2C tegn LCD -display med Arduino: 6 trin](https://i.howwhatproduce.com/images/001/image-464-16-j.webp)
Sådan bruges et 20x4 I2C -tegn LCD -display med Arduino: I denne enkle vejledning lærer vi, hvordan du bruger et 20x4 I2C Character LCD -display med Arduino Uno til at vise en simpel tekst " Hej verden. Se videoen
HX1 -DM - Upcycled Arduino DUE Powered DIY Trommemaskine (lavet med en død maskine MK2): 4 trin
![HX1 -DM - Upcycled Arduino DUE Powered DIY Trommemaskine (lavet med en død maskine MK2): 4 trin HX1 -DM - Upcycled Arduino DUE Powered DIY Trommemaskine (lavet med en død maskine MK2): 4 trin](https://i.howwhatproduce.com/images/001/image-1381-157-j.webp)
HX1 -DM - Upcycled Arduino DUE Powered DIY Trommemaskine (lavet med en Dead Maschine MK2): Spec. Hybrid Midi controller / trommemaskine: Arduino DUE drevet! 16 Velocity sensing pads med meget lav latenstid 1 > ms 8 knapper bruger kan tildeles enhver Midi #CC kommando 16ch Indbygget sequencer (ingen computer nødvendig !!) MIDI ind/ud/gennem funktioner
3 -faset sinusbølge -generator baseret på Arduino Due: 5 trin
![3 -faset sinusbølge -generator baseret på Arduino Due: 5 trin 3 -faset sinusbølge -generator baseret på Arduino Due: 5 trin](https://i.howwhatproduce.com/images/003/image-8424-6-j.webp)
3-faset sinusbølge-generator baseret på Arduino Due: formålet med denne deling er at hjælpe nogen, der forsøger at udnytte Due større ydelse + mangel på reference + ikke-nyttigt datablad. Dette projekt er i stand til at generere op til 3-faset sinusbølge @ 256 prøver / cyklus ved lav frekvens (< 1 kHz) og 16 s
Character LCD I2c Adapter (eksempel på I2c -forbindelse): 12 trin (med billeder)
![Character LCD I2c Adapter (eksempel på I2c -forbindelse): 12 trin (med billeder) Character LCD I2c Adapter (eksempel på I2c -forbindelse): 12 trin (med billeder)](https://i.howwhatproduce.com/images/006/image-15623-10-j.webp)
Character LCD I2c Adapter (I2c Connection Eksempel): Jeg laver et tilslutningsskema til en tegnvisning i2c adapter. Kontroller opdateringerne på mit websted. Nu tilføjer jeg også et kabelforbindelsesskema for at bruge det originale bibliotek, ikke mit forked.LiquidCrystal Arduino bibliotek til karakter LCD -skærme, forked project
Tilføjelse af en 24LC256 EEPROM til Arduino Due: 3 trin
![Tilføjelse af en 24LC256 EEPROM til Arduino Due: 3 trin Tilføjelse af en 24LC256 EEPROM til Arduino Due: 3 trin](https://i.howwhatproduce.com/images/002/image-3515-47-j.webp)
Tilføjelse af en 24LC256 EEPROM til Arduino Due: Arduino due mangler en eeprom. Denne instruerbare tilføjer en og giver dig mulighed for at gemme værdier i ikke -flygtig hukommelse, der overlever en arduino -firmwareopdatering