Fazer um LED piscar

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

Pré-requisitos

  • SBC (computador de placa única) baseado em ARM (ARMv7 ou superior)
  • LED de 5 mm
  • resistor de 330 Ω
  • Placa universal
  • Cabos de jumper
  • Placa de breakout Raspberry Pi GPIO (opcional/recomendado)
  • .NET SDK 7 ou posterior

Observação

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

Certifique-se de que o SSH esteja ativado no dispositivo. Para o Raspberry Pi, confira Configuração de um servidor SSH na documentação do Raspberry Pi.

Preparar o hardware

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

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

A imagem acima mostra 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)
  • Resistor de 330 Ω (outra extremidade) para terra

Consulte o seguinte diagrama de pinagem conforme necessário:

Um diagrama mostrando a pinagem do cabeçalho Raspberry Pi GPIO. Imagem cortesia da Fundação Raspberry Pi.
Imagem cortesia da 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

Siga estas etapas em seu ambiente de desenvolvimento preferencial:

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

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

    dotnet add package System.Device.Gpio --version 2.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 usingdeclaraçã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. Dorme 1000 ms.
      3. Alterna o valor de ledOn.
  4. Crie o aplicativo. Ao usar a CLI do .NET, execute dotnet build. Para criar no Visual Studio, pressione Ctrl+Shift+B.

  5. Implante o aplicativo no SBC como um aplicativo autônomo. Para obter instruções, confira Implantar aplicativos .NET no Raspberry Pi . Dê a permissão de execução ao executável usando chmod +x.

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

    ./BlinkTutorial
    

    O LED pisca e acende a cada segundo.

  7. Encerre o programa pressionando Ctrl+C.

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

Obter o código-fonte

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

Próximas etapas