Dela via


Blinka ett LED-ljus

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:

Ett Fritzing-diagram som visar en krets med en LED och ett motstånd

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:

Ett diagram som visar pinout-koden för Raspberry Pi GPIO-huvudet. Bild med tillstånd Raspberry Pi Foundation.
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:

  1. Skapa en ny .NET-konsolapp med hjälp av .NET CLI eller Visual Studio. Ge den namnet BlinkTutorial.

    dotnet new console -o BlinkTutorial
    cd BlinkTutorial
    
  2. Lä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-*
    
  3. 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. Deklarationen using säkerställer att objektet tas bort och att maskinvaruresurser släpps korrekt.
    • GPIO-stift 18 öppnas för utdata
    • En while loop körs på obestämd tid. Varje iteration:
      1. Skriver ett värde till GPIO-stift 18. Om ledOn är sant skrivs PinValue.High (på). Annars skriver den PinValue.Low.
      2. Väntar i 1000 ms.
      3. Växlar värdet för ledOn.
  4. 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.

  5. 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.

  6. Kör appen på Raspberry Pi genom att växla till mappen för distribution och köra den körbara filen.

    ./BlinkTutorial
    

    Lysdioderna blinkar av och på varje sekund.

  7. 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.

Nästa steg