Auf Englisch lesen

Freigeben über


Blinken einer LED

Allgemeine I/O-Pins (GPIO) können einzeln gesteuert werden. Dies ist nützlich für die Steuerung von LEDs, Relays und anderen zustandsbehafteten Geräten. In diesem Thema verwenden Sie .NET und die GPIO-Pins Ihres Raspberry Pi, um eine LED zu aktivieren und wiederholt zu blinken.

Voraussetzungen

  • ARM-basierter (ARMv7 oder höher) Single-Board-Computer (SBC)
  • 5-Millimeter-LED
  • 330 Ω Widerstand
  • Breadboard
  • Jumper-Kabel
  • Raspberry Pi GPIO Breakout Board (optional/empfohlen)
  • .NET SDK 8 oder höher

Hinweis

Dieses Tutorial wurde unter der Annahme geschrieben, dass das Zielgerät ein Raspberry Pi ist. Dieses Tutorial kann jedoch für jeden Linux-basierten SBC verwendet werden, der .NET unterstützt, z. B. Orange Pi, ODROID und mehr.

Stellen Sie sicher, dass SSH auf Ihrem Gerät aktiviert ist. Für Raspberry Pi: Lesen Sie Einrichten eines SSH-Servers in der Dokumentation zu Raspberry Pi.

Vorbereiten der Hardware

Verwenden Sie die Hardwarekomponenten, um den Schaltkreis wie im folgenden Diagramm dargestellt zu erstellen:

Ein Fritzing-Diagramm mit einer Schaltung mit einer LED und einem Widerstand

Die abbildung oben zeigt die folgenden Verbindungen:

  • GPIO 18 bis LED-Anode (länger, positiver Lead)
  • LED-Kathode (kürzere, negative Leitung) an 330-Ω-Widerstand (beide Enden)
  • 330-Ω-Widerstand (anderes Ende) an Masse

Beachten Sie falls nötig das folgende Anschlussdiagramm:

Anschlussdiagramm: Raspberry Pi GPIO-Header. Bild mit freundlicher Genehmigung der Raspberry Pi Foundation.
Bild mit freundlicher Genehmigung der Raspberry Pi Foundation.

Tipp

Ein GPIO-Breakout-Board in Verbindung mit einer Steckplatine wird empfohlen, um die Verbindungen zum GPIO-Header zu optimieren.

Erstellen der App

Führen Sie in Ihrer bevorzugten Entwicklungsumgebung die folgenden Schritte aus:

  1. Erstellen Sie eine neue .NET-Konsolen-App, indem Sie entweder die .NET-CLI oder Visual Studio verwenden. Nennen Sie es BlinkTutorial.

    .NET CLI
    dotnet new console -o BlinkTutorial
    cd BlinkTutorial
    
  2. Fügen Sie das System.Device.Gpio-Paket zum Projekt hinzu. Verwenden Sie entweder .NET CLI aus dem Projektverzeichnis oder Visual Studio.

    .NET CLI
    dotnet add package System.Device.Gpio --version 3.2.0-*
    
  3. Ersetzen Sie den Inhalt von Program.cs durch den folgenden Code:

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

    Im vorhergehenden Code:

    • Eine using-Deklaration erstellt eine Instanz von GpioController. Mit der using-Deklaration wird sichergestellt, dass das Objekt verworfen wird und die Hardwareressourcen richtig freigegeben werden.
    • GPIO-Pin 18 wird für die Ausgabe geöffnet
    • Eine while-Schleife wird ohne zeitliche Begrenzung ausgeführt. Jede Iteration:
      1. Schreibt einen Wert in GPIO-Pin 18. Wenn ledOn den Wert „true“ hat, wird PinValue.High geschrieben (ein). Andernfalls wird PinValue.Low geschrieben.
      2. Wartet 1000 ms lang ab.
      3. Umschalten des Werts von ledOn.
  4. Erstellen Sie die App. Führen Sie dotnet build aus, wenn Sie die .NET-CLI verwenden. Drücken Sie STRG+UMSCHALT+B, um die App in Visual Studio zu erstellen.

  5. Stellen Sie die App auf dem SBC als eigenständige App bereit. Anweisungen hierzu finden Sie unter Bereitstellen von .NET-Apps auf einem Raspberry Pi-Gerät. Erteilen Sie dabei mithilfe von die chmod +x-Berechtigung für ausführbare Dateien.

  6. Führen Sie die App auf dem Raspberry Pi aus, indem Sie zum Bereitstellungsverzeichnis wechseln und die ausführbare Datei ausführen.

    Bash
    ./BlinkTutorial
    

    Die LED blinkt im Sekundentakt aus und ein.

  7. Beenden Sie das Programm, indem Sie STRG+C drücken.

Glückwunsch! Sie haben GPIO verwendet, um eine LED zu blinken.

Herunterladen des Quellcodes

Der Quellcode für dieses Tutorial ist auf GitHub verfügbar.

Nächste Schritte


Zusätzliche Ressourcen

Dokumentation