Tartalomjegyzék:

1602 LCD billentyűzetpajzs modul I2C hátizsákkal: 6 lépés
1602 LCD billentyűzetpajzs modul I2C hátizsákkal: 6 lépés

Videó: 1602 LCD billentyűzetpajzs modul I2C hátizsákkal: 6 lépés

Videó: 1602 LCD billentyűzetpajzs modul I2C hátizsákkal: 6 lépés
Videó: LCD Keypad Shield для Arduino, обзор и работа. 2024, November
Anonim
1602 LCD billentyűzetpajzs modul I2C hátizsákkal
1602 LCD billentyűzetpajzs modul I2C hátizsákkal

Egy nagyobb projekt részeként szerettem volna egy LCD kijelzőt és egy billentyűzetet néhány egyszerű menü navigálásához. Az Arduino sok I/O portját fogom használni más munkákhoz, ezért szerettem volna egy I2C interfészt az LCD -hez. Így vettem egy hardvert, amely egy 1602 -es LCD billentyűzet -pajzsmodult tartalmaz a DFRobot -tól és egy névtelen I2C soros modult LCD -khez. Ezeket szeretném használni egy Arduino Nano készülékkel. Aztán rájöttem, hogy vannak bizonyos kihívások ezen összetevők együttes működtetéséhez - de lehetséges. Ezért szeretném megosztani tapasztalataimat, és talán segíteni másoknak.

Ez a fotó a működő kenyértábláról készült, amely üzeneteket jeleníthet meg az LCD -n és azonosíthatja a gombnyomásokat. Az LCD vezérlése az I2C interfészen keresztül történik, beleértve az LCD háttérvilágítást is. A billentyűk lenyomását az Arduino kapja az A0 érintkezőn (ez lehet bármely analóg csap, kivéve az A4 és A5 típusokat, amelyek az I2C interfészhez vannak kötve).

1. lépés: Alkatrészleírás - LCD kezelőpajzs modul

Alkatrészleírás - LCD kezelőpajzs modul
Alkatrészleírás - LCD kezelőpajzs modul

Az LCD billentyűzet -árnyékoló modul egy általánosan használt 1602 LCD -ből áll, amely a kulcsokat tartó áramköri lap tetejére van felszerelve, és amely az LCD -kapcsolatok egy részhalmazát veszi át, és hozzáférhetővé teszi az áramköri lap alján található fejlécekhez. Tudomásul veszem, hogy ezt a táblát egy Arduino Uno vagy hasonló eszköz tetejére kell felszerelni, és megfelelő tűelrendezést biztosít ahhoz, hogy az adott környezetben működjön. Ezt a modult az Ebay -en vásároltam egy kínai eladótól. A tábla alsó (billentyűzet) oldalán található fejlécek többnyire címkével vannak ellátva, de a felső oldalon lévő érintkezők, azaz az LCD interfész, nincsenek megjelölve. Azonban az LCD -n lévő csapok fel vannak tüntetve.

2. lépés: Alkatrészleírás - I2C soros modul

Alkatrészleírás - I2C soros modul
Alkatrészleírás - I2C soros modul

A soros modul a szokásos 4 tűs fejléccel rendelkezik az I2C-hez, és egy sor felirat nélküli fejléc-csap, amelyek megértésem szerint közvetlenül az LCD-modul aljába csatlakoztathatók. Az LCD -n található címkéket tanulmányozva sikerült azonosítanom a soros modul tüskéinek funkcióit.

Ez a modul a PCF8574T IC -n alapul, amely lezárja az I2C protokollt, 3 tűvel rendelkezik a címvezérléshez (20-27), és 8 digitális bemeneti/kimeneti tűvel rendelkezik, P0 -P7. A PCF8574T adatlapja szerint minden I/O csapnak van egy FET -je, amely le tudja húzni a földre az LOW állapothoz, és legalább 20 mA -t tud süllyeszteni. Magas állapotban átmeneti aktív felhúzással, majd körülbelül 0,1 mA folyamatos felhúzóárammal rendelkezik.

Ezen a modulon a P3 kivételével az összes digitális I/O érintkező egyszerűen a fejlécbe kerül (a kép jobb oldalán). A P3 esetében egy tranzisztor bázisához van csatlakoztatva (látható a fotón a jobb felső sarokban, közvetlenül a "LED" címke alatt). Ennek a tranzisztornak az emittere a Vss -hez (föld) van csatlakoztatva, a kollektor pedig a 16 fejrészhez, ahol az LCD háttérvilágításának vezérlésére használható. A tranzisztor miatt a logikai állapot megfordul a szoftverkönyvtárban feltételezetthez képest. Vagyis az LCD háttérvilágítása bekapcsol, ha a P3 érintkező alacsony, és KI, ha a P3 érintkező magas.

