Megosztás a következőn keresztül:


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

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
A karakter hátoldalának képe, amelyen az I2C GPIO bővítő látható. Egy diagram, amely bemutatja a Raspberry Pi GPIO fejlécének lábkiosztását. A kép a Raspberry Pi Foundation jóvoltából.
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 CLI vagy a 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 .NET CLI-t a projektkönyvtárból vagy a Visual Studióból.

    dotnet add package Iot.Device.Bindings --version 3.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);
    }
    

    Az előző kódban:

    • A using deklaráció egy példányt hoz létre I2cDevice által, meghívva a I2cDevice.Create-t, és átadva egy új I2cConnectionSettings-t 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 chipekkel 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 példányt Lcd2004 a 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 á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ő 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 parancsot dotnet build. A Visual Studióban való buildeléshez nyomja le a CtrlShift+B+.

  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ó fájlnak végrehajtás 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 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.

Következő lépések