Sisällysluettelo:

1602 LCD -näppäimistön suojamoduuli I2C -repulla: 6 vaihetta
1602 LCD -näppäimistön suojamoduuli I2C -repulla: 6 vaihetta

Video: 1602 LCD -näppäimistön suojamoduuli I2C -repulla: 6 vaihetta

Video: 1602 LCD -näppäimistön suojamoduuli I2C -repulla: 6 vaihetta
Video: Подключение дисплея 1602 lcd i2c. 1602 ардуино дисплей 2024, Heinäkuu
Anonim
1602 LCD -näppäimistön suojamoduuli, jossa I2C -reppu
1602 LCD -näppäimistön suojamoduuli, jossa I2C -reppu

Osana suurempaa projektia halusin saada LCD -näytön ja näppäimistön joidenkin yksinkertaisten valikoiden navigointiin. Käytän paljon Arduinon I/O -portteja muihin töihin, joten halusin I2C -käyttöliittymän nestekidenäyttöön. Joten ostin laitteistoja, jotka koostuivat 1602 LCD -näppäimistön suojamoduulista DFRobotilta ja nimettömästä I2C -sarjamoduulista nestekidenäyttöjä varten. Haluan käyttää näitä Arduino Nanon kanssa. Sitten huomasin, että näiden komponenttien toimiminen yhdessä edellyttää haasteita - mutta se on mahdollista. Haluan siis jakaa kokemukseni ja ehkä auttaa muita.

Tämä kuva on toimivasta leipälevystä, joka voi näyttää viestit nestekidenäytössä ja tunnistaa näppäinten painallukset. Nestekidenäyttöä ohjataan I2C -liitännän kautta, mukaan lukien nestekidenäytön taustavalo. Arduino vastaanottaa näppäinpainikkeet nastassa A0 (se voi olla mikä tahansa analoginen nasta, paitsi A4 ja A5, jotka on sidottu I2C -liitäntää varten).

Vaihe 1: Osien kuvaus - LCD -näppäimistön suojamoduuli

Osan kuvaus - LCD -näppäimistön suojamoduuli
Osan kuvaus - LCD -näppäimistön suojamoduuli

LCD -näppäimistön suojamoduuli koostuu yleisesti käytetystä 1602 -LCD -näytöstä, joka on asennettu näppäimiä sisältävän piirilevyn päälle ja joka ottaa osajoukon LCD -liitännöistä ja asettaa ne piirilevyn alapuolella olevien otsikkotappien saataville. Ymmärrän, että tämä levy on tarkoitettu asennettavaksi Arduino Unon tai vastaavan päälle ja tarjoaa oikean nastaisen asettelun, jotta se toimisi kyseisessä ympäristössä. Ostin tämän moduulin Ebaysta Kiinan myyjältä. Taulun alaosassa (näppäimistö) olevat otsikkotapit on useimmiten merkitty, mutta yläpuolella, eli LCD -käyttöliittymässä, olevia tappeja ei ole merkitty. LCD -näytön nastat on kuitenkin merkitty.

Vaihe 2: Osien kuvaus - I2C -sarjamoduuli

Osan kuvaus - I2C -sarjamoduuli
Osan kuvaus - I2C -sarjamoduuli

Sarjamoduulissa on tavallinen 4-nastainen otsikko I2C: lle, ja joukko merkitsemättömiä otsikkotappeja, jotka ymmärrän, on tarkoitettu liitettäväksi suoraan LCD-moduulin alapuolelle. Tutkimalla nestekidenäytön tarroja pystyin tunnistamaan sarjamoduulin nastojen toiminnot.

Tämä moduuli perustuu IC PCF8574T -järjestelmään, joka lopettaa I2C -protokollan. Siinä on 3 nastaa osoitteen ohjausta varten (20 - 27) ja 8 digitaalista tulo-/lähtönastausta P0 - P7. PCF8574T: n tietolomakkeen mukaan jokaisessa I/O -nastassa on FET, joka vetää sen maahan LOW -tilaa varten, ja se voi upota vähintään 20 mA. Korkeassa tilassa sen ohimenevä aktiivinen vetäytyminen ja sen jälkeen jatkuva vetovirta on noin 0,1 mA.

Tässä moduulissa kaikki digitaaliset I/O -nastat, paitsi P3, tuodaan yksinkertaisesti ylätunnisteisiin (kuvan oikealla puolella). P3: n tapauksessa se on kytketty transistorin pohjaan (näkyy kuvassa oikeassa yläkulmassa aivan LED -tarran alla). Tämän transistorin lähetin on kytketty Vss: ään (maa) ja keräin on kytketty nastatappiin 16, jossa sitä voidaan käyttää nestekidenäytön taustavalon ohjaamiseen. Transistorin vuoksi logiikkatila on päinvastainen verrattuna ohjelmistokirjastossa oletukseen. Toisin sanoen nestekidenäytön taustavalo syttyy, kun P3 -nasta on alhainen, ja POIS, kun P3 -nasta on korkea.

