Sadržaj:

1602 LCD modul štitnika tastature sa I2C ruksakom: 6 koraka
1602 LCD modul štitnika tastature sa I2C ruksakom: 6 koraka

Video: 1602 LCD modul štitnika tastature sa I2C ruksakom: 6 koraka

Video: 1602 LCD modul štitnika tastature sa I2C ruksakom: 6 koraka
Video: Текстовые LCD дисплей на контроллере HD44780, Уроки Arduino 2024, Decembar
Anonim
1602 LCD modul štitnika tastature sa I2C ruksakom
1602 LCD modul štitnika tastature sa I2C ruksakom

Kao dio većeg projekta, želio sam imati LCD zaslon i tipkovnicu za navigaciju nekim jednostavnim izbornicima. Koristit ću puno I/O portova na Arduinu za druge poslove, pa sam htio I2C sučelje za LCD. Zato sam kupio neki hardver, koji se sastojao od modula štita od 1602 LCD tastature od DFRobota i anonimnog serijskog modula I2C za LCD ekrane. Želim ih koristiti s Arduino Nano -om. Tada sam otkrio da postoje neki izazovi u usklađivanju ovih komponenti - ali moguće je. Zato ž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 tastera. LCD -om se upravlja putem I2C interfejsa, 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 I2C sučelje).

Korak 1: Opis dijelova - Modul štita LCD tastature

Opis dijelova - Modul štita LCD tastature
Opis dijelova - Modul štita LCD tastature

Modul štitnika LCD tastature 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 veza 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 (tastatura) ploče uglavnom su označene, ali pinovi na gornjoj strani, što je LCD interfejs, nisu označeni. Međutim, 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 pinova zaglavlja za koje razumijem da se namjeravaju priključiti direktno na donju stranu LCD modula. Proučavajući oznake na LCD -u, uspio sam identificirati funkcije pinova na serijskom modulu.

Ovaj modul je zasnovan na IC PCF8574T koji završava I2C protokol, ima 3 pina za kontrolu adrese (20 do 27) i ima 8 digitalnih ulazno/izlaznih pinova P0 do P7. Prema podacima sa računara 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 kontinuirano povlačenje od oko 0,1 mA.

Na ovom modulu svi digitalni I/O pinovi, osim P3, jednostavno se izvlače na zaglavlje zaglavlja (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 koje se pretpostavlja u softverskoj biblioteci. To jest, pozadinsko osvjetljenje LCD -a je UKLJUČENO kada je pin P3 nizak, a ISKLJUČEN kada je pin P3 visok.

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

Osim toga, ovaj modul ima 10K potenciometar spojen između +5 i uzemljenja, čiji je promjenjivi vodič izveden na pin 3 (treći od dna na fotografiji). Kada se spoji direktno 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. avgusta 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 sa 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

Connections
Connections

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

Snaga:

LCD modul ima iglu sa donje strane 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 donjoj ivici nalazi se 16 pinova. Prvi od njih je uzemljen, a drugi je +5v. Druga mogućnost je da za napajanje koristite donja dva pina na sučelju I2C, ali smatram da je prikladnije koristiti pinove kako je gore opisano.

I2C interfejs. Na serijskom modulu, gornji pin je SCL (sat) i ide na Arduino A5. Drugi dodatak je SDA (podaci) i ide na Arduino A4.

LCD interfejs za štampanje. Između serijskog modula i štita LCD tastature 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 Tačno, 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 serijskog modula // Igla modula LCD tastature

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

Kontrola pozadinskog osvetljenja LCD -a: Ovo koristi još jednu vezu:

Arduino ekvivalent // Igla serijskog modula // Igla modula LCD tastature

D10 // 16 // 11

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

Korak 4: Učinite RST tipku upotrebljivom 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 desnog ključa. Zatim lanac progresivno većih otpornika za svaki od ostalih ključeva (330R prema tipki GORE, 620R prema tipki DOLJE, 1K prema tipki LIJEVO i 3K3 prema tipki SELECT. Svi ključevi (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.

Uz otpornik od 15 k prema RST -u, isporučuje se oko 850.

Softver će koristiti vrijednosti oko srednjih točaka između ovih vrijednosti kako bi odlučio koji je taster pritisnut.

Korak 5: Softver

Korisni softver je naravno vježba za čitatelja. Međutim, za početak, možete pogledati moj softver za testiranje. Koristio sam biblioteku NewLiquidCrystal koja sadrži podršku za I2C sučelje. Sve je funkcioniralo, nakon što ispravno instaliram biblioteke.

Glavna stvar 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. avgusta 2019

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

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

Korak 6: Pregled i diskusija

Kao što vidite, glavne funkcije mi rade.

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 tastature nije postavljen za ugradnju u kutiju. Bilo kakva kutija. Dugmad na 6 tipki su znatno ispod nivoa LCD ekrana, tako da ako se modul montira u kutiju (npr. U poklopac) s vrhom ploče sa pločom u ravnini sa donjom stranom poklopca, vrhovi ključevi su oko 7 mm ispod vrha poklopca.

Moguća rješenja su:

a) Trpi to. Izbušite rupe za pristup u poklopcu i upotrijebite alat (npr. Odrezanu iglu za pletenje odgovarajućeg promjera) da pritisnete tipke.

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 tim što su tipke prekratke)

c) uklonite postojeće tipke 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 modul štitnika LCD tastature i koristite zasebne LCD ekrane i jedinice tastature (tj. počnite ispočetka). Dostupan je širok raspon jedinica tipkovnice, međutim nisam vidio nijednu 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 počeo s ovim modulom bio je taj što sam mislio da je ovaj raspored ključeva ono što želim.

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

Još jedan dio informacija koje bi vas mogle zanimati:

Sa 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.

Sa 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čuje se: