Kazalo:

Modul ščita za tipkovnico 1602 z nahrbtnikom I2C: 6 korakov
Modul ščita za tipkovnico 1602 z nahrbtnikom I2C: 6 korakov

Video: Modul ščita za tipkovnico 1602 z nahrbtnikom I2C: 6 korakov

Video: Modul ščita za tipkovnico 1602 z nahrbtnikom I2C: 6 korakov
Video: Введение в LCD2004 ЖК-дисплей с модулем I2C для Arduino 2024, December
Anonim
Modul ščitnika tipkovnice 1602 z nahrbtnikom I2C
Modul ščitnika tipkovnice 1602 z nahrbtnikom I2C

Kot del večjega projekta sem želel imeti LCD zaslon in tipkovnico za navigacijo po nekaterih preprostih menijih. Veliko I/O vrat na Arduinu bom uporabljal za druga dela, zato sem želel vmesnik I2C za LCD. Zato sem od DFRobota kupil nekaj strojne opreme, sestavljeno iz modula zaščite tipkovnice za LCD tipkovnico 1602 in anonimnega serijskega modula I2C za LCD -je. Te želim uporabiti z Arduino Nano. Potem sem ugotovil, da obstaja nekaj izzivov, da bi te komponente delovale skupaj - vendar je to mogoče. Zato želim deliti svoje izkušnje in morda pomagati drugim.

Ta fotografija je delovna plošča, ki lahko prikaže sporočila na LCD -ju in prepozna pritiske tipk. Z LCD upravljate prek vmesnika I2C, vključno z osvetlitvijo LCD. Arduino pritisne tipke na pin A0 (lahko gre za kateri koli analogni zatič, razen za A4 in A5, ki sta vezana za vmesnik I2C).

1. korak: Opis delov - Modul ščita tipkovnice LCD

Opis delov - Modul ščita LCD tipkovnice
Opis delov - Modul ščita LCD tipkovnice

Modul ščitnika tipkovnice LCD je sestavljen iz običajno uporabljenega LCD -zaslona 1602, nameščenega na vrhu tiskanega vezja, ki drži ključe, in ki prevzame podskupino povezav LCD in jih da na voljo zatičem glave na spodnji strani vezja. Razumem, da je ta plošča nameščena na Arduino Uno ali podobno in ponuja pravo postavitev zatičev za delovanje v tem okolju. Ta modul sem kupil na Ebayu od prodajalca na Kitajskem. Zatiči glave na spodnji strani (tipkovnica) plošče so večinoma označeni, zatiči na zgornji strani, ki je vmesnik LCD, pa niso označeni. Igle na samem LCD -ju pa so označene.

2. korak: Opis delov - Serijski modul I2C

Opis delov - Serijski modul I2C
Opis delov - Serijski modul I2C

Serijski modul ima običajne 4-pinske glave za I2C in niz neoznačenih zatičev za glave, ki jih razumem, da so namenjeni neposredno priključitvi na spodnjo stran modula LCD. S preučevanjem oznak na LCD -ju sem lahko identificiral funkcije nožic na serijskem modulu.

Ta modul temelji na IC PCF8574T, ki zaključuje protokol I2C, ima 3 zatiče za nadzor naslova (20 do 27) in ima 8 digitalnih vhodno/izhodnih zatičev P0 do P7. Glede na podatkovni list PCF8574T ima vsak vhodno -izhodni zatič FET, ki ga potegne na tla za NIZKO stanje, in lahko potone vsaj 20 mA. V visokem stanju ima prehodno aktivno vlečenje in nato stalni vlečni tok približno 0,1 mA.

Na tem modulu so vsi digitalni V/I zatiči, razen P3, preprosto izvlečeni do nožic glave (na desni na fotografiji). V primeru P3 je povezan z bazo tranzistorja (vidno na fotografiji v zgornjem desnem kotu tik pod oznako "LED"). Oddajnik tega tranzistorja je priključen na Vss (ozemljitev), zbiralnik pa na zatič 16, kjer ga je mogoče uporabiti za nadzor osvetlitve ozadja LCD. Zaradi tranzistorja je logično stanje obratno glede na stanje, predvideno v knjižnici programske opreme. To pomeni, da je osvetlitev zaslona LCD vklopljena, ko je nožica P3 nizka, in izklopljena, ko je pin P3 visok.