Transistorin etiketissä lukee L6, mikä tutkimusteni mukaan todennäköisesti tekee siitä MMBC1623L6: n, jonka minimivirta on 200. Kun perusvirta on 0,1 mA, sen pitäisi pystyä ylläpitämään matala tila keräimessään (moduuli Pin 16) vähintään 20 mA: n keräysvirralla.

Lisäksi tässä moduulissa on 10K potentiometri, joka on kytketty +5: n ja maadoituksen väliin, ja jonka muuttuva johdin tuodaan nastaan 3 (kolmas kuvassa alhaalta). Kun tämä potti on kytketty suoraan nestekidenäyttöön, se säätää nestekidenäytön kontrastia. Tästä toiminnosta huolehtii kuitenkin erillinen vastaava potti nestekidenäytössä, joten tällä sarjamoduulin potilla ei ole toimintoa.

En löytänyt mitään yhteyttä PCF8574T: n INT -nastaan.

PÄIVITYS 22. elokuuta 2019

Kuten edellä mainittiin, PCF8574: ssä on 3 osoitteenohjaustappia. Nämä näyttävät olevan esillä reppulaudan tyynyissä, joissa ne on merkitty A0, A1 ja A2. Ne näkyvät valokuvassa. En ole testannut tätä, mutta näyttää melkein varmalta, että yhdistämällä yksi tai useampi näistä nastoista viereisiin tyynyihin I2C -osoitetta voidaan ohjata alueella 20-27. Lisäksi on olemassa toinen lähes identtinen laite, PCF8574A, jolla on samat toiminnot kuin PCF8574: llä, mutta kattaa osoitealueen 0x38 - 0x3F.

Laitteen käyttämä osoite voidaan tarkistaa I2CScannerilla. Eri lähteistä on saatavana useita yksinkertaisia I2C -skannereja. Tämä osoitteessa https://github.com/farmerkeith/I2CScanner tunnistaa myös joitakin löydettyjä laitteita.

Vaihe 3: Liitännät

Liitännät
Liitännät

Kiitos ChaitanyaM17: lle, joka toimitti alla kuvatut yhteydet kuvaavan Fritzing -kaavion.

Teho:

LCD -moduulin alapuolella on nasta, jossa on merkintä "5.0V". Oikealla, sen vieressä on kaksi merkitsemätöntä tappia, jotka molemmat on hiottu.

Pidä sarjamoduulia I2C -liitännällä vasemmassa päässä, alareunassa on 16 nastaa. Ensimmäinen näistä on jauhettu ja toinen +5v. Toinen vaihtoehto on käyttää I2C -liitännän kahta alempaa nastaa virran saamiseksi, mutta pidin kätevämpänä käyttää tappeja edellä kuvatulla tavalla.

I2C -käyttöliittymä. Sarjamoduulin ylin tappi on SCL (kello) ja se menee Arduino A5: een. Toinen nasta on SDA (data) ja se menee Arduino A4: ään.

LCD -tulostusliitäntä. Sarjamoduulin ja LCD -näppäimistön suojan välillä on 6 liitäntää, kaikki neulat, joissa ei ole tarroja. Tunnistan ne LCD -moduulista laskemalla oikealta vasemmalle, ja ensimmäinen nasta on 1. On 8 lohkoa 8, joten ne vaihtelevat 1: stä 16. Tunnistan ne I2C -sarjamoduulissa laskemalla vasemmalta Totta, näitä on myös 16. Lisäksi annan kullekin johdolle tarran, joka on vastaava Arduinon tappi, joka normaalisti liittyy tähän toimintoon, jos kyseessä on suora yhteys ilman sarjamoduulia.

Joten 6 datayhteyttä ovat:

Arduino -vastaava // Sarjamoduulin nasta // LCD -näppäimistömoduulin nasta

D4 // 11 // 5 D5 // 12 // 6 D6 // 13 // 7 D7 // 14 // 8 D8 // 4 // 9D9 // 6 // 10

Nestekidenäytön taustavalon ohjaus: Tämä käyttää vielä yhtä liitäntää:

Arduino -vastaava // Sarjamoduulin nasta // LCD -näppäimistömoduulin nasta

D10 // 16 // 11

Näppäimistön käyttöliittymä: Tämä käyttää yhtä johdinta LCD -moduulin tapista, joka on merkitty "A0" -merkillä, Arduinon A0 -nastaan. Se oli ainakin aika helppoa!

Vaihe 4: Tee RST -avaimesta samanlainen kuin muut viisi näppäintä

RST voidaan kytkeä suoraan Arduino Nanon RESTART -tuloon.

