Obsah:

Modul štítu LCD klávesnice 1602 s batohem I2C: 6 kroků
Modul štítu LCD klávesnice 1602 s batohem I2C: 6 kroků

Video: Modul štítu LCD klávesnice 1602 s batohem I2C: 6 kroků

Video: Modul štítu LCD klávesnice 1602 s batohem I2C: 6 kroků
Video: Turn Off Beep on TESmart KVM Switch 2024, Červenec
Anonim
Modul štítu LCD klávesnice 1602 s batohem I2C
Modul štítu LCD klávesnice 1602 s batohem I2C

V rámci většího projektu jsem chtěl mít LCD displej a klávesnici pro navigaci v některých jednoduchých nabídkách. Budu používat mnoho I/O portů na Arduinu pro jiné úlohy, takže jsem chtěl rozhraní I2C pro LCD. Koupil jsem tedy nějaký hardware, skládající se z modulu štítu LCD klávesnice 1602 od DFRobot a anonymního sériového modulu I2C pro LCD. Chci je použít s Arduino Nano. Pak jsem zjistil, že existuje několik výzev, aby tyto komponenty fungovaly společně - ale je to možné. Chci se tedy podělit o své zkušenosti a třeba pomoci i dalším.

Tato fotografie je z pracovní desky, která dokáže zobrazovat zprávy na LCD displeji a identifikovat stisknutí kláves. LCD se ovládá přes rozhraní I2C, včetně podsvícení LCD. Stisknutí kláves přijímá Arduino na pinu A0 (může to být jakýkoli analogový kolík, kromě A4 a A5, které jsou svázány pro rozhraní I2C).

Krok 1: Popis dílů - modul štítu LCD klávesnice

Popis součástí - modul štítu LCD klávesnice
Popis součástí - modul štítu LCD klávesnice

Modul stínění klávesnice LCD se skládá z běžně používaného displeje 1602 LCD namontovaného na desce s plošnými spoji, který drží klíče a který využívá podmnožinu připojení LCD a zpřístupňuje je kolíkům záhlaví na spodní straně desky s plošnými spoji. Chápu, že tato deska je určena k montáži na Arduino Uno nebo podobné a poskytuje správné rozložení pinů, aby fungovalo v tomto prostředí. Koupil jsem tento modul na Ebay od dodavatele v Číně. Piny záhlaví na spodní straně (klávesnice) desky jsou většinou označeny, ale kolíky na horní straně, což je rozhraní LCD, nejsou označeny. Kolíky na samotném LCD jsou však označeny.

Krok 2: Popis dílů - Sériový modul I2C

Popis dílů - Sériový modul I2C
Popis dílů - Sériový modul I2C

Sériový modul má obvyklý 4pinový konektor pro I2C a sada neznačených kolíků záhlaví, které chápu, jsou určeny k zapojení přímo do spodní části modulu LCD. Studiem štítků na LCD jsem dokázal identifikovat funkce pinů na sériovém modulu.

Tento modul je založen na IC PCF8574T, který ukončuje protokol I2C, má 3 piny pro řízení adresy (20 až 27) a má 8 digitálních vstupních/výstupních pinů P0 až P7. Podle datového listu PCF8574T má každý I/O pin FET, který jej stáhne na zem pro LOW stav, a může klesnout minimálně o 20 mA. Ve vysokém stavu má přechodový aktivní tah a poté pokračující stahovací proud asi 0,1 mA.

V tomto modulu jsou všechny digitální I/O piny, kromě P3, jednoduše vyvedeny na kolíky záhlaví (vpravo na fotografii). V případě P3 je připojen k základně tranzistoru (viditelný na fotografii v pravé horní oblasti těsně pod označením „LED“). Vysílač tohoto tranzistoru je připojen k Vss (uzemnění) a kolektor je připojen k vývodovému kolíku 16, kde jej lze použít k ovládání podsvícení LCD. Kvůli tranzistoru je logický stav obrácen vzhledem k stavu předpokládanému v softwarové knihovně. To znamená, že podsvícení LCD je zapnuto, když je kolík P3 nízko, a VYPNUTO, když je kolík P3 vysoký.

