Sisukord:

1602 LCD klahvistiku kilbimoodul koos I2C seljakotiga: 6 sammu
1602 LCD klahvistiku kilbimoodul koos I2C seljakotiga: 6 sammu

Video: 1602 LCD klahvistiku kilbimoodul koos I2C seljakotiga: 6 sammu

Video: 1602 LCD klahvistiku kilbimoodul koos I2C seljakotiga: 6 sammu
Video: INTRODUCTION TO COMPUTER || Computer awareness|| Arihant Book class 1 #jkssb #ssc #jkssbvlw #bank 2024, November
Anonim
1602 LCD klahvistiku kilbimoodul koos I2C seljakotiga
1602 LCD klahvistiku kilbimoodul koos I2C seljakotiga

Suurema projekti osana tahtsin saada LCD -ekraani ja klaviatuuri mõne lihtsa menüü navigeerimiseks. Kasutan muudeks töödeks palju Arduino I/O porte, seega tahtsin LCD -le I2C liidest. Nii et ostsin riistvara, mis koosnes DFRoboti 1602 LCD -klaviatuuri kilpmoodulist ja LCD -de anonüümsest I2C jadamoodulist. Ma tahan neid kasutada koos Arduino Nanoga. Siis leidsin, et nende komponentide koos töötamiseks on mõned väljakutsed - kuid see on võimalik. Nii et ma tahan jagada oma kogemusi ja võib -olla aidata teisi.

See foto on töötavast leivaplaadist, mis suudab kuvada LCD -ekraanil teateid ja tuvastada klahvivajutusi. LCD -ekraani juhitakse I2C -liidese kaudu, sealhulgas LCD -taustvalgus. Klahvivajutusi võtab Arduino vastu tihvtil A0 (see võib olla ükskõik milline analoogpistik, välja arvatud A4 ja A5, mis on seotud I2C liidese jaoks).

1. samm: osade kirjeldus - LCD -klahvistiku kilpmoodul

Osade kirjeldus - LCD -klahvistiku kilpmoodul
Osade kirjeldus - LCD -klahvistiku kilpmoodul

LCD -klahvistiku varjestusmoodul koosneb tavaliselt kasutatavast 1602 LCD -ekraanist, mis on paigaldatud võtmeid hoidvale trükkplaadile ja mis võtab osa LCD -ühendustest ja teeb need kättesaadavaks trükkplaadi alumisel küljel asuvatele päisepistikutele. Ma saan aru, et see plaat on mõeldud paigaldamiseks Arduino Uno või muu sarnase peale ja pakub õiget tihvtide paigutust selles keskkonnas töötamiseks. Ostsin selle mooduli Ebayst Hiina müüjalt. Tahvli alumisel (klahvistiku) küljel olevad päisepoldid on enamasti märgistatud, kuid ülemisel küljel olevad tihvtid, mis on LCD -liides, ei ole märgistatud. Kuid LCD -ekraanil olevad tihvtid on märgistatud.

2. samm: osade kirjeldus - I2C jadamoodul

Osade kirjeldus - I2C jadamoodul
Osade kirjeldus - I2C jadamoodul

Seeriamoodulil on I2C jaoks tavaline 4-kontaktiline päis ja märgistamata päisepistikute komplekt, millest ma aru saan, on mõeldud otse LCD-mooduli alumisse külge ühendamiseks. LCD -l olevaid silte uurides suutsin tuvastada jadamooduli tihvtide funktsioonid.

See moodul põhineb IC PCF8574T -l, mis lõpetab I2C protokolli, sellel on 3 kontakti aadressi juhtimiseks (20 kuni 27) ja 8 digitaalset sisend-/väljundpistikut P0 kuni P7. Vastavalt PCF8574T andmelehele on igal I/O tihvtil FET, mis tõmbab selle LOW oleku jaoks maapinnale ja võib alla vajuda vähemalt 20 mA. Kõrge olekus on sellel mööduv aktiivne tõmbejõud ja seejärel jätkuv tõmbevool umbes 0,1 mA.

Selles moodulis tuuakse kõik digitaalsed sisend- ja väljundpistikud, välja arvatud P3, lihtsalt päisepistikutesse (fotol paremal). P3 puhul on see ühendatud transistori alusega (nähtav fotol paremas ülanurgas vahetult sildi "LED" all). Selle transistori emitter on ühendatud Vss -ga (maandus) ja kollektor on ühendatud päise tihvtiga 16, kus seda saab kasutada LCD taustvalgustuse juhtimiseks. Transistori tõttu on loogiline olek tarkvara teegis eeldatava suhtes vastupidine. See tähendab, et LCD taustavalgus lülitatakse sisse, kui P3 tihvt on madal, ja OFF, kui P3 tihvt on kõrge.

Transistori etiketil on kirjas L6, mis minu uuringute kohaselt teeb sellest tõenäoliselt MMBC1623L6, mille minimaalne voolutugevus on 200. 0,1 mA baasvoolu korral peaks see suutma oma kollektoris (Moodul Pin 16) säilitada madalat seisundit. vähemalt 20mA kollektorivooluga.

Lisaks sellele on sellel moodulil 10K potentsiomeeter, mis on ühendatud +5 ja maanduse vahel, mille muutuv juhe viiakse nööpnõelale 3 (fotol altpoolt kolmas). Kui see pott on otse LCD -ga ühendatud, kontrollib see LCD -ekraani kontrastsust. Seda funktsiooni pakub aga eraldi sarnane pott LCD -ekraanil, nii et sellel jadamooduli potil pole funktsiooni.

Ma ei suutnud leida ühtegi ühendust PCF8574T INT -tihvtiga.

UPDATE 22. august 2019

Nagu eespool mainitud, on PCF8574 -l 3 aadressi juhtimistihvti. Tundub, et need tuuakse seljakoti pardal olevatele padjakestele, kus need on märgistatud A0, A1 ja A2. Neid on fotol näha. Ma ei ole seda katsetanud, kuid tundub peaaegu kindel, et kui ühendada üks või mitu neist tihvtidest kõrvalasuvate padjanditega, saab I2C aadressi kontrollida vahemikus 20 kuni 27. Lisaks on olemas teine peaaegu identne seade, PCF8574A, millel on identne funktsionaalsus PCF8574 -ga, kuid mis hõlmab aadressivahemikku 0x38 kuni 0x3F.

Aadressi, mida teie seade tegelikult kasutab, saab kontrollida I2CScanneriga. Erinevatest allikatest on saadaval mitu lihtsat I2C -skannerit. See aadress https://github.com/farmerkeith/I2CScanner tuvastab ka mõned leitud seadmed.

Samm: ühendused

Ühendused
Ühendused

Tänu ChaitanyaM17 -le, kes esitas Fritzingu diagrammi, mis kujutab allpool kirjeldatud ühendusi.

Võimsus:

LCD -mooduli alumisel küljel on tihvt märgistusega "5.0V". Paremal, selle kõrval on kaks märgistamata tihvti, mis on mõlemad maandatud.

Hoides I2C liidesega jadamoodulit vasakus otsas, on alumises servas 16 tihvti. Esimene neist on jahvatatud ja teine +5v. Teine võimalus on kasutada toiteallikaks I2C liidese kahte alumist tihvti, kuid mulle tundus mugavam kasutada nõelu, nagu eespool kirjeldatud.

I2C liides. Jadamoodulil on ülemine tihvt SCL (kell) ja see läheb Arduino A5 -le. Teine nööpnõel on SDA (andmed) ja see läheb Arduino A4 -le.

LCD printimisliides. Jadamooduli ja LCD -klahvistiku kilbi vahel on 6 ühendust, kõik sildideta tihvtide vahel. Ma tuvastan need LCD -moodulil, lugedes paremalt vasakule, kusjuures esimene tihvt on 1. Seal on 2 plokki 8, seega on need vahemikus 1 kuni 16. Ma tuvastan need I2C jadamoodulil, lugedes vasakult kuni Õige, neid on ka 16. Lisaks annan igale juhtmele sildi, mis on Arduino samaväärne tihvt, mis on tavaliselt selle funktsiooniga seotud, otseühenduse korral ilma jadamoodulita.

Seega on 6 andmeühendust järgmised:

Arduino ekvivalent // jadamooduli tihvt // LCD -klaviatuuri mooduli tihvt

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

LCD taustvalgustuse juhtimine: see kasutab veel ühte ühendust:

Arduino ekvivalent // jadamooduli tihvt // LCD -klaviatuuri mooduli tihvt

D10 // 16 // 11

Klaviatuuri liides: see kasutab ühe juhtme abil LCD -mooduli tihvti alumisel küljel märgistusega "A0", et ühendada Arduino A0. Vähemalt oli see päris lihtne!

Samm: muutke RST -võti kasutatavaks teiste viie võtmega

RST saab ühendada otse Arduino Nano RESTART sisendiga.

