Obsah:

Modul štítu klávesnice LCD 1602 s batohom I2C: 6 krokov
Modul štítu klávesnice LCD 1602 s batohom I2C: 6 krokov

Video: Modul štítu klávesnice LCD 1602 s batohom I2C: 6 krokov

Video: Modul štítu klávesnice LCD 1602 s batohom I2C: 6 krokov
Video: Arduino návody | Dotyková kapacitní klávesnice TTP229 2024, November
Anonim
Modul štítu klávesnice LCD 1602 s batohom I2C
Modul štítu klávesnice LCD 1602 s batohom I2C

V rámci väčšieho projektu som chcel mať LCD displej a klávesnicu na navigáciu v niektorých jednoduchých ponukách. Budem používať veľa I/O portov na Arduine na iné úlohy, takže som chcel rozhranie I2C pre LCD. Kúpil som teda nejaký hardvér, pozostávajúci z modulu štítu LCD klávesnice 1602 od DFRobot a anonymného sériového modulu I2C pre LCD displeje. Chcem ich použiť s Arduino Nano. Potom som zistil, že existuje niekoľko výziev, aby tieto komponenty spolupracovali - ale je to možné. Preto sa chcem podeliť o svoje skúsenosti a možno pomôcť ďalším.

Táto fotografia je z pracovného dosky, ktorá môže zobrazovať správy na displeji LCD a identifikovať stlačenia klávesov. LCD sa ovláda pomocou rozhrania I2C vrátane podsvietenia LCD. Stlačenie klávesu prijíma Arduino na kolíku A0 (môže to byť ktorýkoľvek z analógových kolíkov, okrem A4 a A5, ktoré sú viazané na rozhranie I2C).

Krok 1: Popis dielov - modul štítu LCD klávesnice

Popis dielov - modul štítu LCD klávesnice
Popis dielov - modul štítu LCD klávesnice

Modul štítu klávesnice LCD pozostáva z bežne používaného LCD displeja 1602, ktorý je namontovaný na doske s plošnými spojmi, na ktorej sú uložené kľúče a ktorá preberá podmnožinu pripojení LCD a sprístupňuje ich kolíkom záhlavia na spodnej strane dosky plošných spojov. Rozumiem, že táto doska je určená na montáž na vrch Arduino Uno alebo podobného typu a poskytuje správne rozloženie pinov, aby fungovalo v tomto prostredí. Tento modul som kúpil na Ebay od predajcu v Číne. Kolíky záhlavia na spodnej strane (klávesnici) dosky sú väčšinou označené, ale kolíky na hornej strane, ktorou je rozhranie LCD, nie sú označené. Kolíky na samotnom LCD sú však označené.

Krok 2: Popis dielov - sériový modul I2C

Popis dielov - Sériový modul I2C
Popis dielov - Sériový modul I2C

Sériový modul má obvyklý 4-kolíkový konektor pre I2C a sada neoznačených kolíkov záhlavia, ktorým rozumiem, je určená na zapojenie priamo do spodnej časti modulu LCD. Štúdiom štítkov na displeji LCD som mohol identifikovať funkcie pinov na sériovom module.

Tento modul je založený na IC PCF8574T, ktorý ukončuje protokol I2C, má 3 piny na riadenie adries (20 až 27) a má 8 digitálnych vstupných/výstupných pinov P0 až P7. Podľa listu s údajmi o PCF8574T má každý I/O pin FET, ktorý ho potiahne na zem do stavu LOW a môže klesnúť najmenej o 20 mA. Vo vysokom stave má prechodný aktívny príťah a potom pokračujúci príťahový prúd asi 0,1 mA.

V tomto module sú všetky digitálne I/O piny, okrem P3, jednoducho vyvedené na kolíky záhlavia (vpravo na fotografii). V prípade P3 je pripojený k základni tranzistora (viditeľný na fotografii v pravej hornej časti tesne pod štítkom „LED“). Vysielač tohto tranzistora je pripojený k Vss (uzemnenie) a kolektor je pripojený k kolíku 16 konektora, kde je možné použiť na ovládanie podsvietenia LCD. Vďaka tranzistoru je logický stav obrátený vzhľadom na stav predpokladaný v softvérovej knižnici. To znamená, že podsvietenie LCD je zapnuté, keď je kolík P3 nízky, a VYPNUTÉ, ak je kolík P3 vysoký.

Štítok na tranzistore hovorí L6, čo podľa môjho výskumu pravdepodobne robí z neho MMBC1623L6, ktorý má minimálny prúdový zisk 200. So základným prúdom 0,1 mA by mal byť schopný udržiavať na svojom kolektore nízky stav (modul pin 16) s kolektorovým prúdom najmenej 20 mA.

Tento modul má navyše 10K potenciometer zapojený medzi +5 a uzemnenie, ktorého variabilný vodič je vyvedený na pin 3 (tretí zospodu na fotografii). Keď je tento hrniec pripojený priamo k LCD, bude ovládať kontrast LCD. Túto funkciu však zaisťuje samostatný podobný potenciometr na kryte LCD, takže tento hrniec na sériovom module nemá žiadnu funkciu.

Nepodarilo sa mi nájsť žiadne spojenie s kolíkom INT počítača PCF8574T.

AKTUALIZÁCIA 22. augusta 2019

Ako bolo uvedené vyššie, PCF8574 má 3 kolíky na ovládanie adresy. Zdá sa, že sú vynesené na podložky na doske batohu, kde sú označené A0, A1 a A2. Môžu byť vidieť na fotografii. Toto som netestoval, ale zdá sa byť takmer isté, že premostením jedného alebo viacerých týchto pinov na susedné pady je možné adresu I2C ovládať v rozsahu od 20 do 27. Okrem toho existuje druhé takmer identické zariadenie, PCF8574A, ktorý má rovnakú funkčnosť ako PCF8574, ale pokrýva rozsah adries od 0x38 do 0x3F.

Adresu, ktorú vaše zariadenie skutočne používa, je možné skontrolovať pomocou I2CScanner. K dispozícii je niekoľko jednoduchých skenerov I2C z rôznych zdrojov. Tento na https://github.com/farmerkeith/I2CScanner tiež identifikuje niektoré z nájdených zariadení.

Krok 3: Pripojenia

Pripojenia
Pripojenia

Vďaka ChaitanyaM17, ktorý poskytol Fritzingov diagram, ktorý zobrazuje prepojenia, popísané nižšie.

Moc:

Modul LCD má na spodnej strane kolík označený „5,0 V“. Vpravo vedľa sú dva neoznačené kolíky, ktoré sú obidva zabrúsené.

Sériový modul s rozhraním I2C drží na ľavom konci a na dolnom okraji je 16 kolíkov. Prvý z nich je uzemnený a druhý z nich je +5v. Ďalšou možnosťou je použiť nižšie dva piny na rozhraní I2C na napájanie, ale zdalo sa mi pohodlnejšie použiť piny, ako je popísané vyššie.

Rozhranie I2C. Na sériovom module je horný pin SCL (hodiny) a ide do Arduino A5. Druhý pin dole je SDA (dáta) a ide do Arduino A4.

Rozhranie pre tlač LCD. Medzi sériovým modulom a štítom klávesnice LCD je 6 spojení, všetky medzi kolíkmi bez štítkov. Identifikujem ich na LCD module počítaním sprava doľava, pričom prvý pin je 1. Existujú 2 bloky po 8, takže idú od 1 do 16. Identifikujem ich na sériovom module I2C počítaním zľava do Správne, je ich tiež 16. Okrem toho dávam každému vodiču štítok, čo je ekvivalentný kolík na Arduine, ktorý je normálne spojený s touto funkciou, v prípade priameho pripojenia bez sériového modulu.

6 dátových spojení je teda:

Ekvivalent k Arduinu // Pin sériového modulu // Pin modulu LCD klávesnice

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

Ovládanie podsvietenia LCD: Používa to ešte jedno pripojenie:

Ekvivalent pre Arduino // Pin sériového modulu // Pin modulu LCD klávesnice

D10 // 16 // 11

Rozhranie klávesnice: Na pripojenie A0 na Arduino sa používa jediný vodič z kolíka modulu LCD na spodnej strane označeného „A0“. Aspoň to bolo celkom jednoduché!

Krok 4: Zabezpečenie použiteľnosti kľúča RST podobne ako ostatných 5 klávesov

RST je možné pripojiť priamo k RESTART vstupu Arduino Nano.

Ak však chcete, aby bol kľúč RST v softvéri použiteľný aj na iné účely, je to možné tak, že medzi pin RST a pin A0 na spodnej strane štítu klávesnice LCD pripojíte odpor 15K.

