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-karakteres kijelzők közvetlenül csatlakoztathatók a GPIO csapokhoz, de egy ilyen megközelítéshez legfeljebb 10 GPIO csapot kell használni. Az eszközök kombinációjához való csatlakozást igénylő forgatókönyvek esetében a GPIO-fejlécek nagy részének a karaktermegjelenítésre való felosztása gyakran nem kivitelezhető.

Sok gyártó értékesít 20x4 LCD karakter kijelzők egy integrált GPIO bővítő. A karakterkijelző közvetlenül csatlakozik a GPIO-bővítőhöz, amely a Raspberry Pi-hoz csatlakozik a Inter-Integrated Circuit (I2C) soros protokollon keresztül.

Ebben a témakörben a .NET használatával fog szöveget megjeleníteni egy LCD karakterkijelzőn egy 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 minden olyan Linux-alapú SBC-hez használható, amely támogatja a .NET-et, például az Orange Pi-t, az ODROID-ot és egyebeket.

Megjegyzés

Sok gyártó LCD karakter kijelző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-tel 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ében nincs szükség további konfigurációra. Raspberry Pi esetén használja a raspi-config parancsot. További információt a raspi-configRaspberry Pi dokumentációjában talál.

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-hoz az alábbiak szerint:

  • GND a földig
  • VCC-ről 5V-ra
  • SDA–SDA (GPIO 2)
  • SCL–SCL (GPIO 3)

Szükség szerint tekintse meg a következő számokat:

I2C felület (kijelző hátoldala) Raspberry Pi GPIO
A karakter hátoldalának képe, amelyen az I2C GPIO bővítő látható. A Raspberry Pi GPIO fejlécének pinoutját ábrázoló diagram. Kép jóvoltból Raspberry Pi Foundation.
Kép jóvoltból Raspberry Pi Foundation.

Tipp

A GPIO-mellékfal és a rajztábla együttes használata ajánlott a GPIO fejléchez való csatlakozás egyszerűsítéséhez.

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 CLI vagy a Visual Studio használatával. Adja neki az LcdTutorial nevet.

    dotnet new console -o LcdTutorial
    cd LcdTutorial
    
  2. Adja 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 2.2.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(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);
    }
    

    A fenti kód a következőket végzi el:

    • A használó deklaráció egy példányt I2cDevice hoz létre a és a busId paraméterekkel egy új I2cConnectionSettings hívásával I2cDevice.Create és deviceAddress átadásával. Ez I2cDevice az I2C buszt jelöli. A using deklaráció biztosítja, hogy az objektum el legyen távolítva, és a hardvererőforrások megfelelően legyenek felszabadítva.

      Figyelmeztetés

      A GPIO-bővítő eszközcíme a gyártó által használt chiptől függ. A PCF8574-es PCF8574-es bővítők a címet 0x27használják, míg a PCF8574A lapkákat használók.0x3F 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 jelöli.

    • Egy másik using deklaráció létrehoz egy példányt Lcd2004 a megjelenítés megjelenítéséhez. A konstruktor számos paramétert ad át, amelyek ismertetik a GPIO-bővítővel való kommunikációhoz használandó beállításokat. A GPIO-bővítő paraméterként lesz átadva controller .

    • A while hurok határozatlan ideig 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ő kijelzőre írja.
      4. Iterálja az aktuális sorszámlálót.
      5. Alvó 1000 ms.
  4. Az alkalmazás létrehozása. Ha a .NET CLI-t használja, futtassa a parancsot dotnet build. A Visual Studióban való buildeléshez nyomja le a CtrlShift+Bbillentyűkombinációt+.

  5. 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ó végrehajtási engedélyt a használatával chmod +xadja meg.

  6. Futtassa az alkalmazást a Raspberry Pi-n az üzembehelyezési könyvtárra való váltással és a végrehajtható fájl futtatásával.

    ./LcdTutorial
    

    Figyelje meg az LCD-karaktert, ahogy az aktuális idő jelenik meg az egyes vonalakon.

    Tipp

    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 billentyű lenyomásával+.

Gratulálunk! I2C és GPIO expander használatával megjelenített szöveget egy LCD-n!

A forráskód lekérése

Az oktatóanyag forrása a GitHubon érhető el.

Következő lépések