Turinys:
- 1 žingsnis: dalių aprašymas - LCD klaviatūros skydo modulis
- 2 žingsnis: dalių aprašymas - I2C serijos modulis
- 3 žingsnis: jungtys
- 4 žingsnis: padarykite RST raktą panašų į kitus 5 raktus
- 5 žingsnis: programinė įranga
- 6 žingsnis: peržiūra ir diskusija
Video: 1602 LCD klaviatūros skydo modulis su I2C kuprine: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
Vykdydamas didesnį projektą, norėjau turėti LCD ekraną ir klaviatūrą, skirtą naršyti kai kuriuose paprastuose meniu. Kitiems darbams naudosiu daug „Arduino“įvesties/išvesties prievadų, todėl norėjau LCD I2C sąsajos. Taigi aš nusipirkau techninės įrangos, kurią sudarė 1602 LCD klaviatūros skydo modulis iš „DFRobot“ir anoniminis I2C nuoseklusis modulis LCD ekranams. Noriu juos naudoti su „Arduino Nano“. Tada aš sužinojau, kad yra keletas iššūkių, kad šie komponentai veiktų kartu - bet tai įmanoma. Taigi noriu pasidalinti savo patirtimi ir galbūt padėti kitiems.
Ši nuotrauka yra iš veikiančios lentos, kuri gali rodyti pranešimus LCD ekrane ir atpažinti klavišų paspaudimus. Skystųjų kristalų ekranas valdomas per I2C sąsają, įskaitant LCD apšvietimą. Klavišų paspaudimus „Arduino“gauna ant kaiščio A0 (tai gali būti bet kuris iš analoginių kaiščių, išskyrus A4 ir A5, kurie yra susieti su I2C sąsaja).
1 žingsnis: dalių aprašymas - LCD klaviatūros skydo modulis
Skystųjų kristalų klaviatūros skydo modulį sudaro dažniausiai naudojamas 1602 skystųjų kristalų ekranas, sumontuotas ant grandinės plokštės, kurioje yra raktai, ir kuri paima LCD jungčių pogrupį ir leidžia juos pasiekti antraštės kaiščiams, esantiems plokštės apačioje. Suprantu, kad ši plokštė yra skirta montuoti ant „Arduino Uno“ar panašios medžiagos ir pateikia tinkamą kaiščio išdėstymą, kad ji veiktų toje aplinkoje. Aš nusipirkau šį modulį „Ebay“iš pardavėjo Kinijoje. Antraštės kaiščiai apatinėje plokštės pusėje (klaviatūra) dažniausiai yra pažymėti, tačiau viršutinėje pusėje, kuri yra LCD sąsaja, esantys kaiščiai nėra pažymėti. Tačiau paties LCD kaiščiai yra pažymėti.
2 žingsnis: dalių aprašymas - I2C serijos modulis
Serijinis modulis turi įprastą 4 kontaktų antraštę, skirtą I2C, ir nepaženklintų antgalių kaiščių rinkinys, kuris, kaip suprantu, yra skirtas prijungti tiesiai prie LCD modulio apačios. Studijuodamas etiketes skystųjų kristalų ekrane, man pavyko nustatyti serijinio modulio kaiščių funkcijas.
Šis modulis yra pagrįstas IC PCF8574T, kuris nutraukia I2C protokolą, turi 3 kontaktus adresų valdymui (nuo 20 iki 27) ir 8 skaitmeninius įvesties/išvesties kaiščius nuo P0 iki P7. Remiantis PCF8574T duomenų lapu, kiekvienas įvesties/išvesties kaištis turi FET, kad jį ištrauktų į žemą būseną LOW, ir gali nuskęsti bent 20 mA. Esant aukštai būsenai, jis turi trumpalaikį aktyvų prisitraukimą, o po to-nuolatinę apie 0,1 mA traukimo srovę.
Šiame modulyje visi skaitmeniniai įvesties/išvesties kaiščiai, išskyrus P3, yra tiesiog išvedami į antraštės kaiščius (nuotraukos dešinėje). P3 atveju jis prijungtas prie tranzistoriaus pagrindo (matomas nuotraukoje viršutiniame dešiniajame kampe tiesiai po etikete „LED“). To tranzistoriaus spinduolis yra prijungtas prie Vss (įžeminimo), o kolektorius prijungtas prie antraštės 16 kaiščio, kur jis gali būti naudojamas LCD foniniam apšvietimui valdyti. Dėl tranzistoriaus loginė būsena yra atvirkštinė, palyginti su programinės įrangos bibliotekos prielaida. Tai yra, LCD apšvietimas įjungiamas, kai P3 kaištis yra žemas, ir IŠJUNGTAS, kai P3 kaištis yra aukštas.
Tranzistoriaus etiketėje rašoma L6, o tai, mano tyrimais, tikriausiai daro jį MMBC1623L6, kurio minimalus srovės stipris yra 200. Turėdamas 0,1 mA bazinės srovės, jis turėtų sugebėti išlaikyti žemą būseną savo kolektoriuje (16 modulis) su mažiausiai 20mA kolektoriaus srove.
Be to, šiame modulyje yra 10K potenciometras, prijungtas tarp +5 ir žemės, kurio kintamasis laidas išvedamas į 3 kaištį (trečias iš nuotraukos apačios). Prijungus tiesiai prie LCD, šis indas valdys LCD kontrastą. Tačiau šią funkciją atlieka atskiras panašus indas LCD skydelyje, todėl šis serijinio modulio puodas neturi jokios funkcijos.
Nepavyko rasti jokio ryšio su PCF8574T INT kaiščiu.
Atnaujinta 2019 m. Rugpjūčio 22 d
Kaip minėta aukščiau, PCF8574 turi 3 adreso valdymo kaiščius. Atrodo, kad jie iškeliami į kuprinės lentos pagalvėles, kur jie pažymėti A0, A1 ir A2. Juos galima pamatyti nuotraukoje. Aš to neišbandžiau, tačiau atrodo beveik neabejotina, kad sujungus vieną ar daugiau šių kaiščių prie gretimų trinkelių, I2C adresą galima valdyti nuo 20 iki 27. Be to, yra antras beveik identiškas įrenginys, PCF8574A, kurio funkcijos yra identiškos PCF8574, tačiau apima adresų diapazoną nuo 0x38 iki 0x3F.
Adresą, kurį iš tikrųjų naudoja jūsų įrenginys, galima patikrinti naudojant „I2CScanner“. Yra keli paprasti I2C skaitytuvai iš įvairių šaltinių. Šis adresas https://github.com/farmerkeith/I2CScanner taip pat nustato kai kuriuos rastus įrenginius.
3 žingsnis: jungtys
Ačiū „ChaitanyaM17“, kuri pateikė Fritzing schemą, kurioje pavaizduoti ryšiai, aprašyti žemiau.
Galia:
LCD modulio apatinėje pusėje yra kaištis, pažymėtas „5.0V“. Dešinėje, greta to yra du nepažymėti kaiščiai, kurie abu yra sumalti.
Laikydami nuoseklųjį modulį su I2C sąsaja kairėje pusėje, apatiniame krašte yra 16 kaiščių. Pirmasis iš jų yra sumaltas, o antrasis - +5v. Kitas variantas yra naudoti apatinius du kaiščius I2C sąsajoje, kad gautumėte energijos, tačiau man pasirodė patogiau naudoti kaiščius, kaip aprašyta aukščiau.
I2C sąsaja. Serijinio modulio viršutinis kaištis yra SCL (laikrodis) ir eina į „Arduino A5“. Antrasis kaištis yra SDA (duomenys) ir eina į „Arduino A4“.
LCD spausdinimo sąsaja. Tarp serijinio modulio ir LCD klaviatūros skydo yra 6 jungtys, visos yra tarp kaiščių be etikečių. Aš juos identifikuosiu LCD modulyje, skaičiuodamas iš dešinės į kairę, o pirmasis kaištis yra 1. Yra 2 blokai iš 8, taigi jie yra nuo 1 iki 16. Aš juos identifikuoju I2C serijos modulyje skaičiuodamas nuo kairės iki Tiesa, jų taip pat yra 16. Be to, kiekvienam laidui duodu etiketę, kuri yra lygiavertis „Arduino“kaištis, kuris paprastai yra susijęs su šia funkcija, jei yra tiesioginis ryšys be serijinio modulio.
Taigi 6 duomenų ryšiai yra šie:
„Arduino“atitikmuo // Serijinio modulio kaištis // LCD klaviatūros modulio kaištis
D4 // 11 // 5 D5 // 12 // 6 D6 // 13 // 7 D7 // 14 // 8 D8 // 4 // 9D9 // 6 // 10
LCD apšvietimo valdymas: naudojamas dar vienas ryšys:
„Arduino“atitikmuo // Serijinio modulio kaištis // LCD klaviatūros modulio kaištis
D10 // 16 // 11
Klaviatūros sąsaja: naudojant vieną laidą iš LCD modulio kaiščio apatinėje pusėje, pažymėto „A0“, prie „Arduino“kaiščio A0. Bent jau tai buvo gana lengva!
4 žingsnis: padarykite RST raktą panašų į kitus 5 raktus
RST galima prijungti tiesiai prie „Arduino Nano“RESTART įvesties.
Tačiau jei norite, kad RST raktas būtų naudojamas programinėje įrangoje kitiems tikslams, tai galima padaryti prijungus 15K rezistorių tarp RST kaiščio ir A0 kaiščio apatinėje LCD klaviatūros skydo pusėje.
Tai veikia taip: tarp +5V ir dešiniojo klavišo yra 2K rezistorius. Tada palaipsniui didėjančių rezistorių grandinė kiekvienam kitam klavišui (330R - aukštyn klavišui, 620R - klavišui DOWN, 1K - kairiajam klavišui ir 3K3 - pasirinkimo klavišui. Visi klavišai (įskaitant raktą RST) jungiasi prie prijungtas prie 10 bitų A/D keitiklio (kaip ir „Arduino Nano A0“), jie pateikia maždaug šias vertes:
Dešinė = 0; Aukštyn = 100; Žemyn = 260; Kairė = 410; Pasirinkite = 640.
Naudodamas 15 k rezistorių į RST, jis tiekia apie 850.
Programinė įranga naudos vertes, esančias tarp šių taškų vidurio, kad nuspręstų, kuris klavišas buvo paspaustas.
5 žingsnis: programinė įranga
Naudinga programinė įranga, žinoma, yra skaitytojo pratimas. Tačiau norėdami pradėti, galite pažvelgti į mano bandymo programinę įrangą. Aš naudoju „NewLiquidCrystal“biblioteką, kurioje palaikoma I2C sąsaja. Viskas tiesiog veikė, kai tik tinkamai įdiegiau bibliotekas.
Pagrindinis dalykas buvo pakeisti „Backlight OFF“ir „ON“komandų poliškumą (dėl tranzistoriaus I2C modulyje, kaip paaiškinta skyriuje „Dalių aprašymas“).
Atnaujinta 2019 m. Rugpjūčio 22 d
Jei kyla problemų dėl to, kad LCD ekranas neveikia, patikrinkite serijinės kuprinės I2C adresą naudodami I2C skaitytuvą. Pridedamas tinkamas skaitytuvas. Tada, jei reikia, sureguliuokite pirmąjį teiginio parametrą
LiquidCrystal_I2C LCD (0x27, 2, 1, 0, 4, 5, 6, 7);
6 žingsnis: peržiūra ir diskusija
Kaip matote, pagrindinės funkcijos veikia.
Kitas mano ketinimas yra tai įtraukti į projekto dėžutę kaip kito projekto dalį. Tačiau pradėjęs šį kelią sužinojau, kad yra dar vienas sunkumas, kurio nesitikėjau.
Sunkumas yra tas, kad šis LCD klaviatūros modulis nėra nustatytas montuoti dėžutėje. Bet kokia dėžutė. 6 klavišų mygtukai yra gerokai žemiau skystųjų kristalų ekrano lygio, todėl jei modulis sumontuotas dėžutėje (pvz., Dangtelyje), o LCD plokštės viršus sutampa su apatine dangčio puse, raktų yra maždaug 7 mm žemiau dangčio viršaus.
Galimi sprendimai yra šie:
a) Susitaikyk. Dangtelyje išgręžkite prieigos angas ir mygtukais paspauskite įrankį (pvz., Nupjautą tinkamo skersmens mezgimo adatą).
b) Išimkite skystųjų kristalų ekraną iš modulio plokštės ir atlikite operaciją klaviatūroje, kad abu komponentai būtų nepriklausomai pritvirtinti prie projekto dėžutės dangtelio (manau, vis tiek gali kilti problemų dėl per trumpų mygtukų)
c) pašalinkite esamus mygtukus ir pakeiskite juos aukštesniais mygtukais. Nauji mygtukai turi būti apie 13 mm aukščio, kad juos būtų galima valdyti per projekto dėžutės dangtį). Keičiamų mygtukų jungiklius galima lengvai įsigyti įvairių aukščių, įskaitant 13 mm.
d) išmeskite LCD klaviatūros skydo modulį ir naudokite atskirus LCD ir klaviatūros blokus (ty pradėkite iš naujo). Yra daug įvairių klaviatūros įrenginių, tačiau aš nemačiau tokio, kurio 6 klavišų išdėstymas būtų toks pat kaip šiame modulyje (ty pasirinkite, kairėn, aukštyn, žemyn, dešinėn, iš naujo). Galbūt tai nėra didelė problema, tačiau viena iš priežasčių, kodėl pradėjau naudoti šį modulį, buvo ta, kad maniau, kad šis raktų išdėstymas yra tai, ko aš noriu.
Aš planuoju naudoti aukščiau pateiktą c) sprendimą ir pamatyti, kaip man seksis.
Kitas informacijos fragmentas, kuris gali jus sudominti:
Įjungus foninį apšvietimą, dabartinis šio projekto sunaudojimas yra: Arduino Nano 21,5 ma; Serijinis modulis 3,6 ma; LCD modulis 27,5 mA; Iš viso 52 mA.
Išjungus foninį apšvietimą, dabartinis šio projekto sunaudojimas yra: Arduino Nano 21,5 ma; Serijinis modulis 4,6 ma; LCD modulis 9,8 mA; Iš viso 36 mA.
Rekomenduojamas:
„Uber I2C“LCD valdiklio modulis: 6 žingsniai
„Uber I2C“LCD valdiklio modulis: įžanga Šioje instrukcijoje pateikiama išsami informacija, kaip sukurti HD44780 LCD valdiklio modulį (1 pav. Aukščiau). Modulis leidžia vartotojui programiškai valdyti visus LCD aspektus per I2C, įskaitant: LCD ir ekranas, kontrastas ir foninis apšvietimas
Naudojant 1602 LCD klaviatūros skydą su „Arduino“[+praktiniai projektai]: 7 žingsniai
1602 skystųjų kristalų klaviatūros skydo naudojimas su „Arduino“[+praktiniai projektai]: šią ir kitas nuostabias pamokas galite perskaityti oficialioje „ElectroPeak“svetainėje. Apžvalga Šioje pamokoje sužinosite, kaip naudoti „Arduino“LCD klaviatūros skydą su 3 praktiniais projektais. Ką sužinosite: Kaip nustatyti skydą ir nustatyti raktusHo
Klaviatūros sąsaja su 8051 ir klaviatūros numerių rodymas 7 segmentuose: 4 žingsniai (su paveikslėliais)
Klaviatūros sąsaja su 8051 ir klaviatūros numerių rodymas 7 segmentuose: Šioje pamokoje aš jums pasakysiu, kaip galime sujungti klaviatūrą su 8051 ir rodyti klaviatūros numerius 7 segmentų ekrane
„Apple“aliuminio klaviatūros arba bet kurios kitos minkštos klaviatūros valymas: 5 žingsniai
„Apple“aliuminio klaviatūros valymas …. arba bet kuri kita minkšto prisilietimo klaviatūra: Tokios švarios, kaip jūs ar aš, galbūt bandysime išlaikyti aliuminio obuolių klaviatūras, po metų jie tampa nešvarūs. Ši instrukcija padės jums ją išvalyti. Būkite atsargūs, nes aš nesu atsakingas, jei jūsų klaviatūra sulūžta tai darant …. SUCKS F
Tinklinė LCD kuprinė su „LCD Smartie“: 6 žingsniai
Tinklinė LCD kuprinė su „LCD Smartie“: simbolių skystųjų kristalų ekranai, kurie slenka informaciją, yra populiarus dėklo modas. Paprastai jie valdomi per lygiagretųjį prievadą, kuprinę su nuosekliu prievadu arba USB kuprinę (daugiau). Ši instrukcija parodo mūsų atviro kodo eterneto tinklo LCD kuprinę. LC