Kui aga soovite, et RST -klahvi saaks tarkvaras kasutada ka muuks, saab seda teha, ühendades 15K takisti RST -tihvti ja LCD -klahvistiku alumisel küljel asuva A0 -tihvti vahele.

See toimib järgmiselt: +5V ja parema klahvi vahel on 2K takisti. Seejärel järk -järgult suuremate takistite ahel kõigi teiste klahvide jaoks (330R UP klahvi, 620R DOWN klahv, 1K LEFT klahv ja 3K3 SELECT klahv. Kõik klahvid (sh RST võti) ühenduvad 10 -bitise A/D muunduriga ühendatuna (nagu Arduino Nano A0 puhul) annavad nad ligikaudu järgmised väärtused:

Paremal = 0; Üles = 100; Alla = 260; Vasakul = 410; Valige = 640.

RST 15 k takisti abil annab see umbes 850.

Tarkvara kasutab nende väärtuste vahel olevate keskpunktide väärtusi, et otsustada, millist klahvi on vajutatud.

Samm: tarkvara

Kasulik tarkvara on lugejale muidugi harjutus. Alustamiseks võite siiski vaadata minu testitarkvara. Kasutasin raamatukogu NewLiquidCrystal, mis toetab I2C liidest. See kõik lihtsalt töötas, kui olen raamatukogud õigesti installinud.

Peamine eesmärk oli muuta taustvalgustuse OFF ja ON käskude polaarsust (tänu I2C mooduli transistorile, nagu on kirjeldatud osade kirjelduse osas).

UPDATE 22. august 2019

Kui teil on probleeme LCD -ekraani mittetöötamisega, kontrollige I2C -skanneri abil oma seeriakoti I2C -aadressi. Lisatud on sobiv skanner. Seejärel vajadusel kohandage avalduse esimest parameetrit

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

6. samm: läbivaatamine ja arutelu

Nagu näete, sain põhifunktsioonid tööle.

Minu järgmine kavatsus on panna see mõne teise projekti osana projekti kasti. Kuid pärast sellele teele asumist sain teada, et on veel üks raskus, mida ma ei osanud oodata.

Probleem on selles, et see LCD -klahvistiku moodul ei ole seadistatud kasti paigaldamiseks. Igasugune kast. Kuue klahvi nupud on LCD -ekraani tasemest tunduvalt madalamal, nii et kui moodul on paigaldatud kasti (nt kaanesse), kusjuures LCD -trükkplaadi ülaosa on kaane alaosaga ühtlane, võtmed on umbes 7 mm kaane ülaosast allpool.

Võimalikud lahendused on järgmised:

a) Lepi sellega. Puurige kaanesse juurdepääsuaugud ja kasutage nuppude vajutamiseks tööriista (nt sobiva läbimõõduga lõigatud kudumisvarda).

b) Eemaldage LCD -ekraan mooduli trükkplaadilt ja tehke klaviatuuril operatsioon, et need kaks komponenti saaksid iseseisvalt projektikarbi kaane külge kinnitada (arvan, et liiga lühikeste nuppudega võib siiski probleeme olla)

c) eemaldage olemasolevad nupud ja asendage need kõrgemate nuppudega. Uued nupud peavad olema umbes 13 mm kõrgused, et neid saaks juhtida läbi projektikarbi kaane). Asendusnuppude lülitid on kergesti saadaval erinevates kõrgustes, sealhulgas 13 mm.

d) visake LCD -klahvistiku kilbimoodul ära ja kasutage eraldi LCD -klahvistikku (st alustage otsast peale). Saadaval on lai valik klaviatuuriseadmeid, kuid ma pole näinud ühtegi, millel oleks sama 6-klahviline paigutus kui sellel moodulil (st Vali, Vasak, Üles, Alla, Paremale, Taaskäivita). See ei pruugi olla suur probleem, kuid üks põhjus, miks ma selle mooduliga alustasin, oli see, et arvasin, et see võtmepaigutus on see, mida ma tahtsin.

Kavatsen kasutada ülaltoodud lahendust c) ja vaadata, kuidas mul läheb.

Veel üks väljavõte teabest, mis võib teile huvi pakkuda:

Kui taustvalgus on sisse lülitatud, on selle projekti praegune tarbimine: Arduino Nano 21,5 ma; Jadamoodul 3,6 ma; LCD -moodul 27,5 mA; Kokku 52 mA.

Kui taustvalgus on välja lülitatud, on selle projekti praegune tarbimine: Arduino Nano 21,5 ma; Jadamoodul 4,6 ma; LCD -moodul 9,8 mA; Kokku 36 mA.

Soovitan: