Compartir vía


Hacer parpadear un LED

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:

Diagrama de Fritzing que muestra un circuito con un LED y una resistencia

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:

Un diagrama que muestra el pinout del encabezado de GPIO de Raspberry Pi. Imagen cortesía de la Fundación Raspberry Pi.
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:

  1. 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
    
  2. 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-*
    
  3. 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. La using 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:
      1. Escribe un valor en el pin gpIO 18. Si ledOn es true, se escribe PinValue.High (encender). De lo contrario, escribe PinValue.Low.
      2. Se suspende durante 1000 ms.
      3. Alterna el valor de ledOn.
  4. 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.

  5. 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.

  6. 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.

  7. 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.

Pasos siguientes