Udostępnij za pośrednictwem


Migaj diodą LED

Wyprowadzeniami we/wy ogólnego przeznaczenia (GPIO) można sterować pojedynczo. Jest to przydatne do kontrolowania diod LED, przekaźników i innych urządzeń stanowych. W tym temacie użyjesz .NET i wyprowadzeń GPIO urządzenia Raspberry Pi, aby zasilać diodę LED, żeby wielokrotnie migała.

Wymagania wstępne

  • Komputer z jedną płytą (ARMv7 lub nowszy) oparty na architekturze ARM (SBC)
  • Dioda LED 5 mm
  • Rezystor 330 Ω
  • płytka stykowa
  • Przewody skoczkowe
  • Płytka rozdzielcza GPIO do Raspberry Pi (opcjonalnie/zalecane)
  • .NET SDK 10 lub nowszy

Uwaga

Ten samouczek został napisany przy założeniu, że docelowe urządzenie to Raspberry Pi. Jednak ten samouczek może być używany dla dowolnego systemu Linux opartego na protokole SBC, który obsługuje .NET, takich jak Orange Pi, ODROID i nie tylko.

Upewnij się, że na twoim urządzeniu jest włączony SSH. Dla Raspberry Pi, zobacz Konfigurowanie serwera SSH w dokumentacji Raspberry Pi.

Przygotowywanie sprzętu

Użyj składników sprzętowych do skompilowania obwodu, jak pokazano na poniższym diagramie:

Diagram Fritzing przedstawiający obwód z diodą LED i rezystory

Na powyższym obrazie przedstawiono następujące połączenia:

  • GPIO 18 podłączony do anody LED (dłuższy, dodatni przewód)
  • Katoda LED (krótszy, ujemny przewód) do rezystora 330 Ω (do dowolnego końca)
  • 330 Ω rezystora (inny koniec) na ziemię

W razie potrzeby zapoznaj się z następującym diagramem wyprowadzeń.

Diagram przedstawiający wyprowadzenia nagłówka GPIO urządzenia Raspberry Pi. Obraz dzięki uprzejmości Raspberry Pi Foundation.
Obraz dzięki uprzejmości Raspberry Pi Foundation.

Wskazówka

Zaleca się użycie płytki rozszerzeń GPIO w połączeniu z płytką stykową, aby usprawnić połączenia z nagłówkiem GPIO.

Tworzenie aplikacji

Wykonaj następujące kroki w preferowanym środowisku projektowym:

  1. Utwórz nową aplikację konsoli .NET przy użyciu interfejsu wiersza polecenia .NET lub Visual Studio. Nadaj mu nazwę BlinkTutorial.

    dotnet new console -o BlinkTutorial
    cd BlinkTutorial
    
  2. Dodaj pakiet System.Device.Gpio do projektu. Użyj .NET CLI z katalogu projektu lub Visual Studio.

    dotnet package add System.Device.Gpio --version 4.0.1
    
  3. Zastąp zawartość pliku Program.cs następującym kodem:

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

    W poprzednim kodzie:

    • Deklaracja using tworzy wystąpienie GpioController. Deklaracja using gwarantuje, że obiekt zostanie usunięty, a zasoby sprzętowe zostaną prawidłowo zwolnione.
    • Pin GPIO 18 został otwarty do wyjścia
    • Pętla while jest uruchamiana w nieskończoność. Każda iteracja:
      1. Zapisuje wartość na pinie GPIO 18. Jeśli ledOn jest prawdziwe, zapisuje PinValue.High (włączone). W przeciwnym razie zapisuje PinValue.Low.
      2. Śpi 1000 ms.
      3. Przełącza wartość ledOn.
  4. Kompilowanie aplikacji. Jeśli korzystasz z .NET CLI, wykonaj dotnet build. Aby skompilować Visual Studio, naciśnij Ctrl+Shift+B.

  5. Wdróż aplikację w SBC jako samodzielną aplikację. Aby uzyskać instrukcje, zobacz Deploy .NET aplikacje do urządzenia Raspberry Pi. Upewnij się, że nadajesz plikowi wykonywalnemu uprawnienia do wykonywania przy użyciu chmod +x.

  6. Uruchom aplikację na urządzeniu Raspberry Pi, przełączając się do katalogu wdrożenia i uruchamiając plik wykonywalny.

    ./BlinkTutorial
    

    Dioda LED miga co sekundę.

  7. Zakończ program, naciskając klawisze Ctrl+C.

Gratulacje! Użyto GPIO do migania diodą LED.

Pobieranie kodu źródłowego

Źródło tego samouczka jest dostępne w GitHub.

Następne kroki