Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
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.