Sisukord:
- 1. samm: osade kirjeldus - LCD -klahvistiku kilpmoodul
- 2. samm: osade kirjeldus - I2C jadamoodul
- Samm: ühendused
- Samm: muutke RST -võti kasutatavaks teiste viie võtmega
- Samm: tarkvara
- 6. samm: läbivaatamine ja arutelu
Video: 1602 LCD klahvistiku kilbimoodul koos I2C seljakotiga: 6 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
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
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
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
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:
Kuidas teha DIY äratuskella LCD -klahvistiku kilbiga: 5 sammu
Kuidas teha DIY äratuskella LCD -klahvistiku kilbiga: Tere kõigile! Selles juhendis näitan teile, kuidas teha Arduino Board abil äratuskella. Olen selle kella ehitamiseks kasutanud Arduino UNO -d, LCD -klaviatuuri kaitsekilpi, 5 V helisignaali ja hüppajajuhtmeid. Näete kellaaega ekraanil ja saate seadistada aega
Led Reactie Spel Met LCD klahvistiku kilp: 4 sammu
Led Reactie Spel Met LCD ekraaniklahvistiku kilp: kas see on loodud, kas kool on kohtunud ja arduino? Klinkt leuk! Dan moet je eerst een idee hebben voor een spel. Ik dacht meteen aan spellen waar je snel op een knop moet drukken als hij licht geeft. Dus ik keek op het internet en vond een projec
1602 LCD -klahvistiku kilbi kasutamine W/ Arduino abil [+praktilised projektid]: 7 sammu
1602 LCD -klahvistiku kilbi kasutamine W/ Arduinoga [+praktilised projektid]: seda ja muid hämmastavaid õpetusi saate lugeda ElectroPeaki ametlikul veebisaidil. Kilbi seadistamine ja võtmete tuvastamineHo
Esiplaat 16x2 LCD + klahvistiku kilbile: 8 sammu (piltidega)
Esiplaat 16x2 LCD + klaviatuurikilbile: mida me ehitame: Selles õpetuses ehitame Adafruit 16x2 LCD + klaviatuurikilbi (Arduino versioon) jaoks laseriga lõigatud akrüülist esiplaadi. Lihtsa reguleerimise tõttu on teil mugav juurdepääs kõikidele klahvistiku nuppudele. Kui te seda ei tee
DIY LCD -klahvistiku kilp Arduino Uno jaoks: 6 sammu (piltidega)
DIY LCD -klahvistiku kilp Arduino Uno jaoks: otsisin palju DIY LCD -klaviatuuri kilbi tegemiseks ja ma ei leidnud ühtegi, nii et tegin selle ja tahan teiega jagada