Oznaka na tranzistorju pravi L6, zaradi česar je po mojih raziskavah verjetno MMBC1623L6, ki ima najmanjši tokovni dobiček 200. Z 0,1 mA osnovnega toka bi moral vzdrževati nizko stanje na svojem kolektorju (modul Pin 16) z najmanj 20mA kolektorskim tokom.

Poleg tega ima ta modul 10K potenciometer, povezan med +5 in maso, katerega variabilni kabel je izvlečen na pin 3 (tretji od spodaj na fotografiji). Ko je priključen neposredno na LCD, bo ta lonec nadzoroval kontrast LCD. Vendar to funkcijo zagotavlja ločen podoben lonec na ščitniku LCD, zato ta lonec na serijskem modulu nima nobene funkcije.

Nisem mogel najti nobene povezave z vtičem INT PCF8574T.

Posodobi 22. avgusta 2019

Kot je navedeno zgoraj, ima PCF8574 3 zatiče za nadzor naslova. Zdi se, da so ti priloženi blazinicam na plošči nahrbtnika, kjer so označeni z A0, A1 in A2. Vidne so na fotografiji. Tega nisem preizkusil, vendar se zdi skoraj gotovo, da je mogoče z premostitvijo enega ali več teh zatičev na sosednje blazinice nadzorovati naslov I2C v razponu od 20 do 27. Poleg tega obstaja druga skoraj enaka naprava, PCF8574A, ki ima enako funkcijo kot PCF8574, vendar pokriva naslovno območje od 0x38 do 0x3F.

Naslov, ki ga naprava dejansko uporablja, lahko preverite s skenerjem I2CScanner. Na voljo je več preprostih skenerjev I2C iz različnih virov. Ta na naslovu https://github.com/farmerkeith/I2CScanner identificira tudi nekatere najdene naprave.

3. korak: Povezave

Povezave
Povezave

Hvala Chaitanyi M17, ki je predložil Fritzingov diagram, ki prikazuje spodaj opisane povezave.

Moč:

Modul LCD ima na spodnji strani pin z oznako "5.0V". Desno ob njej sta dva neoznačena zatiča, ki sta oba ozemljena.

Če na levem koncu držite serijski modul z vmesnikom I2C, je na spodnjem robu 16 zatičev. Prvi je ozemljen, drugi pa +5v. Druga možnost je, da za napajanje uporabite spodnja dva nožica na vmesniku I2C, vendar se mi je zdelo bolj primerno uporabiti zatiče, kot je opisano zgoraj.

I2C vmesnik. Na serijskem modulu je zgornji pin SCL (ura) in gre na Arduino A5. Drugi dodatek je SDA (podatki) in gre za Arduino A4.

LCD vmesnik za tiskanje. Med serijskim modulom in ščitom tipkovnice LCD je 6 povezav, vse med zatiči brez nalepk. Na LCD -modulu jih bom identificiral s štetjem od desne proti levi, pri čemer je prvi zatič 1. Obstajata 2 bloka po 8, zato gredo od 1 do 16. Prepoznam jih na serijskem modulu I2C s štetjem od leve do Prav, teh je tudi 16. Poleg tega vsaki žici dam oznako, ki je enakovreden zatič na Arduinu, ki je običajno povezan s to funkcijo, v primeru neposredne povezave brez serijskega modula.

Torej je 6 podatkovnih povezav:

Arduino ekvivalent // Pin serijskega modula // Pin modula LCD tipkovnice

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

Upravljanje osvetlitve LCD -zaslona: Za to je potrebna še ena povezava:

Arduino ekvivalent // Pin serijskega modula // Pin modula LCD tipkovnice

D10 // 16 // 11

Vmesnik tipkovnice: Ta uporablja eno žico iz zatiča modula LCD na spodnji strani z oznako "A0" za pritrditev A0 na Arduino. Vsaj to je bilo precej enostavno!

4. korak: Ustvarjanje ključa RST podobnega drugim petim ključem

RST lahko priključite neposredno na vhod RESTART Arduino Nano.

Če pa želite, da je ključ RST uporaben v programski opremi za druge stvari, lahko to storite tako, da priključite 15K upor med zatičem RST in zatičem A0 na spodnji strani ščita tipkovnice LCD.

To deluje na naslednji način: 2K upor je med +5V in desnim ključem. Nato veriga postopoma večjih uporov za vsako od drugih tipk (330R do tipke GOR, 620R do tipke DOL, 1K do tipke LEVO in 3K3 do tipke SELECT. Vse tipke (vključno s tipko RST) se povežejo z Ko so priključeni na 10 -bitni A/D pretvornik (kot pri Arduino Nano A0), dajejo približno naslednje vrednosti:

Desno = 0; Gor = 100; Dol = 260; Levo = 410; Izberite = 640.

S 15 k uporom na RST prinese približno 850.

Programska oprema bo uporabila vrednosti okoli sredine med temi vrednostmi, da se odloči, katera tipka je bila pritisnjena.

5. korak: Programska oprema

Uporabna programska oprema je seveda vaja za bralca. Za začetek pa si lahko ogledate mojo programsko opremo za testiranje. Uporabil sem knjižnico NewLiquidCrystal, ki vsebuje podporo za vmesnik I2C. Vse je delovalo, ko imam knjižnice pravilno nameščene.

Glavna točka je bila obratna polarnost ukazov za osvetlitev ozadja OFF in ON (zaradi tranzistorja na modulu I2C, kot je razloženo v razdelku Opis delov).

Posodobi 22. avgusta 2019

Če imate težave, ko LCD zaslon ne deluje, preverite naslov I2C serijskega nahrbtnika s skenerjem I2C. Priložen je ustrezen skener. Nato po potrebi prilagodite prvi parameter v stavku

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

6. korak: Pregled in razprava

Kot lahko vidite, imam glavne funkcije.

Moj naslednji namen je, da to postavim v okvir projekta kot del drugega projekta. Ko pa sem se odpravil na to pot, sem izvedel, da obstaja še ena težava, ki je nisem pričakoval.

Težava je v tem, da ta modul LCD tipkovnice ni nastavljen za vgradnjo v škatlo. Kakšna škatla. Gumbi na 6 tipkah so precej pod nivojem LCD zaslona, tako da, če je modul nameščen v škatli (npr. V pokrovu) z vrhom tiskanega vezja LCD poravnano s spodnjo stranjo pokrova, so zgornji deli tipk sta približno 7 mm pod vrhom pokrova.

Možne rešitve so:

a) potrpi. Izvrtajte luknje za dostop v pokrovu in z gumbom pritisnite orodje (npr. Odrezano iglo za pletenje ustreznega premera).

b) Odstranite LCD -ploščo z vezja modula in izvedite operacijo na tipkovnici, tako da se lahko obe komponenti neodvisno pritrdita na pokrov škatle za projekt (mislim, da je še vedno lahko problem, da so gumbi prekratki)

c) odstranite obstoječe gumbe in jih zamenjajte z višjimi gumbi. Novi gumbi morajo biti visoki približno 13 mm, da jih je mogoče upravljati skozi pokrov škatle za projekt). Nadomestna stikala so na voljo v različnih višinah, vključno s 13 mm.

d) zavrzite modul ščitnika tipkovnice LCD in uporabite ločene enote LCD in tipkovnice (tj. začnite znova). Na voljo je širok nabor tipkovnic, vendar jih še nisem videl z enako razporeditvijo s 6 tipkami kot na tem modulu (tj. Izberite, Levo, Gor, Dol, Desno, Ponovni zagon). Morda to ni velika težava, vendar je bil eden od razlogov, da sem začel s tem modulom, ta, da sem mislil, da je ta postavitev ključa tisto, kar želim.

Načrtujem, da grem zgoraj z rešitvijo c) in vidim, kako bom.

Še en del informacij, ki bi vas lahko zanimale:

Ko je osvetlitev ozadja vklopljena, je trenutna poraba tega projekta: Arduino Nano 21,5 ma; Zaporedni modul 3,6 ma; LCD modul 27,5 mA; Skupaj 52 mA.

Ko je osvetlitev ozadja izklopljena, je trenutna poraba tega projekta: Arduino Nano 21,5 ma; Zaporedni modul 4,6 ma; LCD modul 9,8 mA; Skupaj 36 mA.

Priporočena: