Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los pines de E/S de uso general (GPIO) se pueden controlar individualmente. Esto es útil para controlar LEDs, relés y otros dispositivos con estado. En este artículo, usarás .NET y los pines GPIO de tu Raspberry Pi para encender un LED y hacerlo parpadear repetidamente.
Prerrequisitos
- Equipo con placa única (ARMv7 o superior) basado en ARM (SBC)
- LED de 5 mm
- Resistencia de 330 Ω
- Placa de pruebas
- Cables de puente
- Placa de expansión GPIO de Raspberry Pi (opcional/recomendada)
- SDK de .NET 8 o posterior
Nota:
Este tutorial se escribe suponiendo que el dispositivo de destino sea Raspberry Pi. Sin embargo, este tutorial se puede usar para cualquier SBC basado en Linux que admita .NET, como Orange Pi, ODROID, etc.
Asegúrese de que SSH está habilitado en el dispositivo. Para Raspberry Pi, consulte Configuración de un servidor SSH en la documentación de Raspberry Pi.
Preparación del hardware
Use los componentes de hardware para compilar el circuito como se muestra en el diagrama siguiente:
En la imagen anterior se muestran las siguientes conexiones:
- GPIO 18 al nodo LED (plomo positivo más largo)
- Del cátodo LED (cable negativo más corto) a la resistencia de 330 Ω (cualquiera de los extremos)
- Resistencia de 330 Ω (el otro extremo) a la toma de tierra
Consulte el siguiente diagrama de anclaje según sea necesario:
Imagen cortesía de Raspberry Pi Foundation.
Sugerencia
Se recomienda una placa de pruebas de GPIO junto con una placa para optimizar las conexiones con el encabezado de GPIO.
Creación de la aplicación
Complete los pasos siguientes en el entorno de desarrollo preferido:
Cree una aplicación de consola de .NET mediante la CLI de .NET o Visual Studio. Asígneles el nombre BlinkTutorial.
dotnet new console -o BlinkTutorial cd BlinkTutorial
Agregue el paquete System.Device.Gpio al proyecto. Use la CLI de .NET desde el directorio del proyecto o Visual Studio.
dotnet add package System.Device.Gpio --version 3.2.0-*
Reemplace el contenido de Program.cs por el código siguiente:
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; }
En el código anterior:
- Una declaración using crea una instancia de
GpioController
. Lausing
declaración garantiza que el objeto se elimina y los recursos de hardware se liberan correctamente. - Se abre el pin 18 de GPIO para la salida
- Un
while
bucle se ejecuta indefinidamente. Cada iteración:- Escribe un valor en el pin gpIO 18. Si
ledOn
es true, se escribePinValue.High
(encender). De lo contrario, escribePinValue.Low
. - Se suspende durante 1000 ms.
- Alterna el valor de
ledOn
.
- Escribe un valor en el pin gpIO 18. Si
- Una declaración using crea una instancia de
Compile la aplicación. Si usa la CLI de .NET, ejecute
dotnet build
. Para realizar la compilación en Visual Studio, presione Ctrl+Mayús+B.Despliegue la aplicación en el SBC como una aplicación autónoma. Para obtener instrucciones, consulte Implementación de aplicaciones .NET en Raspberry Pi. Asegúrese de conceder al ejecutable permiso de ejecución mediante
chmod +x
.Ejecute la aplicación en Raspberry Pi cambiando al directorio de implementación y ejecutando el ejecutable.
./BlinkTutorial
El LED se enciende y se apaga cada segundo.
Para finalizar el programa, presione Ctrl+C.
¡Felicidades! Has utilizado GPIO para hacer parpadear un LED.
Obtención del código fuente
El origen de este tutorial está disponible en GitHub.