Funguje to nasledovne: Medzi +5V a pravým klávesom je 2K odpor. Potom reťazec postupne väčších rezistorov pre každý z ďalších kľúčov (330R na klávesu UP, 620R na kláves DOWN, 1K na klávesu LEFT a 3K3 na klávesu SELECT. Všetky kľúče (vrátane kľúča RST) sa pripájajú k uzemnenie. Po pripojení k 10 -bitovému A/D prevodníku (ako pre Arduino Nano A0) poskytujú približne nasledujúce hodnoty:

Vpravo = 0; Up = 100; Dole = 260; Vľavo = 410; Vyberte = 640.

S odporom 15 k voči RST prináša približne 850.

Softvér použije hodnoty okolo stredných bodov medzi týmito hodnotami, aby rozhodol, ktorá klávesa bola stlačená.

Krok 5: Softvér

Užitočný softvér je samozrejme cvičením pre čitateľa. Aby ste však mohli začať, môžete sa pozrieť na môj testovací softvér. Použil som knižnicu NewLiquidCrystal, ktorá obsahuje podporu rozhrania I2C. Všetko fungovalo, keď mám knižnice správne nainštalované.

Hlavným cieľom bolo obrátiť polaritu príkazov OFF a ON podsvietenia (kvôli tranzistoru na module I2C, ako je vysvetlené v časti Popis dielov).

AKTUALIZÁCIA 22. augusta 2019

Ak máte problémy s nefunkčným LCD displejom, skontrolujte adresu I2C vášho sériového batohu pomocou skenera I2C. Je pripojený vhodný skener. Potom v prípade potreby upravte prvý parameter vo výkaze

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

Krok 6: Kontrola a diskusia

Ako vidíte, hlavné funkcie fungujú.

Mojím ďalším zámerom je vložiť to do rámčeka projektu ako súčasť iného projektu. Keď som sa však vydal touto cestou, zistil som, že je tu ešte jedna ťažkosť, s ktorou som nepočítal.

Problém je v tom, že tento modul klávesnice LCD nie je nastavený na inštaláciu do škatule. Akýkoľvek druh škatule. Tlačidlá 6 klávesov sú hlboko pod úrovňou obrazovky LCD, takže ak je modul namontovaný v krabici (napr. Vo veku), horná časť dosky plošných spojov LCD je v jednej rovine so spodnou stranou veka, vrchy klávesov je asi 7 mm pod hornou časťou veka.

Možné riešenia sú:

a) Zmier sa s tým. Vyvŕtajte prístupové otvory vo veku a pomocou nástrojov (napr. Zrezanej pletacej ihly vhodného priemeru) stláčajte tlačidlá.

b) Vyberte LCD z obvodovej dosky modulu a vykonajte operáciu na klávesnici, aby sa tieto dve súčasti dali nezávisle pripevniť na veko projektovej skrinky (myslím, že stále môže byť problém s príliš krátkymi tlačidlami)

c) odstráňte existujúce tlačidlá a nahraďte ich vyššími tlačidlami. Nové tlačidlá musia byť vysoké približne 13 mm, aby sa dali ovládať vekom projektovej skrinky). Náhradné tlačidlové spínače sú ľahko dostupné v rôznych výškach vrátane 13 mm.

d) zahoďte modul štítu klávesnice LCD a používajte samostatné jednotky LCD a klávesnice (tj začnite odznova). K dispozícii je široká škála klávesnicových jednotiek, nevidel som však žiadnu s rovnakým rozložením 6 kláves ako v tomto module (tj. Vybrať, Vľavo, Hore, Dole, Vpravo, Reštartovať). Nemusí to byť veľký problém, ale jedným z dôvodov, prečo som s týmto modulom začínal, bolo to, že som si myslel, že toto rozloženie kláves je to, čo som chcel.

Plánujem ísť s riešením c) vyššie a uvidíme, ako pôjdem.

Ďalší úryvok informácií, ktoré môžu byť zaujímavé:

Pri zapnutom podsvietení je aktuálna spotreba tohto projektu: Arduino Nano 21,5 ma; Sériový modul 3,6 ma; LCD modul 27,5 mA; Spolu 52 mA.

Pri vypnutom podsvietení je aktuálna spotreba tohto projektu: Arduino Nano 21,5 ma; Sériový modul 4,6 ma; LCD modul 9,8 mA; Celkom 36 mA.

Odporúča: