Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis 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 10 oder höher
Hinweis
Dieses Tutorial wurde unter der Annahme geschrieben, dass das Zielgerät ein Raspberry Pi ist. Dieses Lernprogramm kann jedoch für jeden linuxbasierten 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. Zur Einrichtung eines SSH-Servers auf dem Raspberry Pi lesen Sie bitte den Abschnitt "Einen SSH-Server einrichten" in der Raspberry-Pi-Dokumentation.
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 entweder mithilfe der .NET CLI oder Visual Studio. 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 package add System.Device.Gpio --version 4.0.1Ersetzen 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. DieusingDeklaration stellt sicher, dass das Objekt beendet wird und Hardwareressourcen ordentlich freigegeben werden. - GPIO-Pin 18 wird für die Ausgabe geöffnet
- Eine
whileSchleife läuft endlos. Jede Iteration:- Schreibt einen Wert in GPIO-Pin 18. Wenn
ledOnwahr ist, schreibt esPinValue.High(an). Ansonsten wirdPinValue.Lowgeschrieben. - Wartet 1000 ms lang ab.
- Schaltet den Wert von
ledOn.
- Schreibt einen Wert in GPIO-Pin 18. Wenn
- Eine using-Deklaration erstellt eine Instanz von
Erstellen Sie die App. Wenn Sie die .NET CLI verwenden, führen Sie
dotnet buildaus. Zum Erstellen in Visual Studio drücken Sie Ctrl+Shift+B.Stellen Sie die App auf dem SBC als eigenständige App bereit. Anweisungen finden Sie unter Deploy .NET apps to Raspberry Pi. Stellen Sie sicher, dass Sie der ausführbaren Datei mit
chmod +xdie Berechtigung zum Ausführen erteilen.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
Die Quelle für dieses Lernprogramm ist auf GitHub verfügbar.