Compartilhar via


Fazer um LED piscar

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

Pré-requisitos

  • Computador de placa única baseado em ARM (ARMv7 ou superior) (SBC)
  • LED de 5 mm
  • resistor de 330 Ω
  • Placa universal
  • Cabos de jumper
  • Placa de expansão GPIO Raspberry Pi (opcional/recomendado)
  • SDK do .NET 8 ou posterior

Observação

Este tutorial é escrito supondo que o dispositivo de destino seja Raspberry Pi. No entanto, este tutorial pode ser usado para qualquer SBC baseado em Linux que dê suporte ao .NET, como Orange Pi, ODROID e muito mais.

Verifique se o SSH está habilitado em seu dispositivo. Para Raspberry Pi, consulte Configurar um servidor SSH na documentação do Raspberry Pi.

Preparar o hardware

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

Um diagrama de Fritzing mostrando um circuito com um LED e um resistor

A imagem acima ilustra as seguintes conexões:

  • GPIO 18 para ânodo de LED (mais longo, fio positivo)
  • Catodo de LED (mais curto, cabo negativo) para resistor de 330 Ω (qualquer extremidade)
  • Conectar a outra extremidade do resistor de 330 Ω à terra

Consulte o seguinte diagrama de pinagem conforme necessário:

Um diagrama mostrando o pinout do cabeçalho GPIO Raspberry Pi. Imagem cedida pela Raspberry Pi Foundation.
Imagem cortesia Raspberry Pi Foundation.

Dica

Recomenda-se uma placa de fuga GPIO com uma placa de ensaio para simplificar as conexões com o cabeçalho GPIO.

Criar o aplicativo

Conclua as seguintes etapas em seu ambiente de desenvolvimento preferencial:

  1. Crie um novo aplicativo de console do .NET usando a CLI do .NET ou o Visual Studio. Nomeie-o BlinkTutorial.

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

    dotnet add package System.Device.Gpio --version 3.2.0-*
    
  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 de uso cria uma instância de GpioController. A using declaração garante que o objeto seja descartado e os recursos de hardware sejam liberados corretamente.
    • O pino 18 do GPIO é aberto para saída
    • Um while loop é executado indefinidamente. Cada iteração:
      1. Grava um valor no pino 18 do GPIO. Se ledOn for verdade, ele gravará PinValue.High (ativado). Caso contrário, ele gravará PinValue.Low.
      2. Entra em modo de suspensão após 1000 ms.
      3. Alterna o valor de ledOn.
  4. Crie o aplicativo. Se estiver usando a CLI do .NET, execute dotnet build. Para compilar no Visual Studio, pressione Ctrl+Shift+B.

  5. Implante o aplicativo no SBC como um aplicativo independente. Para obter instruções, consulte Implantar aplicativos .NET no Raspberry Pi. Certifique-se de conceder permissão de execução ao executável usando .

  6. Execute o aplicativo no Raspberry Pi acessando o diretório de implantação e executando o arquivo executável.

    ./BlinkTutorial
    

    O LED pisca e acende a cada segundo.

  7. Encerre o programa pressionando Ctrl+C.

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

Obter o código-fonte

A origem deste tutorial está disponível no GitHub.

Próximas etapas