Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Lcd znakové displeje jsou užitečné pro zobrazení informací bez nutnosti externího monitoru. Běžné lcd znakové displeje lze připojit přímo ke špendlíkům GPIO, ale takový přístup vyžaduje použití až 10 GPIO špendlíků. U scénářů, které vyžadují připojení ke kombinaci zařízení, je často nepraktické oddělovat většinu hlavičky GPIO na zobrazení znaků.
Mnoho výrobců prodává 20x4 LCD znakovkové displeje s integrovaným expandérem GPIO. Zobrazení znaků se připojí přímo k expanderu GPIO, který se pak připojí k Raspberry Pi prostřednictvím sériového protokolu Inter-Integrated Circuit (I2C).
V tomto tématu použijete .NET k zobrazení textu na displeji LCD znaků pomocí rozbalovače GPIO I2C GPIO.
Požadavky
- Počítač s jednou deskou (SBC) založený na ARM (ARMv7 nebo novější)
- 20x4 LCD znakový displej s rozhraním I2C
- Propojovací vodiče
- Popis cesty (volitelné/doporučené)
- GPIO rozbočovací deska pro Raspberry Pi (volitelné/doporučené)
- .NET SDK 10 nebo novější
Poznámka:
Tento kurz je napsán za předpokladu, že cílové zařízení je Raspberry Pi. Tento kurz se ale dá použít pro jakýkoli linuxový SBC, který podporuje .NET, jako je Orange Pi, ODROID a další.
Poznámka:
Existuje mnoho výrobců lcd znakových displejů. Většina návrhů je shodná a výrobce by neměl mít žádný vliv na funkčnost. Pro informaci byl tento návod vyvinut s SunFounder LCD2004.
Příprava SBC
Ujistěte se, že je vaše SBC nakonfigurovaná tak, aby podporovala následující služby:
- SSH
- I2C
U mnoha zařízení není nutná žádná další konfigurace. V případě Raspberry Pi použijte raspi-config příkaz. Další informace najdete raspi-configv dokumentaci k Raspberry Pi.
Příprava hardwaru
Pomocí jumperových vodičů připojte čtyři kolíky na rozbalovači I2C GPIO k Raspberry Pi následujícím způsobem:
- GND na zem
- VCC až 5V
- SDA až SDA (GPIO 2)
- SCL na SCL (GPIO 3)
Podle potřeby se podívejte na následující údaje:
| I2C rozhraní (zadní displej) | Raspberry Pi GPIO |
|---|---|
|
|
Obrázek se svolením Raspberry Pi Foundation. |
Návod
Pro usnadnění připojení k GPIO headeru se doporučuje použít GPIO breakout desku ve spojení s propojovacím polem.
Vytvoření aplikace
V upřednostňovaném vývojovém prostředí proveďte následující kroky:
Vytvořte novou konzolovou aplikaci .NET pomocí .NET CLI nebo Visual Studio. Pojmenujte ho LcdTutorial.
dotnet new console -o LcdTutorial cd LcdTutorialPřidejte do projektu balíček Iot.Device.Bindings . Použijte rozhraní příkazového řádku .NET z adresáře projektu nebo Visual Studio.
dotnet package add Iot.Device.Bindings --version 4.1.0Obsah 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
I2cDevicevolánímI2cDevice.Createa předáním novéhoI2cConnectionSettingss parametrybusIdadeviceAddress. ToI2cDevicepředstavuje autobus I2C. Deklaraceusingzajišťuje, že objekt je správně zlikvidován a hardwarové prostředky jsou uvolněny.Výstraha
Adresa zařízení pro expander GPIO závisí na čipu používaném výrobcem. GPIO expandery vybavené PCF8574 používají adresu
0x27, zatímco čipy PCF8574A používají0x3F. Projděte si dokumentaci k lcd displeji.Další
usingdeklarace vytvoří instanciPcf8574a předáI2cDevicedo konstruktoru. Tato instance představuje expandér GPIO.Další
usingdeklarace vytvoří instanciLcd2004představující zobrazení. Konstruktoru je předáno několik parametrů popisujících nastavení pro komunikaci s expandérem GPIO. GPIO expander je předáván jakocontrollerparametr.Smyčka
whileběží neomezeně dlouho. Každá iterace:- Vymaže zobrazení.
- Nastaví pozici kurzoru na první pozici na aktuálním řádku.
- Zapíše aktuální čas do zobrazení na aktuální pozici kurzoru.
- Iteruje aktuální čítač řádku.
- Spí 1000 ms.
Sestavení aplikace Pokud používáte rozhraní příkazového řádku .NET, spusťte
dotnet build. Pokud chcete sestavit projekt ve Visual Studiu, stiskněte Ctrl+Shift+B.Nasaďte aplikaci do SBC jako samostatnou aplikaci. Pokyny najdete v tématu Deploy .NET aplikací na Raspberry Pi. Ujistěte se, že dáte spustitelnému souboru oprávnění k provádění pomocí
chmod +x.Spusťte aplikaci na Raspberry Pi přepnutím do adresáře nasazení a spuštěním spustitelného souboru.
./LcdTutorialSledujte zobrazení znaků na LCD displeji, jak se aktuální čas zobrazuje na každém řádku.
Návod
Pokud je displej podsvícený, ale nevidíte žádný text, zkuste upravit knoflík nastavení kontrastu na zadní straně displeje.
Ukončete program stisknutím kláves Ctrl+C.
Gratulujeme! Zobrazili jste text na LCD pomocí I2C a GPIO expanderu!
Získání zdrojového kódu
Zdroj tohoto kurzu je k dispozici na GitHub.