Štítek na tranzistoru říká L6, což podle mého výzkumu pravděpodobně z něj činí MMBC1623L6, který má minimální proudový zisk 200. S 0,1 mA základního proudu by měl být schopen udržovat na svém kolektoru podmínku LOW (modul Pin 16) s kolektorovým proudem alespoň 20 mA.

Tento modul má navíc 10K potenciometr zapojený mezi +5 a uzemnění, jehož variabilní vývod je vyveden na pin 3 (třetí odspodu na fotografii). Když je připojen přímo k LCD, tento pot bude ovládat kontrast LCD. Tuto funkci však zajišťuje samostatný podobný potenciometr na stínění LCD, takže tento pot na sériovém modulu nemá žádnou funkci.

Nepodařilo se mi najít žádné připojení k INT pinu PCF8574T.

AKTUALIZACE 22. srpna 2019

Jak bylo uvedeno výše, PCF8574 má 3 piny pro ovládání adresy. Zdá se, že jsou vyvedeny na podložky na desce batohu, kde jsou označeny A0, A1 a A2. Jsou vidět na fotografii. Netestoval jsem to, ale zdá se téměř jisté, že přemostěním jednoho nebo více těchto kolíků na sousední pady lze adresu I2C ovládat v rozsahu od 20 do 27. Kromě toho existuje druhé téměř totožné zařízení, PCF8574A, který má stejnou funkčnost jako PCF8574, ale pokrývá rozsah adres od 0x38 do 0x3F.

Adresu, kterou vaše zařízení skutečně používá, lze zkontrolovat pomocí I2CScanner. K dispozici je několik jednoduchých skenerů I2C z různých zdrojů. Ten na https://github.com/farmerkeith/I2CScanner také identifikuje některá nalezená zařízení.

Krok 3: Připojení

Připojení
Připojení

Díky ChaitanyaM17, který poskytl Fritzingův diagram, který zobrazuje níže popsaná spojení.

Napájení:

Modul LCD má na spodní straně kolík označený „5,0 V“. Vpravo vedle toho jsou dva neoznačené kolíky, které jsou oba broušené.

Sériový modul s rozhraním I2C drží na levém konci a na spodním okraji je 16 pinů. První z nich je uzemněný a druhý z nich je +5v. Další možností je použít k napájení spodní dva piny na rozhraní I2C, ale shledal jsem pohodlnější použít piny, jak je popsáno výše.

Rozhraní I2C. Na sériovém modulu je horní pin SCL (hodiny) a jde do Arduino A5. Druhý pin dolů je SDA (data) a jde do Arduino A4.

Rozhraní pro tisk LCD. Mezi sériovým modulem a štítem klávesnice LCD je 6 spojení, všechna mezi piny bez štítků. Identifikuji je na modulu LCD počítáním zprava doleva, přičemž první kolík je 1. K dispozici jsou 2 bloky po 8, takže jdou od 1 do 16. Identifikuji je na sériovém modulu I2C počítáním zleva do Správně, je jich také 16. Kromě toho dávám každému vodiči štítek, což je ekvivalentní pin na Arduinu, který je normálně spojen s touto funkcí, v případě přímého připojení bez sériového modulu.

6 datových připojení je tedy:

Ekvivalent Arduina // 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ádání podsvícení LCD: Toto používá ještě jedno připojení:

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

D10 // 16 // 11

Rozhraní klávesnice: K připojení A0 na Arduinu se používá jediný vodič z kolíku modulu LCD na spodní straně označeného „A0“. Alespoň to bylo docela snadné!

Krok 4: Zajištění použitelnosti klíče RST podobně jako u ostatních 5 klíčů

RST lze připojit přímo ke vstupu RESTART Arduino Nano.

Pokud však chcete, aby byl klíč RST použitelný v softwaru pro jiné věci, lze to provést připojením 15K odporu mezi pin RST a pin A0 na spodní straně štítu klávesnice LCD.

