Sadržaj:

Modul štita za LCD tipkovnicu 1602 s I2C ruksakom: 6 koraka
Modul štita za LCD tipkovnicu 1602 s I2C ruksakom: 6 koraka

Video: Modul štita za LCD tipkovnicu 1602 s I2C ruksakom: 6 koraka

Video: Modul štita za LCD tipkovnicu 1602 s I2C ruksakom: 6 koraka
Video: Использование плат Digispark Attiny85 Mini Arduino: Урок 108 2024, Srpanj
Anonim
Modul štita za LCD tipkovnicu 1602 s I2C ruksakom
Modul štita za LCD tipkovnicu 1602 s I2C ruksakom

U sklopu većeg projekta želio sam imati LCD zaslon i tipkovnicu za navigaciju nekim jednostavnim izbornicima. Ja ću koristiti mnoge I/O portove na Arduinu za druge poslove, pa sam htio I2C sučelje za LCD. Zato sam kupio neki hardver, koji se sastoji od modula štita LCD tipkovnice 1602 od DFRobota i anonimnog serijskog modula I2C za LCD -e. Želim ih koristiti s Arduino Nano. Tada sam otkrio da postoje neki izazovi u usklađivanju ovih komponenti - ali moguće je. Stoga želim podijeliti svoje iskustvo i možda pomoći drugima.

Ova fotografija je radna ploča koja može prikazati poruke na LCD -u i identificirati pritiske tipki. LCD -om se upravlja putem I2C sučelja, uključujući pozadinsko osvjetljenje LCD -a. Arduino pritisne tipke na pin A0 (to može biti bilo koji od analognih pinova, osim za A4 i A5 koji su vezani za sučelje I2C).

Korak 1: Opis dijelova - Modul štitnika LCD tipkovnice

Opis dijelova - Modul štita LCD tipkovnice
Opis dijelova - Modul štita LCD tipkovnice

Modul štitnika LCD tipkovnice sastoji se od uobičajeno korištenog 1602 LCD -a montiranog na ploču s pločicama koja drži ključeve i koji uzima podskup LCD priključaka i čini ih dostupnim pinovima zaglavlja na donjoj strani ploče. Razumijem da je ova ploča namijenjena za postavljanje na Arduino Uno ili slično i pruža pravi raspored pinova za rad u tom okruženju. Ovaj modul sam kupio na Ebayu od dobavljača u Kini. Igle zaglavlja na donjoj strani (tipkovnica) ploče uglavnom su označene, no igle na gornjoj strani, što je LCD sučelje, nisu označene. No pinovi na samom LCD -u su označeni.

Korak 2: Opis dijelova - I2C serijski modul

Opis dijelova - I2C serijski modul
Opis dijelova - I2C serijski modul

Serijski modul ima uobičajeno 4-pinsko zaglavlje za I2C i skup neoznačenih iglica zaglavlja za koje razumijem da se namjeravaju priključiti izravno na donju stranu LCD modula. Proučavajući oznake na LCD -u, uspio sam identificirati funkcije pinova na serijskom modulu.

Ovaj se modul temelji na IC PCF8574T koji završava I2C protokol, ima 3 pina za upravljanje adresom (20 do 27) i ima 8 digitalnih ulazno/izlaznih pinova P0 do P7. Prema podacima s računala PCF8574T, svaki U/I pin ima FET koji ga povlači na zemlju radi LOW stanja i može potonuti najmanje 20 mA. U visokom stanju ima prolazno aktivno povlačenje, a zatim kontinuiranu vučnu struju od oko 0,1 mA.

Na ovom modulu sve digitalne U/I pinove, osim P3, jednostavno se izvlače na zaglavlje (desno na fotografiji). U slučaju P3, spojen je na bazu tranzistora (vidljivo na fotografiji u gornjem desnom dijelu odmah ispod oznake "LED"). Emiter tog tranzistora spojen je na Vss (uzemljenje), a kolektor je spojen na pin 16 zaglavlja, gdje se može koristiti za upravljanje pozadinskim osvjetljenjem LCD -a. Zbog tranzistora, logičko stanje je obrnuto u odnosu na ono pretpostavljeno u softverskoj knjižnici. Odnosno, pozadinsko osvjetljenje LCD -a je UKLJUČENO kada je pin P3 nizak, a ISKLJUČENO kada je pin P3 visok.