A tranzisztoron található címke L6 -ot tartalmaz, ami a kutatásom szerint valószínűleg MMBC1623L6 -ot eredményez, amelynek minimális áramerőssége 200. 0,1 mA -es alapáram mellett képesnek kell lennie arra, hogy alacsony szinten tartsa a kollektorát (16 -os tű) legalább 20 mA kollektorárammal.

Ezenkívül ez a modul 10K potenciométert tartalmaz a +5 és a Ground között, amelynek változó vezetéke a 3 -as érintkezőre kerül (a fénykép alján a harmadik). Ha közvetlenül az LCD -hez van csatlakoztatva, ez az edény szabályozza az LCD kontrasztját. Ezt a funkciót azonban egy különálló hasonló edény biztosítja az LCD -kijelzőn, tehát ennek a soros modulnak nincs funkciója.

Nem találtam kapcsolatot a PCF8574T INT tűjével.

FRISSÍTÉS 2019. augusztus 22

Amint fentebb említettük, a PCF8574 -nek 3 címvezérlő csapja van. Ezeket úgy tűnik, hogy a hátizsák fedélzetén lévő párnákra helyezik, ahol A0, A1 és A2 címkével vannak ellátva. A fotón láthatók. Ezt még nem teszteltem, de szinte biztosnak tűnik, hogy egy vagy több ilyen csap áthidalásával a szomszédos párnákhoz az I2C cím 20 és 27 között szabályozható. Továbbá létezik egy második, szinte azonos eszköz, PCF8574A, amely ugyanolyan funkcionalitással rendelkezik, mint a PCF8574, de lefedi a címtartományt 0x38 és 0x3F között.

A készülék által ténylegesen használt címet egy I2CScanner segítségével ellenőrizheti. Számos egyszerű I2C szkenner érhető el különböző forrásokból. Ez a https://github.com/farmerkeith/I2CScanner webhelyen szintén azonosít néhány talált eszközt.

3. lépés: Kapcsolatok

Kapcsolatok
Kapcsolatok

Köszönet ChaitanyaM17 -nek, aki megadta a Fritzing diagramot, amely az alábbiakban leírt kapcsolatokat ábrázolja.

Erő:

Az LCD modul alsó oldalán "5.0V" feliratú tű található. Jobb oldalon, mellette két jelöletlen csap van, amelyek mindkettő köszörült.

A soros modult az I2C interfésszel a bal végén tartva, 16 érintkező van az alsó szélén. Ezek közül az első őrölt, a második pedig +5v. Egy másik lehetőség az I2C interfész alsó két csapjának használata az áramellátáshoz, de kényelmesebbnek találtam a csapokat a fent leírt módon használni.

I2C interfész. A soros modulon a felső csap SCL (óra), és az Arduino A5 -re kerül. A második tű lefelé az SDA (adat), és az Arduino A4 -hez megy.

LCD nyomtatási felület. A soros modul és az LCD kezelőpajzs között 6 csatlakozás van, mindegyik címke nélküli csapok között. Azonosítom őket az LCD -modulon, jobbról balra számolva, az első tűvel 1 -et. 2 db 8 -as blokk van, tehát 1 -től 16 -ig terjednek. Az I2C soros modulon azonosítom őket balról számítva Igaz, ezekből is van 16. Ezenkívül minden vezetékhez adok egy címkét, amely az Arduino megfelelő tűje, amely általában ehhez a funkcióhoz kapcsolódik, ha közvetlen kapcsolat van a soros modul nélkül.

Tehát a 6 adatkapcsolat:

Arduino megfelelője // Soros modul tű // LCD billentyűzet modul tűje

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

LCD háttérvilágítás vezérlés: Ez még egy kapcsolatot használ:

Arduino megfelelője // Soros modul tű // LCD billentyűzet modul tűje

D10 // 16 // 11

Billentyűzet interfész: Ez egyetlen vezetéket használ az LCD -modul tűjéről az alsó oldalon, "A0" felirattal, az A0 -n az Arduino -n. Ez legalább nagyon könnyű volt!

4. lépés: Az RST kulcs használhatóvá tétele a többi 5 kulcshoz hasonlóan

Az RST közvetlenül csatlakoztatható az Arduino Nano RESTART bemenetéhez.

Ha azonban azt szeretné, hogy az RST kulcs más célokra is használható legyen a szoftverben, akkor ezt úgy teheti meg, hogy egy 15K ellenállást csatlakoztat az RST és az A0 érintkező közé az LCD billentyűzetvédő alsó oldalán.