Jos kuitenkin haluat, että RST -näppäintä voidaan käyttää ohjelmistossa muihin tarkoituksiin, voit tehdä tämän kytkemällä 15K vastuksen RST -nastan ja LCD -näppäimistön suojan alapuolella olevan A0 -nastan väliin.

Tämä toimii seuraavasti: +5 V: n ja oikean näppäimen välillä on 2K -vastus. Sitten ketju asteittain suurempia vastuksia kullekin muulle näppäimelle (330R UP -näppäimelle, 620R DOWN -näppäimelle, 1K LEFT -näppäimelle ja 3K3 SELECT -näppäimelle. Kaikki näppäimet (mukaan lukien RST -näppäin) kun ne on kytketty 10 -bittiseen A/D -muuntimeen (kuten Arduino Nano A0), ne tuottavat suunnilleen seuraavat arvot:

Oikea = 0; Ylös = 100; Alas = 260; Vasen = 410; Valitse = 640.

RST: n 15 k: n vastuksella se tuottaa noin 850.

Ohjelmisto käyttää näiden arvojen keskipisteiden ympärillä olevia arvoja päättääkseen, mitä näppäintä on painettu.

Vaihe 5: Ohjelmisto

Hyödyllinen ohjelmisto on tietysti harjoitus lukijalle. Pääset alkuun kuitenkin tutustumalla testiohjelmistooni. Käytin NewLiquidCrystal -kirjastoa, joka tukee I2C -käyttöliittymää. Kaikki toimi vain, kun kirjastot on asennettu oikein.

Pääasia oli muuttaa taustavalon OFF- ja ON -komentojen napaisuus (johtuen I2C -moduulin transistorista, kuten osien kuvaus -osiossa selitetään).

PÄIVITYS 22. elokuuta 2019

Jos sinulla on ongelmia LCD -näytön toimimattomuuden kanssa, tarkista sarjareppusi I2C -osoite I2C -skannerilla. Sopiva skanneri on liitetty. Säädä sitten tarvittaessa lausekkeen ensimmäinen parametri

LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7);

Vaihe 6: Tarkastelu ja keskustelu

Kuten huomaat, päätoiminnot toimivat.

Seuraava aikomukseni on laittaa tämä projektilaatikkoon osana toista projektia. Tämän polun aloittamisen jälkeen opin kuitenkin, että on toinenkin ongelma, jota en ollut odottanut.

Ongelmana on, että tätä LCD -näppäimistömoduulia ei ole asennettu asennettavaksi laatikkoon. Mikä tahansa laatikko. Kuuden näppäimen painikkeet ovat selvästi LCD -näytön tason alapuolella, joten jos moduuli on asennettu laatikkoon (esim. Kanteen), LCD -piirilevyn yläosa on kannen alapuolella, avaimet ovat noin 7 mm kannen yläosan alapuolella.

Mahdollisia ratkaisuja ovat:

a) Sietää sitä. Poraa kanteen aukot ja paina työkaluja (esim. Halkaisijaltaan leikattua neulaa) painikkeiden painamiseen.

b) Irrota nestekidenäyttö moduulin piirilevystä ja suorita leikkaus näppäimistöllä, jotta molemmat komponentit voidaan kiinnittää projektikotelon kanteen itsenäisesti (mielestäni silti saattaa olla ongelma, jos painikkeet ovat liian lyhyitä)

c) poista olemassa olevat painikkeet ja korvaa ne korkeammilla painikkeilla. Uusien painikkeiden on oltava noin 13 mm korkeita, jotta niitä voidaan käyttää projektikotelon kannen kautta). Vaihtopainikkeita on saatavana eri korkeuksilla, mukaan lukien 13 mm.

d) hävitä LCD -näppäimistön suojamoduuli ja käytä erillisiä LCD- ja näppäimistöyksiköitä (eli aloita alusta). Saatavilla on laaja valikoima näppäimistöyksiköitä, mutta en ole nähnyt yhtä, jolla olisi sama 6-näppäininen asettelu kuin tässä moduulissa (eli Valitse, Vasen, Ylös, Alas, Oikea, Käynnistä uudelleen). Se ei ehkä ole iso ongelma, mutta yksi syy siihen, miksi aloitin tämän moduulin kanssa, oli se, että ajattelin, että tämä avainasettelu oli mitä halusin.

Aion käyttää yllä olevaa ratkaisua c) ja katsoa, miten eden.

Toinen katkelma tietoa, joka saattaa kiinnostaa:

Kun taustavalo on päällä, tämän projektin nykyinen kulutus on: Arduino Nano 21,5 ma; Sarjamoduuli 3,6 ma; LCD -moduuli 27,5 mA; Yhteensä 52 mA.

Kun taustavalo on POIS PÄÄLTÄ, tämän projektin nykyinen kulutus on: Arduino Nano 21,5 ma; Sarjamoduuli 4,6 ma; LCD -moduuli 9,8 mA; Yhteensä 36 mA.

Suositeltava: