Përmbajtje:
- Hapi 1: Përshkrimi i Pjesëve - Moduli i Mburojës së Tastierës LCD
- Hapi 2: Përshkrimi i Pjesëve - Moduli Serial I2C
- Hapi 3: Lidhjet
- Hapi 4: Duke e bërë çelësin RST të përdorshëm të ngjashëm me 5 çelësat e tjerë
- Hapi 5: Softuer
- Hapi 6: Rishikimi dhe Diskutimi
Video: Moduli Mburoja e tastierës 1602 LCD me çantë shpine I2C: 6 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:18
Si pjesë e një projekti më të madh, doja të kisha një ekran LCD dhe një tastierë për lundrimin e disa menutë të thjeshta. Unë do të përdor shumë porte I/O në Arduino për punë të tjera, kështu që doja një ndërfaqe I2C për LCD. Kështu që unë bleva disa pajisje, të përbërë nga një modul mburoje të tastierës 1602 LCD nga DFRobot dhe një modul serial anonim I2C për LCD. Unë dua t'i përdor këto me një Arduino Nano. Pastaj zbulova se ka disa sfida për t'i bërë këto përbërës të punojnë së bashku - por është e mundur. Kështu që unë dua të ndaj përvojën time dhe ndoshta të ndihmoj disa të tjerë.
Kjo foto është e tabelës së punës, e cila mund të shfaq mesazhe në LCD dhe të identifikojë shtypjet e çelësave. LCD kontrollohet përmes ndërfaqes I2C, përfshirë dritën e pasme të LCD. Shtypjet kryesore merren nga Arduino në kunjin A0 (mund të jetë ndonjë nga kunjat analoge, përveç A4 dhe A5 të cilat janë të lidhura për ndërfaqen I2C).
Hapi 1: Përshkrimi i Pjesëve - Moduli i Mburojës së Tastierës LCD
Moduli i mburojës së tastierës LCD përbëhet nga një LCD 1602 i përdorur zakonisht i montuar në majë të një bordi qark që mban çelësat, dhe që merr një nëngrup të lidhjeve LCD dhe i bën ato të disponueshme për kunjat e kokës në pjesën e poshtme të panelit të qarkut. Unë e kuptoj që kjo tabelë ka për qëllim të montohet në majë të një Arduino Uno ose të ngjashme dhe siguron paraqitjen e duhur të kunjave për të punuar në atë mjedis. Bleva këtë modul në Ebay nga një shitës në Kinë. Kunjat e kokës në anën e poshtme (tastiera) të tabelës janë të etiketuar kryesisht, por kunjat në anën e sipërme, e cila është ndërfaqja LCD, nuk janë të etiketuar. Sidoqoftë, kunjat në vetë LCD janë etiketuar.
Hapi 2: Përshkrimi i Pjesëve - Moduli Serial I2C
Moduli serik ka kokën e zakonshme me 4 kunja për I2C, dhe një sërë kunjash të padisiplinuar të titujve të cilët unë kuptoj se kanë për qëllim të futen drejtpërdrejt në pjesën e poshtme të modulit LCD. Duke studiuar etiketat në LCD, unë kam qenë në gjendje të identifikoj funksionet e kunjave në modulin serik.
Ky modul bazohet në IC PCF8574T i cili përfundon protokollin I2C, ka 3 kunja për kontrollin e adresës (20 deri në 27) dhe ka 8 kunja dixhitale të hyrjes/daljes P0 deri P7. Sipas fletës së të dhënave të PCF8574T, çdo kunj I/O ka një FET për ta tërhequr atë në tokë për gjendjen LOW, dhe mund të fundoset të paktën 20ma. Në gjendjen e Lartë, ajo ka një tërheqje aktive kalimtare dhe më pas një rrymë tërheqëse të vazhdueshme prej rreth 0.1 mA.
Në këtë modul, të gjitha kunjat dixhitale të hyrjes/daljes, përveç P3, thjesht nxirren në kunjat e kokës (në të djathtë në foto). Në rastin e P3, ajo është e lidhur me bazën e një tranzistori (e dukshme në foto në zonën e sipërme të djathtë vetëm nën etiketën "LED"). Emetuesi i atij tranzistori është i lidhur me Vss (toka) dhe kolektori është i lidhur me kunjin e kokës 16, ku mund të përdoret për të kontrolluar dritën e pasme të LCD. Për shkak të transistorit, gjendja logjike përmbyset në krahasim me atë të supozuar në bibliotekën e softuerit. Kjo do të thotë, drita e pasme e LCD -së ndizet kur kunja P3 është e Ulët, dhe OFF kur kunja P3 është e Lartë.
Etiketa në transistor thotë L6 e cila sipas hulumtimit tim me siguri e bën atë një MMBC1623L6 e cila ka një fitim aktual minimal prej 200. Me 0.1 mA rrymë bazë, duhet të jetë në gjendje të mbajë një gjendje të ULOW në kolektorin e tij (moduli Pin 16) me të paktën 20mA rrymë kolektori.
Për më tepër ky modul ka një potenciometër 10K të lidhur midis +5 dhe Ground, plumbi i ndryshueshëm i të cilit nxirret në pin 3 (e treta nga fundi në foto). Kur lidhet drejtpërdrejt me LCD, kjo tenxhere do të kontrollojë kontrastin e LCD. Sidoqoftë, ai funksion sigurohet nga një tenxhere e veçantë e ngjashme në mburojën LCD, kështu që kjo tenxhere në modulin serik nuk ka asnjë funksion.
Nuk arrita të gjej asnjë lidhje me pinin INT të PCF8574T.
P URDITSIM 22 Gusht 2019
Siç u përmend më lart, PCF8574 ka 3 kunja të kontrollit të adresës. Këto duket se janë nxjerrë në jastëkë në tabelën e shpinës ku janë etiketuar A0, A1 dhe A2. Ato mund të shihen në foto. Unë nuk e kam testuar këtë, por duket pothuajse e sigurt që duke i lidhur një ose më shumë prej këtyre kunjave në pads ngjitur, adresa I2C mund të kontrollohet në rangun nga 20 në 27. Për më tepër, ekziston një pajisje e dytë pothuajse identike, PCF8574A e cila ka funksionalitet identik me PCF8574 por mbulon gamën e adresave nga 0x38 në 0x3F.
Adresa që pajisja juaj në të vërtetë përdor mund të kontrollohet me një I2CScanner. Ekzistojnë disa skanues të thjeshtë I2C të disponueshëm nga burime të ndryshme. Ky në https://github.com/farmerkeith/I2CScanner gjithashtu identifikon disa nga pajisjet e gjetura.
Hapi 3: Lidhjet
Falë ChaitanyaM17 i cili siguroi diagramin Fritzing i cili përshkruan lidhjet, të përshkruara më poshtë.
Fuqia:
Moduli LCD ka një kunj në anën e poshtme të etiketuar "5.0V". Në të djathtë, ngjitur me të janë dy kunja pa etiketë të cilat janë të dyja të bluara.
Duke mbajtur modulin serik me ndërfaqen I2C në anën e majtë, ka 16 kunja në skajin e poshtëm. E para nga këto është e bluar, dhe e dyta nga këto është +5v. Një opsion tjetër është përdorimi i dy kunjave të poshtëm në ndërfaqen I2C për energji, por e pashë më të përshtatshëm përdorimin e kunjave siç përshkruhet më sipër.
Ndërfaqja I2C. Në modulin serik, kunja e sipërme është SCL (ora) dhe shkon te Arduino A5. Kunja e dytë poshtë është SDA (të dhëna) dhe shkon tek Arduino A4.
Ndërfaqja e printimit LCD. Ekzistojnë 6 lidhje midis modulit serik dhe mburojës së tastierës LCD, të gjitha ato midis kunjave pa etiketa. Unë do t'i identifikoj në modulin LCD duke numëruar nga e djathta në të majtë, me kunjin e parë si 1. Ka 2 blloqe me 8, kështu që ato shkojnë nga 1 në 16. I identifikoj në modulin serik I2C duke numëruar nga e majta në Po, ka edhe 16 prej tyre. Përveç kësaj, unë i jap secilës tel një etiketë, e cila është kunja ekuivalente në Arduino që normalisht shoqërohet me atë funksion, në rastin e një lidhjeje direkte pa modulin serik.
Pra, 6 lidhjet e të dhënave janë:
Arduino ekuivalente // Kodi i modulit serik // Kodi i modulit të tastierës LCD
D4 // 11 // 5 D5 // 12 // 6 D6 // 13 // 7 D7 // 14 // 8 D8 // 4 // 9D9 // 6 // 10
Kontrolli i dritës së pasme LCD: Kjo përdor një lidhje më shumë:
Arduino ekuivalente // Kodi i modulit serik // Kodi i modulit të tastierës LCD
D10 // 16 // 11
Ndërfaqja e tastierës: Kjo përdor një tel të vetëm nga kunja e modulit LCD në anën e poshtme të etiketuar "A0", për të lidhur A0 në Arduino. Të paktën kjo ishte shumë e lehtë!
Hapi 4: Duke e bërë çelësin RST të përdorshëm të ngjashëm me 5 çelësat e tjerë
RST mund të lidhet drejtpërdrejt me hyrjen RESTART të Arduino Nano.
Sidoqoftë, nëse doni që çelësi RST të jetë i përdorshëm në softuer për gjëra të tjera, kjo mund të bëhet duke lidhur një rezistencë 15K midis kunjit RST dhe kunjit A0 në anën e poshtme të mburojës së tastierës LCD.
Kjo funksionon si më poshtë: Ekziston një rezistencë 2K midis +5V dhe çelësit të djathtë. Pastaj një zinxhir rezistencash progresivisht më të mëdhenj për secilin çelës tjetër (330R në çelësin UP, 620R në çelësin POSHT, 1K në çelësin E MJESHT dhe 3K3 në çelësin SELECT. Të gjithë çelësat (përfshirë çelësin RST) lidhen me kur lidhen me një konvertues A/D 10 bit (si për Arduino Nano A0) ato japin afërsisht vlerat e mëposhtme:
Djathtas = 0; Lart = 100; Poshtë = 260; Majtas = 410; Zgjidh = 640.
Me rezistencën 15 k në RST, jep rreth 850.
Softueri do të përdorë vlerat rreth pikave të mesme midis këtyre vlerave për të vendosur se cili çelës është shtypur.
Hapi 5: Softuer
Softueri i dobishëm është sigurisht një ushtrim për lexuesin. Sidoqoftë, për të filluar, mund të hidhni një sy në programin tim të testimit. Kam përdorur bibliotekën NewLiquidCrystal, e cila përmban mbështetje për ndërfaqen I2C. Gjithçka funksionoi, pasi bibliotekat të jenë instaluar saktë.
Pika kryesore ishte përmbysja e polaritetit të komandave Backlight OFF dhe ON (për shkak të transistorit në modulin I2C siç shpjegohet në seksionin Përshkrimi i Pjesëve).
P URDITSIM 22 Gusht 2019
Nëse keni probleme me ekranin LCD që nuk punon, ju lutemi kontrolloni adresën I2C të çantës suaj serike duke përdorur një skaner I2C. Një skaner i përshtatshëm është bashkangjitur. Pastaj nëse është e nevojshme rregulloni parametrin e parë në deklaratë
LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7);
Hapi 6: Rishikimi dhe Diskutimi
Siç mund ta shihni, unë kam funksionuar funksionet kryesore.
Synimi im i ardhshëm është ta vendos këtë në një kuti projekti si pjesë e një projekti tjetër. Megjithatë pasi u nisa në këtë rrugë mësova se ka një vështirësi tjetër që nuk e kisha parashikuar.
Vështirësia është se ky modul i tastierës LCD nuk është i instaluar për t'u instaluar në një kuti. Çdo lloj kuti. Butonat e 6 çelësave janë shumë nën nivelin e ekranit LCD, kështu që nëse moduli është montuar në një kuti (p.sh. në kapak) me pjesën e sipërme të panelit të qarkut LCD të rrafshuar me pjesën e poshtme të kapakut, pjesët e sipërme çelësat janë rreth 7mm nën pjesën e sipërme të kapakut.
Zgjidhjet e mundshme janë:
a) Duroni me të. Stërvitni vrimat e hyrjes në kapak dhe përdorni një mjet (p.sh. një gjilpërë të thurur me diametër të përshtatshëm) për të shtypur butonat.
b) Hiqni LCD -në nga pllaka e modulit dhe bëni ndërhyrje kirurgjikale në tastierë në mënyrë që të dy komponentët të fiksohen në kapakun e kutisë së projektit në mënyrë të pavarur (mendoj se akoma mund të ketë një problem me butonat shumë të shkurtër)
c) hiqni butonat ekzistues dhe zëvendësojini ato me butona më të gjatë. Butonat e rinj duhet të jenë rreth 13 mm të lartë në mënyrë që të mund të përdoren përmes kapakut të kutisë së projektit). Çelësat e butonave zëvendësues janë të disponueshëm në një sërë lartësish, përfshirë 13 mm.
d) hidhni modulin e mburojës së tastierës LCD dhe përdorni njësi të veçanta LCD dhe tastiere (dmth. filloni nga e para). Ekziston një gamë e gjerë e njësive të tastierës në dispozicion, megjithatë unë nuk kam parë një me të njëjtën paraqitje me 6 çelësa si në këtë modul (p.sh. Zgjidh, Majtas, Lart, Poshtë, Djathtas, Rinis). Mund të mos jetë një çështje e madhe, por një nga arsyet që fillova me këtë modul ishte se mendova se ky plan urbanistik ishte ai që doja.
Unë jam duke planifikuar të shkoj me zgjidhjen c) më sipër, dhe të shoh se si shkoj.
Një pjesë tjetër e informacionit që mund të jetë me interes:
Me dritën e pasme të ndezur, konsumi aktual i këtij projekti është: Arduino Nano 21.5 ma; Moduli serik 3.6 ma; Moduli LCD 27.5 mA; Gjithsej 52 mA.
Me dritën e pasme të fikur, konsumi aktual i këtij projekti është: Arduino Nano 21.5 ma; Moduli serik 4.6 ma; Moduli LCD 9.8 mA; Gjithsej 36 mA.
Recommended:
Çantë shpine e zgjuar me përcjellje GPS dhe drita automatike: 15 hapa
Çantë shpine e zgjuar me përcjellje GPS dhe drita automatike: Në këtë udhëzues do të bëjmë një çantë shpine të zgjuar që mund të ndjekë pozicionin, shpejtësinë tonë dhe ka drita të automatizuara që mund të na mbajnë të sigurt gjatë natës. Unë përdor 2 sensorë për të zbuluar nëse është mbi supet tuaja për t'u siguruar që nuk fiket kur nuk është e nevojshme,
Çantë shpine Creative Switch: 4 hapa
Çantë shpine Creative Switch:- Bateri 9V- 2 LED blu- Tela- Pëlhurë përçuese
Çantë shpine #2: Sensorë Grove: 6 hapa
Çanta shpine #2: Sensorët Grove: Çantat e shpinës SPIKE Prime janë zgjerime për LEGO Education SPIKE Prime. Pyboard është truri për këtë çantë shpine. Kjo ju lejon të lidhni sensorë Grove me LEGO SPIKE Prime për të lidhur me lehtësi lloje të ndryshme të sensorëve (I2C, analoge, dixhital) në Gro
Çantë shpine e zgjuar: 8 hapa
Çantë e zgjuar: Nëse jeni student si unë, disa prej jush do të lidhen përfundimisht me problemin që unë harroj. Unë nuk kam shumë kohë për të bërë çantën time, dhe para se ta kuptoni, keni harruar diçka. Unë u përpoqa ta bëja jetën time më të lehtë duke bërë një projekt Raspberry pi
Çantë shpine LCD e rrjetëzuar me LCD Smartie: 6 hapa
Çantë shpine në rrjet me LCD Smartie: Ekranet LCD të karakterit që rrotullojnë informacionin janë një mod i zakonshëm i rasteve. Ato zakonisht kontrollohen përmes një porti paralel, një çantë serike ose një shpine USB (më shumë). Ky udhëzues demonstron çantën tonë të shpinës LCD të rrjetit ethernet me burim të hapur. LC