Ez a következőképpen működik: 2K ellenállás van +5V és a jobb gomb között. Ezután fokozatosan nagyobb ellenállások láncolata a többi gombhoz (330R az UP gombhoz, 620R a DOWN billentyűhöz, 1K a BALRA gombhoz és 3K3 a SELECT gombhoz. Minden kulcs (beleértve az RST gombot) csatlakozik 10 bites A/D átalakítóhoz csatlakoztatva (mint az Arduino Nano A0 esetében) a következő értékeket adják meg:

Jobb = 0; Fel = 100; Lefelé = 260; Bal = 410; Válassza ki = 640.

Az RST 15 k -os ellenállásával körülbelül 850 -et szállít.

A szoftver az értékek középpontja körüli értékeket használja annak eldöntésére, hogy melyik gombot nyomja meg.

5. lépés: Szoftver

A hasznos szoftver természetesen gyakorlat az olvasó számára. A kezdéshez azonban megnézheti a tesztszoftveremet. A NewLiquidCrystal könyvtárat használtam, amely támogatja az I2C felületet. Minden csak működött, miután megfelelően telepítettem a könyvtárakat.

A lényeg az volt, hogy megfordítsuk a háttérvilágítás KI és BE parancsok polaritását (az I2C modul tranzisztorának köszönhetően, az Alkatrészleírás részben leírtak szerint).

FRISSÍTÉS 2019. augusztus 22

Ha problémái vannak azzal, hogy az LCD kijelző nem működik, ellenőrizze a soros hátizsák I2C címét I2C szkenner segítségével. Megfelelő szkenner van csatlakoztatva. Ezután szükség esetén módosítsa az utasítás első paraméterét

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

6. lépés: Áttekintés és megbeszélés

Mint látható, a fő funkciók működnek.

A következő szándékom az, hogy egy másik projekt részeként beteszem ezt a projektdobozba. Miután azonban elindultam ezen az úton, megtudtam, hogy van még egy nehézség, amire nem számítottam.

A nehézség az, hogy ez az LCD billentyűzet modul nincs beállítva dobozba történő telepítésre. Bármilyen doboz. A 6 gomb gombjai jóval az LCD képernyő szintje alatt vannak, így ha a modult egy dobozba (pl. A fedélbe) szerelik fel, és az LCD áramköri lap teteje egybeesik a fedél alsó oldalával, a kulcsok körülbelül 7 mm -rel a fedél teteje alatt vannak.

A lehetséges megoldások a következők:

a) Kibírja. Fúrjon hozzáférési lyukakat a fedélbe, és használjon szerszámot (pl. Vágott, megfelelő átmérőjű kötőtűt) a gombok megnyomásához.

b) Távolítsa el az LCD -t a modul áramköri lapjáról, és végezzen műtétet a billentyűzeten, hogy a két komponenst önállóan rögzíthesse a projektdoboz fedelére (azt hiszem, továbbra is probléma lehet a túl rövid gombokkal)

c) távolítsa el a meglévő gombokat, és cserélje ki őket magasabb gombokra. Az új gomboknak körülbelül 13 mm magasnak kell lenniük, hogy a projektdoboz fedelén keresztül is működtethetők legyenek). A cseregombos kapcsolók számos magasságban elérhetők, beleértve a 13 mm -t is.

d) dobja ki az LCD kezelőpajzs modult, és használjon külön LCD és kezelőegységeket (azaz kezdje elölről). A kezelőegységek széles skálája áll rendelkezésre, de nem láttam olyat, amelyik 6 gombos elrendezésű lenne, mint ezen a modulon (pl. Kiválasztás, Bal, Fel, Le, Jobb, Újraindítás). Lehet, hogy nem nagy probléma, de az egyik ok, amiért ezzel a modullal kezdtem, az volt, hogy azt hittem, hogy ez a kulcselrendezés az, amit szeretnék.

Tervezem, hogy a fenti c) megoldással foglalkozom, és meglátom, hogyan haladok.

Egy másik információrészlet, amely érdekes lehet:

Bekapcsolt háttérvilágítással a projekt jelenlegi fogyasztása: Arduino Nano 21,5 ma; Soros modul 3,6 ma; LCD modul 27,5 mA; Összesen 52 mA.

A háttérvilágítás kikapcsolt állapotában a projekt jelenlegi fogyasztása: Arduino Nano 21,5 ma; Soros modul 4,6 ma; LCD modul 9,8 mA; Összesen 36 mA.

Ajánlott: