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 budete používat .NET a GPIO piny Raspberry Pi k napájení LED diody, aby se opakovaně rozsvěcela a zhasínala.

Požadavky

  • Počítač s jednou deskou (SBC) založený na ARM (ARMv7 nebo novější)
  • 5 mm LED dioda
  • 330 Ω rezistor
  • Prkénko na krájení
  • Propojovací vodiče
  • Raspberry Pi GPIO rozšiřující deska (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ší.

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í rozložení pinů hlavičky Raspberry Pi - GPIO. Obrázek s laskavým 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 rozhraní příkazového řádku .NET z adresáře projektu nebo Visual Studio.

    dotnet package add System.Device.Gpio --version 4.0.1
    
  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 správně zlikvidován a hardwarové prostředky jsou uvolněny.
    • 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ě vypíše PinValue.Low.
      2. Spí 1000 ms.
      3. Přepíná hodnotu ledOn.
  4. 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.

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

  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 tohoto kurzu je k dispozici na GitHub.

Další kroky