Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
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:
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:
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:
Erstellen Sie eine neue .NET-Konsolen-App, indem Sie entweder die .NET-CLI oder Visual Studio verwenden. Nennen Sie es BlinkTutorial.
dotnet new console -o BlinkTutorial cd BlinkTutorialFügen Sie das System.Device.Gpio-Paket zum Projekt hinzu. Verwenden Sie entweder .NET CLI aus dem Projektverzeichnis oder Visual Studio.
dotnet add package System.Device.Gpio --version 3.2.0-*Ersetzen Sie den Inhalt von Program.cs durch den folgenden Code:
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 derusing-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:- Schreibt einen Wert in GPIO-Pin 18. Wenn
ledOnden Wert „true“ hat, wirdPinValue.Highgeschrieben (ein). Andernfalls wirdPinValue.Lowgeschrieben. - Wartet 1000 ms lang ab.
- Umschalten des Werts von
ledOn.
- Schreibt einen Wert in GPIO-Pin 18. Wenn
- Eine using-Deklaration erstellt eine Instanz von
Erstellen Sie die App. Führen Sie
dotnet buildaus, wenn Sie die .NET-CLI verwenden. Drücken Sie STRG+UMSCHALT+B, um die App in Visual Studio zu erstellen.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.Führen Sie die App auf dem Raspberry Pi aus, indem Sie zum Bereitstellungsverzeichnis wechseln und die ausführbare Datei ausführen.
./BlinkTutorialDie LED blinkt im Sekundentakt aus und ein.
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.