Oznaka na tranzistoru kaže L6, što prema mojim istraživanjima vjerojatno čini MMBC1623L6 s minimalnim pojačanjem struje od 200. S 0,1 mA bazne struje, trebao bi moći održavati NISKO stanje na svom kolektoru (modul Pin 16) s najmanje 20mA kolektorskom strujom.

Osim toga, ovaj modul ima 10K potenciometar spojen između +5 i uzemljenja, čiji je promjenjivi kabel izveden na pin 3 (treći od dna na fotografiji). Kada se spoji izravno na LCD, ovaj lonac će kontrolirati kontrast LCD -a. Međutim, tu funkciju pruža zaseban sličan lonac na LCD ekranu, tako da ovaj lonac na serijskom modulu nema funkciju.

Nisam uspio pronaći nikakvu vezu s INT pinom PCF8574T.

AŽURIRAJTE 22. kolovoza 2019

Kao što je gore spomenuto, PCF8574 ima 3 kontrolna pina za adresu. Čini se da su izneseni na jastučiće na ploči ruksaka na kojima su označeni A0, A1 i A2. Mogu se vidjeti na fotografiji. Nisam ovo testirao, ali čini se gotovo sigurnim da se premošćivanjem jednog ili više ovih pinova na susjedne jastučiće, I2C adresa može kontrolirati u rasponu od 20 do 27. Nadalje, postoji drugi gotovo identičan uređaj, PCF8574A koji ima identičnu funkcionalnost kao PCF8574, ali pokriva raspon adresa od 0x38 do 0x3F.

Adresa koju vaš uređaj zapravo koristi može se provjeriti pomoću I2CScannera. Dostupno je nekoliko jednostavnih I2C skenera iz različitih izvora. Ovaj na https://github.com/farmerkeith/I2CScanner također identificira neke od pronađenih uređaja.

Korak 3: Veze

Veze
Veze

Zahvaljujući ChaitanyiM17 koji je dao Fritzingov dijagram koji prikazuje veze, dolje opisane.

Vlast:

LCD modul ima iglu na donjoj strani označenu sa "5.0V". Desno, uz to, nalaze se dvije neoznačene igle koje su obje uzemljene.

Držeći serijski modul s I2C sučeljem na lijevom kraju, na donjem rubu ima 16 pinova. Prvi od njih je uzemljen, a drugi je +5v. Druga je mogućnost koristiti dva donja pina na sučelju I2C za napajanje, ali smatram da je prikladnije koristiti pinove kako je gore opisano.

I2C sučelje. Na serijskom modulu, gornji pin je SCL (sat) i ide na Arduino A5. Drugo prikvačenje je SDA (podaci) i ide na Arduino A4.

Sučelje za LCD ispis. Između serijskog modula i štita LCD tipkovnice postoji 6 veza, sve između pinova bez oznaka. Identificirat ću ih na LCD modulu brojeći zdesna nalijevo, s prvim pinom kao 1. Postoje 2 bloka od 8, pa idu od 1 do 16. Identificiram ih na serijskom modulu I2C brojeći od lijeva do Da, ima ih i 16. Osim toga, svakoj žici dajem oznaku, što je ekvivalentni pin na Arduinu koji je obično povezan s tom funkcijom, u slučaju izravne veze bez serijskog modula.

Dakle, 6 podatkovnih veza su:

Arduino ekvivalent // Igla za serijski modul // Pin za modul LCD tipkovnice

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

Upravljanje pozadinskim osvjetljenjem LCD -a: Ovo koristi još jednu vezu:

Arduino ekvivalent // Igla za serijski modul // Pin za modul LCD tipkovnice

D10 // 16 // 11

Sučelje tipkovnice: Ovo koristi jednu žicu s pina LCD modula na donjoj strani s oznakom "A0", za pričvršćivanje A0 na Arduinu. Barem je to bilo prilično lako!

Korak 4: Učinite ključ RST upotrebljivim kao i ostalih 5 ključeva

RST se može spojiti izravno na ulaz RESTART Arduino Nano.

Međutim, ako želite da se tipka RST može koristiti u softveru za druge stvari, to se može učiniti spajanjem 15K otpornika između RST pina i A0 pina na donjoj strani štitnika LCD tipkovnice.

