Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az LCD-karakteres kijelzők hasznosak az információk külső monitor nélkül történő megjelenítéséhez. A gyakori LCD-karakterkijelzők közvetlenül csatlakoztathatók a GPIO-csapokhoz, de egy ilyen megközelítéshez legfeljebb 10 GPIO csapot kell használni. Az olyan forgatókönyvek esetében, amelyekhez eszközök kombinációjához kell csatlakozni, a GPIO-fejlécek nagy részének karaktermegjelenítésre való felosztása gyakran nem praktikus.
Sok gyártó értékesít 20x4 LCD karakteres kijelzőket integrált GPIO bővítővel. A karakterkijelző közvetlenül a GPIO-bővítőhöz csatlakozik, amely ezután a Raspberry Pi-hez csatlakozik a Inter-Integrated Circuit (I2C) soros protokollon keresztül.
Ebben a témakörben .NET használatával fog szöveget megjeleníteni egy LCD karakterkijelzőn I2C GPIO-bővítő segítségével.
Előfeltételek
- ARM-alapú (ARMv7 vagy újabb) egylapos számítógép (SBC)
- 20x4 LCD karakterkijelző I2C felülettel
- Átvezető vezetékek
- Próbatábla (nem kötelező/ajánlott)
- Raspberry Pi GPIO-melléklap (opcionális/ajánlott)
- .NET SDK 8 vagy újabb
Megjegyzés:
Ez az oktatóanyag meg van írva, feltéve, hogy a céleszköz Raspberry Pi. Ez az oktatóanyag azonban bármilyen Linux-alapú SBC-hez használható, amely támogatja a .NET-et, például az Orange Pi-t, az ODROID-ot és sok mást.
Megjegyzés:
Sok gyártó van LCD karakterkijelzők. A legtöbb kialakítás azonos, és a gyártónak nem szabad különbséget tennie a funkcionalitásban. Referenciaként ezt az oktatóanyagot a SunFounder LCD2004 fejlesztették ki.
Az SBC előkészítése
Győződjön meg arról, hogy az SBC a következő szolgáltatások támogatására van konfigurálva:
- SSH
- I2C
Sok eszköz esetén nincs szükség további konfigurációra. Raspberry Pi esetén használja a raspi-config parancsot. További információkért raspi-configtekintse meg a Raspberry Pi dokumentációját.
A hardver előkészítése
Az I2C GPIO-bővítőn lévő négy tűt ugróhuzalokkal csatlakoztassa a Raspberry Pi-hez az alábbiak szerint:
- GND a földhöz
- VCC átalakítása 5V-ra
- SDA–SDA (GPIO 2)
- SCL–SCL (GPIO 3)
Szükség szerint tekintse meg a következő számokat:
| I2C interfész (a kijelző hátoldala) | Raspberry Pi GPIO |
|---|---|
|
|
Kép jóvoltból Raspberry Pi Foundation. |
Jótanács
A GPIO csatlakozólap és a próbaáramköri lap együttes használata javasolt a GPIO-fejléchez való kapcsolódások egyszerűsítése érdekében.
Az alkalmazás létrehozása
Hajtsa végre a következő lépéseket az előnyben részesített fejlesztési környezetben:
Hozzon létre egy új .NET-konzolalkalmazást a .NET CLI vagy a Visual Studio használatával. Adjon neki LcdTutorial nevet.
dotnet new console -o LcdTutorial cd LcdTutorialAdja hozzá az Iot.Device.Bindings csomagot a projekthez. Használja a .NET CLI-t a projektkönyvtárból vagy a Visual Studióból.
dotnet add package Iot.Device.Bindings --version 3.2.0-*Cserélje le a Program.cs fájl tartalmát a következő kódra:
using System; using System.Device.Gpio; using System.Device.I2c; using System.Threading; using Iot.Device.CharacterLcd; using Iot.Device.Pcx857x; Console.WriteLine("Displaying current time. Press Ctrl+C to end."); using I2cDevice i2c = I2cDevice.Create(new I2cConnectionSettings(1, 0x27)); using var driver = new Pcf8574(i2c); using var lcd = new Lcd2004(registerSelectPin: 0, enablePin: 2, dataPins: new int[] { 4, 5, 6, 7 }, backlightPin: 3, backlightBrightness: 0.1f, readWritePin: 1, controller: new GpioController(PinNumberingScheme.Logical, driver)); int currentLine = 0; while (true) { lcd.Clear(); lcd.SetCursorPosition(0,currentLine); lcd.Write(DateTime.Now.ToShortTimeString()); currentLine = (currentLine == 3) ? 0 : currentLine + 1; Thread.Sleep(1000); }Az előző kódban:
A using deklaráció egy példányt hoz létre
I2cDeviceáltal, meghívva aI2cDevice.Create-t, és átadva egy újI2cConnectionSettings-t abusIdésdeviceAddressparaméterekkel. EzI2cDeviceaz I2C buszt jelöli. Ausingdeklaráció biztosítja az objektum ártalmatlanítását és a hardvererőforrások megfelelő kiadását.Figyelmeztetés
A GPIO bővítő eszközcíme a gyártó által használt chiptől függ. A PCF8574 chipekkel felszerelt GPIO bővítők a
0x27címet használják, míg a PCF8574A chipeket használók a0x3Fcímet. Tekintse meg az LCD dokumentációját.Egy másik
usingdeklaráció létrehoz egy példánytPcf8574, és átadja aI2cDevicekonstruktornak. Ez a példány a GPIO-bővítőt reprezentálja.Egy másik
usingdeklaráció létrehoz egy példánytLcd2004a megjelenítés reprezentálására. Több paramétert adnak át a konstruktornak, amelyek a GPIO-bővítővel való kommunikációhoz használandó beállításokat írják le. A GPIO-bővítő paraméterként lesz átadvacontroller.A
whilehurok határozatlan ideig fut. Minden iteráció:- Törli a kijelzőt.
- A kurzor pozícióját az aktuális vonal első pozíciójára állítja.
- Az aktuális időt az aktuális kurzor pozíciójában lévő megjelenítésre írja.
- Iterálja az aktuális sorszámlálót.
- 1000 ms-ig alszik.
Hozza létre az alkalmazást. Ha a .NET parancssori felületet használja, futtassa a parancsot
dotnet build. A Visual Studióban való buildeléshez nyomja le a CtrlShift+B+.Helyezze üzembe az alkalmazást az SBC-ben önálló alkalmazásként. Útmutatásért lásd: .NET-alkalmazások üzembe helyezése a Raspberry Pi-ben. Győződjön meg arról, hogy a végrehajtható fájlnak végrehajtás engedélyt ad, a
chmod +xhasználatával.Futtassa az alkalmazást a Raspberry Pi-en az üzembehelyezési könyvtárra való váltással és a végrehajtható fájl futtatásával.
./LcdTutorialFigyelje meg az LCD-kijelzőn megjelenő karaktereket, amint az aktuális idő megjelenik minden sorban.
Jótanács
Ha a kijelző világít, de nem lát szöveget, próbálja meg módosítani a kontrasztos tárcsázást a kijelző hátulján.
Állítsa le a programot a CtrlC+ lenyomásával.
Gratulálok! Egy szöveget jelenítettél meg egy LCD-n I2C és GPIO-bővítő használatával!
A forráskód lekérése
Az oktatóanyag forrása a GitHubon érhető el.