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 a .NET segítségével jeleníthet meg szöveget egy LCD-karakterkijelzőn I2C GPIO-bővítő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 10 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ármely olyan Linux-alapú SBC-hez használható, amely támogatja .NET, például Orange Pi, ODROID stb.
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 parancssori felület vagy 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(z) .NET CLI-t a projektkönyvtárból vagy a Visual Studio-t.
dotnet package add Iot.Device.Bindings --version 4.1.0Cseré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(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
I2cDevicehoz létre úgy, hogy meghívjaI2cDevice.Createés átad egy újI2cConnectionSettingspéldányt 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-gyel 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 egyLcd2004példányt a megjelenítés reprezentálásához. 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 a végtelenségig 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
dotnet buildparancsot. A Visual Studio-ban történő buildeléshez nyomja le a Ctrl+Shift+B billentyűkombinációt.Helyezze üzembe az alkalmazást az SBC-ben önálló alkalmazásként. Útmutatásért lásd: A Raspberry Pi .NET-alkalmazások üzembe helyezése. Győződjön meg arról, hogy a végrehajtható fájlnak végrehajtási 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 I2C és egy GPIO-bővítő használatával szöveget jelenített meg egy LCD-n!
A forráskód lekérése
Az oktatóanyag forrása elérhető GitHub.