Funguje to následovně: Mezi +5V a pravým tlačítkem je 2K odpor. Poté řetězec postupně větších rezistorů pro každý z dalších klíčů (330R na klávesu UP, 620R na klávesu DOWN, 1K na klávesu LEFT a 3K3 na klávesu SELECT. Všechny klíče (včetně klíče RST) se připojují k po připojení k 10bitovému A/D převodníku (jako u Arduino Nano A0) poskytují přibližně následující hodnoty:

Vpravo = 0; Nahoru = 100; Dolů = 260; Vlevo = 410; Vyberte = 640.

S odporem 15 k vůči RST poskytuje asi 850.

Software použije hodnoty kolem středů mezi těmito hodnotami, aby rozhodl, která klávesa byla stisknuta.

Krok 5: Software

Užitečný software je samozřejmě cvičení pro čtenáře. Abyste však mohli začít, můžete se podívat na můj testovací software. Použil jsem knihovnu NewLiquidCrystal, která obsahuje podporu pro rozhraní I2C. Všechno to fungovalo, jakmile mám správně nainstalované knihovny.

Hlavním bodem bylo obrátit polaritu příkazů VYP a ZAP podsvícení (kvůli tranzistoru na modulu I2C, jak je vysvětleno v části Popis dílů).

AKTUALIZACE 22. srpna 2019

Pokud máte problémy s nefunkčním LCD displejem, zkontrolujte prosím I2C adresu vašeho sériového batohu pomocí skeneru I2C. Je připojen vhodný skener. V případě potřeby pak upravte první parametr v příkazu

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

Krok 6: Kontrola a diskuse

Jak vidíte, hlavní funkce fungují.

Mým dalším záměrem je vložit to do rámečku projektu jako součást jiného projektu. Když jsem se však vydal touto cestou, zjistil jsem, že je tu další obtíž, se kterou jsem nepočítal.

Problém je v tom, že tento modul LCD klávesnice není nastaven pro instalaci do krabice. Jakýkoli druh krabice. Tlačítka 6 kláves jsou hluboko pod úrovní obrazovky LCD, takže pokud je modul namontován v krabici (např. Ve víku), přičemž horní část desky plošných spojů LCD je zarovnána se spodní stranou víka, vrcholy klíčů je asi 7 mm pod horní částí víka.

Možná řešení jsou:

a) Vydrž to. Vyvrtejte přístupové otvory ve víku a pomocí nástroje (např. Uříznuté pletací jehly vhodného průměru) stiskněte tlačítka.

b) Vyjměte LCD z desky plošných spojů a proveďte operaci na klávesnici, aby mohly být obě součásti připevněny k víku projektového boxu nezávisle (myslím, že stále může být problém s příliš krátkými tlačítky)

c) odstraňte stávající tlačítka a nahraďte je vyššími tlačítky. Nová tlačítka musí být vysoká přibližně 13 mm, aby je bylo možné ovládat víkem projektového boxu). Náhradní tlačítkové spínače jsou snadno dostupné v různých výškách, včetně 13 mm.

d) zlikvidujte modul stínění klávesnice LCD a použijte samostatné jednotky LCD a klávesnice (tj. začněte znovu). K dispozici je široká škála jednotek klávesnice, ale neviděl jsem žádnou se stejným rozložením 6 kláves jako na tomto modulu (tj. Select, Left, Up, Down, Right, Restart). Možná to není velký problém, ale jedním z důvodů, proč jsem s tímto modulem začínal, bylo, že jsem si myslel, že toto rozložení kláves je to, co jsem chtěl.

Mám v plánu jít s řešením c) výše a uvidíme, jak půjdu.

Další úryvek informací, které by mohly být zajímavé:

Při zapnutém podsvícení je aktuální spotřeba tohoto projektu: Arduino Nano 21,5 ma; Sériový modul 3,6 ma; LCD modul 27,5 mA; Celkem 52 mA.

Při vypnutém podsvícení je aktuální spotřeba tohoto projektu: Arduino Nano 21,5 ma; Sériový modul 4,6 ma; LCD modul 9,8 mA; Celkem 36 mA.

Doporučuje: