Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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, você usará o .NET e os pinos GPIO do 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 8 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 muito mais.
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:
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:
Imagem cedida pela 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:
Crie um novo aplicativo de console .NET usando a CLI do .NET ou o Visual Studio. Nomeie-o BlinkTutorial.
dotnet new console -o BlinkTutorial cd BlinkTutorial
Adicione o pacote System.Device.Gpio ao projeto. Utilize o CLI do .NET no diretório do projeto ou o Visual Studio.
dotnet add package System.Device.Gpio --version 3.2.0-*
Substitua o conteúdo do ficheiro 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 using cria uma instância de
GpioController
. Ausing
declaração garante que o objeto seja descartado e que os recursos de hardware sejam liberados corretamente. - O pino GPIO 18 é aberto para saída
- Um
while
loop é executado indefinidamente. Cada iteração:- Grava um valor no pino 18 do GPIO. Se
ledOn
for verdade, escrevePinValue.High
(em). Caso contrário, escrevePinValue.Low
. - Dorme 1000 ms.
- Alterna o valor de
ledOn
.
- Grava um valor no pino 18 do GPIO. Se
- Uma declaração using cria uma instância de
Crie o aplicativo. Se estiver usando a CLI do .NET, execute
dotnet build
. Para criar no Visual Studio, pressione Ctrl+Shift+B.Implante o aplicativo no SBC como um aplicativo independente. Para obter instruções, consulte Implantar aplicativos .NET no Raspberry Pi. Certifique-se de dar permissão de execução ao ficheiro executável usando
chmod +x
.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.
Encerre 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 no GitHub.