Zobrazení textu na displeji LCD

Zobrazení znaků FUNKCE jsou užitečná pro zobrazení informací bez potřeby externího monitorování. Běžná zobrazení znaků FUNKCE mohou být připojena přímo ke kolíkům GPIO, ale takový přístup vyžaduje použití až 10 kolíků GPIO. Ve scénářích, které vyžadují připojení k kombinaci zařízení, je rozdělení tolika hlaviček funkce GPIO na zobrazení znaků často nepraktické.

Řada výrobců prodává 20 × 4 znaky FUNKCE s integrovaným rozšířením GPIO. Znakový displej se připojí přímo k rozšíření GPIO, který se pak připojí k Raspberry Pi přes sériový protokol Inter-Integrated Circuit (I2C).

V tomto tématu použijete .NET k zobrazení textu na displeji se znakem MŮŽETE pomocí expanderu I2C GPIO.

Požadavky

Poznámka

Existuje mnoho výrobců znakových záhonů NENÍ k dispozici. Většina návrhů je identická a výrobce by neměl na funkčnosti dělat žádný rozdíl. Pro referenci jsme tento kurz vyvinuli pomocí aplikace SunFounder MŮŽETE2004.

Příprava maliny v PI

Pomocí raspi-config příkazu zajistěte, aby byly povolené následující dvě služby:

  • SSH
  • I2C

Další informace o raspi-config najdete v dokumentaci k malinu PI.

Příprava hardwaru

Pomocí propojovacích vodičů připojte čtyři špendlíky na rozšiřovači I2C GPIO k Raspberry Pi následujícím způsobem:

  • GND na zem
  • Z VCC do 5V
  • SDA na SDA (GPIO 2)
  • SCL na SCL (GPIO 3)

Podle potřeby použijte následující hodnoty:

I2C – rozhraní (zpátky zobrazení) Malina Pi GPIO
Obrázek zadní části zobrazení znaků znázorňující rozšíření I2C GPIO. Diagram znázorňující pinout záhlaví GPIO pro malin. Navýšení obrazu na malinovou základnu PI
Navýšení obrazu na malinovou základnu PI

Tip

GPIO užitečných panel ve spojení s Breadboard se doporučuje pro zjednodušení připojení k hlavičce GPIO.

Vytvoření aplikace

V upřednostňovaném vývojovém prostředí proveďte následující kroky:

  1. Vytvořte novou konzolovou aplikaci .NET pomocí rozhraní .NET CLI nebo sady Visual Studio. Pojmenujte ho LcdTutorial.

    dotnet new console -o LcdTutorial
    
  2. Přidejte do projektu balíček IoT. Device. Bindings . Použijte rozhraní .NET CLI z adresáře projektu nebo sady Visual Studio.

    dotnet add package Iot.Device.Bindings --version 1.1.0-*
    
  3. Obsah souboru Program.cs nahraďte tímto kódem:

    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);
    }
    

    V předchozím kódu:

    • Deklarace using vytvoří instanci I2cDevice voláním I2cDevice.Create a předáním nového I2cConnectionSettings s busId deviceAddress parametry a. To I2cDevice představuje sběrnici I2C. usingDeklarace zajišťuje, že je objekt vyřazený, a hardwarové prostředky se uvolňují správně.

      Upozornění

      Adresa zařízení pro rozšíření GPIO závisí na čipu používaném výrobcem. GPIO rozšiřující zařízení vybavené PCF8574 používají tuto adresu 0x27 , zatímco používají čipy PCF8574A 0x3F . Projděte si dokumentaci k monitoru LCD.

    • Jiná using deklarace vytvoří instanci třídy Pcf8574 a předá I2cDevice do konstruktoru. Tato instance představuje rozšíření GPIO.

    • Jiná using deklarace vytvoří instanci, Lcd2004 která představuje zobrazení. Do konstruktoru, který popisuje nastavení, které se má použít ke komunikaci s rozšířením GPIO, se předává několik parametrů. Rozšíření GPIO je předáno jako controller parametr.

    • Smyčka while běží po neomezenou dobu. Každá iterace:

      1. Vymaže zobrazení.
      2. Nastaví pozici kurzoru na první pozici na aktuálním řádku.
      3. Zapíše aktuální čas na zobrazení na aktuální pozici kurzoru.
      4. Iteruje čítač aktuálního řádku.
      5. Uspí se 1 000 ms.
  4. Sestavení aplikace Pokud používáte rozhraní .NET CLI, spusťte příkaz dotnet build . Chcete-li vytvořit v aplikaci Visual Studio, stiskněte klávesy CTRL + SHIFT + B.

  5. Nasaďte aplikaci do maliny PI jako aplikaci, která je samostatně obsažená. Pokyny najdete v tématu nasazení aplikací .NET do maliny PI. Ujistěte se, že máte oprávnění k provedení spustitelného souboru pomocí příkazu chmod +x .

  6. Spusťte aplikaci na Raspberry Pi tak, že přepnete do adresáře nasazení a spustíte spustitelný soubor.

    ./LcdTutorial
    

    Sledujte, jak se na každém řádku zobrazuje aktuální čas.

    Tip

    Pokud je displej rozsvícený, ale nevidíte žádný text, zkuste upravit kontrastní číselník na zadní straně obrazovky.

  7. Ukončete program stisknutím kombinace kláves Ctrl+C.

Gratulujeme! Text na displeji SEL se zobrazuje pomocí I2C a rozšíření GPIO!

Získání zdrojového kódu

Zdroj pro tento kurz je k dispozici na GitHubu.

Další kroky