Szöveg megjelenítése LCD-n

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

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
A karakter hátoldalának képe, amelyen az I2C GPIO bővítő látható. Ábra a Raspberry Pi GPIO fejlécének kitűzéséről. Kép jóvoltból Raspberry Pi Foundation.
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:

  1. 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 LcdTutorial
    
  2. Adja 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.0
    
  3. 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(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 I2cDevice hoz létre úgy, hogy meghívja I2cDevice.Create és átad egy új I2cConnectionSettings példányt a busId és deviceAddress paraméterekkel. Ez I2cDevice az I2C buszt jelöli. A using deklará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 0x27 címet használják, míg a PCF8574A chipeket használók a 0x3F címet. Tekintse meg az LCD dokumentációját.

    • Egy másik using deklaráció létrehoz egy példányt Pcf8574 , és átadja a I2cDevice konstruktornak. Ez a példány a GPIO-bővítőt reprezentálja.

    • Egy másik using deklaráció létrehoz egy Lcd2004 pé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 átadva controller.

    • A while hurok a végtelenségig fut. Minden iteráció:

      1. Törli a kijelzőt.
      2. A kurzor pozícióját az aktuális vonal első pozíciójára állítja.
      3. Az aktuális időt az aktuális kurzor pozíciójában lévő megjelenítésre írja.
      4. Iterálja az aktuális sorszámlálót.
      5. 1000 ms-ig alszik.
  4. Hozza létre az alkalmazást. Ha a .NET parancssori felületet használja, futtassa a dotnet build parancsot. A Visual Studio-ban történő buildeléshez nyomja le a Ctrl+Shift+B billentyűkombinációt.

  5. 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 +x használatával.

  6. 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.

    ./LcdTutorial
    

    Figyelje 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.

  7. Á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.

Következő lépések