Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você 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 de estado. Neste tópico, você usará .NET e os pinos GPIO do Raspberry Pi para alimentar um LED e piscá-lo 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)
- .NET SDK 10 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 a .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:
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:
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:
Crie um novo aplicativo de console .NET usando a CLI .NET ou Visual Studio. Nomeie-o BlinkTutorial.
dotnet new console -o BlinkTutorial cd BlinkTutorialAdicione 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.1Substitua 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. Ausingdeclaraçã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
whileloop é executado indefinidamente. Cada iteração:- Grava um valor no pino 18 do GPIO. Se
ledOné true, ele escrevePinValue.High(ativado). Caso contrário, ele gravaPinValue.Low. - Entra em modo de suspensão após 1000 ms.
- Alterna o valor de
ledOn.
- Grava um valor no pino 18 do GPIO. Se
- Uma declaração de uso cria uma instância de
Crie o aplicativo. Se estiver usando a CLI .NET, execute
dotnet build. Para criar em Visual Studio, pressione Ctrl+Shift+B.Implante o aplicativo no SBC como um aplicativo independente. Para obter instruções, consulte Deploy .NET aplicativos para Raspberry Pi. Certifique-se de conceder permissão de execução ao executável usando
chmod +x.Execute o aplicativo no Raspberry Pi acessando o diretório de implantação e executando o arquivo executável.
./BlinkTutorialO 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 origem deste tutorial está disponível em GitHub.