Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Generella I/O-pinnar (GPIO) kan styras individuellt. Detta är användbart för att styra lysdioder, reläer och andra tillståndskänsliga enheter. I det här avsnittet använder du .NET och Raspberry Pi:s GPIO-stift för att driva en LED och blinka den upprepade gånger.
Förutsättningar
- ARM-baserad (ARMv7 eller senare) enkelkortsdator (SBC)
- 5 mm LED-lampa
- 330 Ω motstånd
- Skärbräda
- Bygeltrådar
- Raspberry Pi GPIO breakout board (valfritt/rekommenderas)
- .NET SDK 8 eller senare
Anmärkning
Den här handledningen är skriven med antagandet att målenheten är en Raspberry Pi. Den här handledningen kan dock användas för alla Linux-baserade SBC som stöder .NET, till exempel Orange Pi, ODROID med mera.
Kontrollera att SSH är aktiverat på enheten. För Raspberry Pi , se Konfigurera en SSH-server i Raspberry Pi-dokumentationen.
Förbereda maskinvaran
Använd maskinvarukomponenterna för att skapa kretsen enligt följande diagram:
Bilden ovan visar följande anslutningar:
- GPIO 18 till LED-anod (längre, positiv ledning)
- LED-katod (kortare, negativ ledning) till 330 Ohm motstånd (någon ände)
- 330 Ω motstånd (andra änden) till marken
Se följande pinout-diagram efter behov:
Bild med tillstånd Raspberry Pi Foundation.
Tips/Råd
En GPIO-utbrytartavla tillsammans med en brödskiva rekommenderas för att effektivisera anslutningarna till GPIO-huvudet.
Skapa appen
Slutför följande steg i den utvecklingsmiljö du föredrar:
Skapa en ny .NET-konsolapp med hjälp av .NET CLI eller Visual Studio. Ge den namnet BlinkTutorial.
dotnet new console -o BlinkTutorial cd BlinkTutorialLägg till paketet System.Device.Gpio i projektet. Använd antingen .NET CLI från projektkatalogen eller Visual Studio.
dotnet add package System.Device.Gpio --version 3.2.0-*Ersätt innehållet i Program.cs med följande kod:
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; }I koden ovan:
- En användningsdeklaration skapar en instans av
GpioController. Deklarationenusingsäkerställer att objektet tas bort och att maskinvaruresurser släpps korrekt. - GPIO-stift 18 öppnas för utdata
- En
whileloop körs på obestämd tid. Varje iteration:- Skriver ett värde till GPIO-stift 18. Om
ledOnär sant skrivsPinValue.High(på). Annars skriver denPinValue.Low. - Väntar i 1000 ms.
- Växlar värdet för
ledOn.
- Skriver ett värde till GPIO-stift 18. Om
- En användningsdeklaration skapar en instans av
Skapa appen. Om du använder .NET CLI kör du
dotnet build. Om du vill skapa i Visual Studio trycker du på Ctrl+Skift+B.Distribuera appen till SBC som en fristående app. Anvisningar finns i Distribuera .NET-appar till Raspberry Pi. Se till att ge den körbara filen körningsbehörighet med hjälp av
chmod +x.Kör appen på Raspberry Pi genom att växla till mappen för distribution och köra den körbara filen.
./BlinkTutorialLysdioderna blinkar av och på varje sekund.
Avsluta programmet genom att trycka på Ctrl+C.
Grattis! Du har använt GPIO för att blinka en lysdiod.
Hämta källkoden
Källan för den här handledningen är tillgänglig på GitHub.