Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
GPIO-pinnen (General-Purpose I/O) kunnen afzonderlijk worden beheerd. Dit is handig voor het beheren van LED's, relais en andere statusgevoelige apparaten. In dit onderwerp gebruikt u .NET en de GPIO-pinnen van uw Raspberry Pi om een LED van stroom te voorzien zodat deze herhaaldelijk knippert.
Vereiste voorwaarden
- OP ARM gebaseerde (ARMv7 of hoger) single-board computer (SBC)
- 5 mm LED
- 330 Ω weerstand
- Proefplank
- Verbindingsdraden
- Raspberry Pi GPIO breakout board (optioneel/aanbevolen)
- .NET SDK 8 of hoger
Opmerking
Deze handleiding is geschreven, ervan uitgaande dat het doelapparaat een Raspberry Pi is. Deze zelfstudie kan echter worden gebruikt voor elke linux-SBC die .NET ondersteunt, zoals Orange Pi, ODROID en meer.
Zorg ervoor dat SSH is ingeschakeld op uw apparaat. Raadpleeg voor Raspberry Pi het instellen van een SSH-server in de Raspberry Pi-documentatie.
De hardware voorbereiden
Gebruik de hardwareonderdelen om het circuit te bouwen zoals wordt weergegeven in het volgende diagram:
In de bovenstaande afbeelding ziet u de volgende verbindingen:
- GPIO 18 naar LED anode (langere, positieve lead)
- LED-kathode (korter, negatief lood) tot 330 Ω weerstand (beide uiteinden)
- 330 Ω weerstand (andere uiteinde) aan de grond
Raadpleeg indien nodig het volgende pin-outdiagram:
Afbeelding met dank aan Raspberry Pi Foundation.
Hint
Een GPIO-breakoutbord in combinatie met een breadboard wordt aanbevolen om verbindingen met de GPIO-header te stroomlijnen.
De app maken
Voer de volgende stappen uit in de ontwikkelomgeving van uw voorkeur:
Maak een nieuwe .NET-console-app met behulp van de .NET CLI of Visual Studio. Noem het BlinkTutorial.
dotnet new console -o BlinkTutorial cd BlinkTutorial
Voeg het system.Device.Gpio-pakket toe aan het project. Gebruik .NET CLI uit de projectmap of Visual Studio.
dotnet add package System.Device.Gpio --version 3.2.0-*
Vervang de inhoud van Program.cs door de volgende 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; }
In de voorgaande code:
- Een using-declaratie maakt een exemplaar van
GpioController
. Deusing
declaratie zorgt ervoor dat het object wordt verwijderd en hardwarebronnen correct worden vrijgegeven. - GPIO pin 18 is geopend voor uitvoer
- Een
while
lus wordt oneindig uitgevoerd. Elke iteratie:- Hiermee schrijft u een waarde naar GPIO pin 18. Als
ledOn
waar is, zet hijPinValue.High
aan. Anders wordt er geschrevenPinValue.Low
. - Wacht 1000 milliseconden.
- Wisselt de waarde van
ledOn
.
- Hiermee schrijft u een waarde naar GPIO pin 18. Als
- Een using-declaratie maakt een exemplaar van
Bouw de app. Als u de .NET CLI gebruikt, voert u het volgende uit
dotnet build
. Druk op Ctrl+Shift+B om te bouwen in Visual Studio.Implementeer de app als een zelfstandige app in de SBC. Zie .NET-apps implementeren in Raspberry Pi voor instructies. Zorg ervoor dat u de uitvoerbare uitvoerbaar bestand uitvoeringsrechten geeft met behulp van
chmod +x
.Voer de app uit op de Raspberry Pi door over te schakelen naar de implementatiemap en het uitvoerbare bestand uit te voeren.
./BlinkTutorial
De LED knippert elke seconde aan en uit.
Beëindig het programma door op Ctrl+C te drukken.
Gefeliciteerd! U hebt GPIO gebruikt om een LED te knipperen.
De broncode ophalen
De bron voor deze zelfstudie is beschikbaar op GitHub.