Sdílet prostřednictvím


Blikněte LED diodou

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:

Fritzing diagram znázorňující obvod s LED a rezistorem

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.

Diagram znázorňující zapojení hlavičky Raspberry Pi GPIO. Obrázek se svolením Raspberry Pi Foundation.
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:

  1. Vytvořte novou konzolovou aplikaci .NET pomocí .NET CLI nebo Visual Studio. Pojmenujte ji BlinkTutorial.

    dotnet new console -o BlinkTutorial
    cd BlinkTutorial
    
  2. 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-*
    
  3. 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. Deklarace using 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:
      1. Zapíše hodnotu do pinu GPIO 18. Pokud je ledOn true, zapíše PinValue.High (zapnuto). V opačném případě se zapíše PinValue.Low.
      2. Spí 1000 ms.
      3. Přepíná hodnotu ledOn.
  4. 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.

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

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

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

Další kroky