Ovo funkcionira na sljedeći način: Postoji 2K otpornik između +5V i desne tipke. Zatim lanac postupno većih otpornika za svaku drugu tipku (330R prema tipki GORE, 620R prema tipki DOLJE, 1K prema tipki LIJEVO i 3K3 prema tipki SELECT. Sve tipke (uključujući tipku RST) povezuju se s Kada su spojeni na 10 -bitni A/D pretvarač (kao za Arduino Nano A0) isporučuju približno sljedeće vrijednosti:

Desno = 0; Gore = 100; Dolje = 260; Lijevo = 410; Odaberite = 640.

S 15 k otpornikom prema RST -u isporučuje se oko 850.

Softver će koristiti vrijednosti oko srednjih točaka između ovih vrijednosti kako bi odlučio koja je tipka pritisnuta.

Korak 5: Softver

Korisni softver je naravno vježba za čitatelja. No za početak, možete pogledati moj testni softver. Koristio sam biblioteku NewLiquidCrystal koja sadrži podršku za sučelje I2C. Sve je uspjelo, nakon što ispravno instaliram knjižnice.

Glavna točka je bila preokrenuti polaritet naredbi OFF i ON za pozadinsko osvjetljenje (zbog tranzistora na I2C modulu kako je objašnjeno u odjeljku Opis dijelova).

AŽURIRAJTE 22. kolovoza 2019

Ako imate problema s LCD zaslonom koji ne radi, provjerite I2C adresu serijskog ruksaka pomoću I2C skenera. Priložen je odgovarajući skener. Zatim, ako je potrebno, prilagodite prvi parametar u izjavi

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

Korak 6: Pregled i rasprava

Kao što vidite, glavne su mi funkcije ispravne.

Moja sljedeća namjera je staviti ovo u okvir projekta kao dio drugog projekta. Međutim, nakon što sam krenuo ovim putem, saznao sam da postoji još jedna poteškoća koju nisam predvidio.

Poteškoća je u tome što ovaj modul LCD tipkovnice nije postavljen za ugradnju u kutiju. Bilo kakva kutija. Gumbi na 6 tipki znatno su ispod razine LCD zaslona, tako da ako je modul montiran u kutiju (npr. U poklopac) s vrhom ploče ploče u ravnini sa donjom stranom poklopca, vrhovi ključeva su oko 7 mm ispod vrha poklopca.

Moguća rješenja su:

a) Trpi to. Izbušite rupe za pristup u poklopcu i pomoću alata (npr. Odrezane igle za pletenje odgovarajućeg promjera) pritisnite gumbe.

b) Uklonite LCD s ploče modula i izvedite operaciju na tipkovnici tako da se dvije komponente mogu neovisno pričvrstiti na poklopac kutije za projekt (mislim da još uvijek može postojati problem s prekratkim gumbima)

c) uklonite postojeće gumbe i zamijenite ih višim gumbima. Novi gumbi moraju biti visoki oko 13 mm kako bi se njima moglo upravljati kroz poklopac kutije za projektiranje). Zamjenski prekidači s gumbima dostupni su u različitim visinama, uključujući 13 mm.

d) odbacite zaštitni modul LCD tipkovnice i upotrijebite zasebne LCD i tipkovničke jedinice (tj. počnite ispočetka). Dostupan je širok raspon tipkovničkih jedinica, međutim nisam vidio onu sa istim rasporedom od 6 tipki kao na ovom modulu (tj. Odaberi, Lijevo, Gore, Dolje, Desno, Ponovo pokreni). Možda to nije veliki problem, ali jedan od razloga zašto sam započeo s ovim modulom bio je taj što sam mislio da je ovaj raspored ključeva ono što želim.

Planiram ići gore s rješenjem c) i vidjeti kako ću proći.

Još jedan dio informacija koje bi mogle biti zanimljive:

S uključenim pozadinskim osvjetljenjem, trenutna potrošnja ovog projekta je: Arduino Nano 21,5 ma; Serijski modul 3,6 ma; LCD modul 27,5 mA; Ukupno 52 mA.

S isključenim pozadinskim osvjetljenjem, trenutna potrošnja ovog projekta je: Arduino Nano 21,5 ma; Serijski modul 4,6 ma; LCD modul 9,8 mA; Ukupno 36 mA.

Preporučeni: