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.
Kolíky GPIO (General-Purpose I/O) lze ovládat jednotlivě. To je užitečné pro řízení LED diod, relé a dalších stavových zařízení. V tomto tématu použijete .NET a GPIO piny Raspberry Pi k napájení LED a nechat jej opakovaně blikat.
Požadavky
- Počítač s jednou deskou (SBC) založený na ARM (ARMv7 nebo novější)
- 5 mm LED
- 330 Ω rezistor
- Prkénko na krájení
- Propojovací vodiče
- Raspberry Pi GPIO rozšiřující deska (volitelné/doporučené)
- .NET SDK 8 nebo novější
Poznámka:
Tento kurz je napsán za předpokladu, že cílové zařízení je Raspberry Pi. Tento kurz však lze použít pro jakýkoli linuxový SBC, který podporuje .NET, jako je Orange Pi, ODROID a další.
Ujistěte se, že je na vašem zařízení povolený protokol SSH. V případě Raspberry Pi si přečtěte téma Nastavení serveru SSH v dokumentaci k Raspberry Pi.
Příprava hardwaru
Pomocí hardwarových komponent sestavte okruh, jak je znázorněno v následujícím diagramu:
Na obrázku výše jsou znázorněna následující připojení:
- GPIO 18 k anodě LED (delší, kladný vodič)
- LED kathoda (kratší, negativní vedení) na 330 Ω rezistor (jeden konec)
- 330 Ω rezistor (druhý konec) k zemi
Podle potřeby si projděte následující vývodové schéma.
Obrázek se svolením Raspberry Pi Foundation.
Návod
Pro zjednodušení připojení k hlavičce GPIO se doporučuje použít rozšiřovací desku GPIO ve spojení s kontaktní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 ji BlinkTutorial.
dotnet new console -o BlinkTutorial cd BlinkTutorial
Přidejte do projektu balíček System.Device.Gpio . Použijte .NET CLI z adresáře projektu nebo sady Visual Studio.
dotnet add package System.Device.Gpio --version 3.2.0-*
Obsah souboru Program.cs nahraďte tímto kódem:
using System; using System.Device.Gpio; using System.Threading; Console.WriteLine("Blinking LED. Press Ctrl+C to end."); int pin = 18; using var controller = new GpioController(); controller.OpenPin(pin, PinMode.Output); bool ledOn = true; while (true) { controller.Write(pin, ((ledOn) ? PinValue.High : PinValue.Low)); Thread.Sleep(1000); ledOn = !ledOn; }
V předchozím kódu:
- Deklarace using vytvoří instanci
GpioController
. Deklaraceusing
zajišťuje, že objekt je ukončen a hardwarové prostředky jsou uvolněny správně. - GPIO pin 18 je otevřen pro výstup.
- Smyčka
while
běží neomezeně dlouho. Každá iterace:- Zapíše hodnotu do pinu GPIO 18. Pokud je
ledOn
true, zapíšePinValue.High
(zapnuto). V opačném případě se zapíšePinValue.Low
. - Spí 1000 ms.
- Přepíná hodnotu
ledOn
.
- Zapíše hodnotu do pinu GPIO 18. Pokud je
- Deklarace using vytvoří instanci
Sestavení aplikace Pokud používáte .NET CLI, spusťte
dotnet build
. Pokud chcete sestavovat v sadě Visual Studio, stiskněte kombinaci kláves Ctrl+Shift+B.Nasaďte aplikaci do SBC jako samostatnou aplikaci. Pokyny najdete v tématu Nasazení aplikací .NET do Raspberry Pi. Ujistěte se, že spustitelnému souboru udělíte oprávnění execute pomocí
chmod +x
.Spusťte aplikaci na Raspberry Pi přepnutím do adresáře nasazení a spuštěním spustitelného souboru.
./BlinkTutorial
Indikátor LED bliká každou sekundu vypne a zapne.
Ukončete program stisknutím kláves Ctrl+C.
Gratulujeme! Použili jste GPIO, aby blikala LED dioda.
Získání zdrojového kódu
Zdroj pro tento kurz je k dispozici na GitHubu.