Tartalomjegyzék:
- 1. lépés: Alkatrészleírás - LCD kezelőpajzs modul
- 2. lépés: Alkatrészleírás - I2C soros modul
- 3. lépés: Kapcsolatok
- 4. lépés: Az RST kulcs használhatóvá tétele a többi 5 kulcshoz hasonlóan
- 5. lépés: Szoftver
- 6. lépés: Áttekintés és megbeszélés
Videó: 1602 LCD billentyűzetpajzs modul I2C hátizsákkal: 6 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
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
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
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
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:
Led Reactie Spel Met LCD billentyűzetpajzs: 4 lépés
Led Reactie Spel Met Lcd billentyűzetpajzs: Een leuk spelletje maken voor school met een arduino? Klinkt leuk! Dan moet je eerst een idee hebben voor een spel. Ik dacht meteen aan spellen waar je snel op een knop moet drukken als hij licht geeft. Dus ik keek op het internet en vond een projec
I2C / IIC LCD kijelző - SPI LCD használata az I2C LCD kijelzőhöz Az SPI to IIC modul használata Arduino -val: 5 lépés
I2C / IIC LCD kijelző | Használjon SPI LCD -t az I2C LCD -kijelzőhöz Az SPI -IIC modul használata Arduino -val: Sziasztok, mivel egy normál SPI LCD 1602 -nek túl sok vezetékét kell csatlakoztatni, ezért nagyon nehéz összekapcsolni az arduino -val, de a piacon elérhető egy modul konvertálja az SPI kijelzőt IIC kijelzővé, így csak 4 vezetéket kell csatlakoztatnia
I2C / IIC LCD kijelző - Az SPI LCD átalakítása I2C LCD kijelzővé: 5 lépés
I2C / IIC LCD kijelző | Konvertálja az SPI LCD -t I2C LCD kijelzővé: az spi lcd kijelző használata túl sok kapcsolatot igényel, ami nagyon nehéz, ezért találtam egy modult, amely képes átalakítani az i2c LCD -t spi lcd -re, így kezdjük
I2C Háttérvilágítás vezérlés egy LCD kijelzőn 1602 /2004 vagy HD44780 stb.: 4 lépés
I2C háttérvilágítás vezérlés egy LCD kijelzőn 1602 /2004 vagy HD44780 stb.: Ez az utasítás megmutatja, hogyan szabályozhatja az LCD kijelző háttérvilágítását az I2C ADC modul segítségével. A kontraszt ugyanúgy szabályozható a vágási potenciométer eltávolítása után
DIY LCD billentyűzetpajzs az Arduino Uno számára: 6 lépés (képekkel)
DIY LCD billentyűzetpajzs az Arduino Uno számára: sokat kerestem a DIY LCD billentyűzet pajzsának elkészítéséhez, és nem találtam egyet, ezért készítettem egyet, és szeretném megosztani veletek