Partilhar via


Piscar o LED

Os pinos de E/S de uso geral (GPIO) podem ser controlados individualmente. Isso é útil para controlar LEDs, relés e outros dispositivos com estado. Neste tópico, vais usar o .NET e os pinos GPIO do teu Raspberry Pi para alimentar um LED e piscá-lo repetidamente.

Pré-requisitos

  • Computador de placa única (SBC) baseado em ARM (ARMv7 ou superior)
  • LED de 5 mm
  • Resistência de 330 Ω
  • Tabuleiro de pão
  • Fios de ligação
  • Placa de expansão Raspberry Pi GPIO (opcional/recomendado)
  • .NET SDK 10 ou posterior

Observação

Este tutorial foi escrito assumindo que o dispositivo alvo é o Raspberry Pi. No entanto, este tutorial pode ser usado para qualquer SBC baseado em Linux que suporte .NET, como Orange Pi, ODROID e outros.

Certifique-se de que o SSH está ativado no seu dispositivo. Para o Raspberry Pi, consulte Configurando um servidor SSH na documentação do Raspberry Pi.

Preparar o hardware

Use os componentes de hardware para construir o circuito conforme descrito no diagrama a seguir:

Um diagrama de Fritzing mostrando um circuito com um LED e uma resistência

A imagem acima mostra as seguintes conexões:

  • GPIO 18 para ânodo LED (chumbo positivo mais longo)
  • Catodo LED (chumbo negativo mais curto) para resistência de 330 Ω (ambas as extremidades)
  • Resistência de 330 Ω (outra extremidade) à terra

Consulte o diagrama de pinagem a seguir, conforme necessário:

Um diagrama que mostra o pinout do cabeçalho GPIO do Raspberry Pi. Imagem cortesia da Raspberry Pi Foundation.
Imagem cortesia da Raspberry Pi Foundation.

Sugestão

Recomenda-se uma placa de breakout GPIO em conjunto com uma placa de ensaio para agilizar as conexões ao cabeçalho GPIO.

Criar a aplicação

Conclua as seguintes etapas em seu ambiente de desenvolvimento preferido:

  1. Crie uma nova aplicação de consola .NET usando .NET CLI ou Visual Studio. Chama-lhe BlinkTutorial.

    dotnet new console -o BlinkTutorial
    cd BlinkTutorial
    
  2. Adicione o pacote System.Device.Gpio ao projeto. Use .NET CLI do diretório do projeto ou Visual Studio.

    dotnet package add System.Device.Gpio --version 4.0.1
    
  3. Substitua o conteúdo do Program.cs pelo seguinte código:

    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;
    }
    

    No código anterior:

    • Uma declaração usando cria uma instância de GpioController. A using declaração garante que o objeto é eliminado e que os recursos de hardware são devidamente libertados.
    • O pino GPIO 18 é aberto para saída
    • Um while loop corre indefinidamente. Cada iteração:
      1. Grava um valor no pino 18 do GPIO. Se ledOn for verdadeiro, escreve PinValue.High (on). Caso contrário, escreve PinValue.Low.
      2. Dorme 1000 ms.
      3. Alterna o valor de ledOn.
  4. Crie o aplicativo. Se estiver a usar a CLI .NET, execute dotnet build. Para construir em Visual Studio, pressione Ctrl+Shift+B.

  5. Implante o aplicativo no SBC como um aplicativo independente. Para instruções, consulte Deploy .NET apps para Raspberry Pi. Certifique-se de dar permissão de execução ao executável usando chmod +x.

  6. Execute a aplicação no Raspberry Pi mudando para o diretório de implantação e executando o executável.

    ./BlinkTutorial
    

    O LED pisca e acende a cada segundo.

  7. Termine o programa pressionando Ctrl+C.

Parabéns! Você usou o GPIO para piscar um LED.

Obter o código-fonte

A fonte deste tutorial está disponível em GitHub.

Próximos passos