Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Sensor de Luz Digital – Enciende un LED con Luz Ambiental usando Windows 10 IoT Core

Este proyecto Windows 10 IoT Core demuestra cómo controlar un LED en tiempo real basándose en la lectura de un sensor de luz digital. Simplemente monitorizando el pin GPIO conectado al sensor, la aplicación alterna el LED siempre que se detecta luz o ausencia de ella.

Resumen del Proyecto

El objetivo es sencillo: cuando hay luz ambiental, el LED se enciende; cuando la luz desaparece, el LED se apaga. Toda la lógica se maneja en un único archivo C# sin UI, haciendo el código ligero e ideal para prototipado rápido.

Demo del resultado del proyecto (imagen placeholder)

Configuración de la Placa

A continuación el diagrama de cableado. Siéntete libre de ajustar los números de pin mientras actualices el código en consecuencia.

La Parte que Me Gusta: ¡Programación!

Esta aplicación contiene solo una página que alberga toda la lógica, manteniendo el proyecto esbelto.

Paso 1: Crear el Proyecto UWP

Paso 2: Implementar la Lógica

Abre MainPage.xaml.cs y reemplaza las directivas using existentes con:

using Windows.UI.Xaml.Controls;
using Windows.Devices.Gpio;

Declara los miembros de pines GPIO del sensor y LED:

private GpioPin _sensorPin;
private GpioPin _ledPin;

Define los números de pin GPIO:

private int _sensorGpioPinNumber = 5;
private int _ledGpioPinNumber = 12;

Crea una rutina de inicialización que abra los pines y establezca sus modos:

private void Initialize() {
    var gpioController = GpioController.GetDefault();
    // Sensor – entrada
    _sensorPin = gpioController.OpenPin(_sensorGpioPinNumber);
    _sensorPin.SetDriveMode(GpioPinDriveMode.Input);
    _sensorPin.ValueChanged += HandleSensorLightDetectionChange;
    // LED – salida
    _ledPin = gpioController.OpenPin(_ledGpioPinNumber);
    _ledPin.SetDriveMode(GpioPinDriveMode.Output);
    // Estado inicial
    HandleLightStatus();
}

Responde a cambios del sensor:

private void HandleSensorLightDetectionChange(GpioPin sender, GpioPinValueChangedEventArgs args) {
    HandleLightStatus();
}

Alterna el LED según la lectura del sensor. Un valor alto indica oscuridad, mientras que bajo significa luz presente:

private void HandleLightStatus() {
    if (_sensorPin.Read() == GpioPinValue.High) {
        _ledPin.Write(GpioPinValue.Low); // Apaga LED
    } else {
        _ledPin.Write(GpioPinValue.High); // Enciende LED
    }
}

Coloca la llamada a Initialize en el constructor de la página tras InitializeComponent():

public MainPage() {
    this.InitializeComponent();
    Initialize();
}

Código Fuente Completo

using Windows.UI.Xaml.Controls;
using Windows.Devices.Gpio;

namespace DigitalLightSensorApp {
    public sealed partial class MainPage : Page {
        private GpioPin _sensorPin;
        private GpioPin _ledPin;
        private int _sensorGpioPinNumber = 5;
        private int _ledGpioPinNumber = 12;

        public MainPage() {
            this.InitializeComponent();
            Initialize();
        }

        private void Initialize() {
            var gpioController = GpioController.GetDefault();
            _sensorPin = gpioController.OpenPin(_sensorGpioPinNumber);
            _sensorPin.SetDriveMode(GpioPinDriveMode.Input);
            _sensorPin.ValueChanged += HandleSensorLightDetectionChange;
            _ledPin = gpioController.OpenPin(_ledGpioPinNumber);
            _ledPin.SetDriveMode(GpioPinDriveMode.Output);
            HandleLightStatus();
        }

        private void HandleSensorLightDetectionChange(GpioPin sender, GpioPinValueChangedEventArgs args) {
            HandleLightStatus();
        }

        private void HandleLightStatus() {
            if (_sensorPin.Read() == GpioPinValue.High) {
                _ledPin.Write(GpioPinValue.Low);
            } else {
                _ledPin.Write(GpioPinValue.High);
            }
        }
    }
}

El código anterior se ejecuta continuamente, reaccionando instantáneamente a cambios en la luz ambiental.

Para detalles adicionales, consulta la documentación del Sensor de Luz Digital.

Proceso de manufactura

  1. Cómo conectar un sensor de temperatura DS1820 One‑Wire a Raspberry Pi usando GPIO
  2. Conexión del sensor ultrasónico HC‑SR04 a Raspberry Pi 3 – Guía completa
  3. Sensor de seguimiento de línea con Raspberry Pi – Detector simple KY‑033 para puerta/línea
  4. Sensor Barométrico BMP180 I2C – Guía de Integración con Raspberry Pi
  5. Cómo Conectar un Termómetro Digital DS18B20 One‑Wire a Raspberry Pi – Guía Paso a Paso
  6. Lectura de Sensor Hall Lineal con Raspberry Pi: Guía Java y Análisis del ADC0832
  7. Construya un Sistema de Monitorización de Temperatura y Luz Multi‑Sensor con Raspberry Pi y DS18B20
  8. Prueba del Sensor de Temperatura DS18B20 en Raspberry Pi
  9. De Luz Solar de $4 a Nodo Sensor Inalámbrico Inteligente: MSP430 + nRF24L01+ para Monitorización de Jardín
  10. Sensor de Proximidad Infrarrojo de Bajo Coste para Raspberry Pi Usando Solo Pines Digitales
  11. Sensores magnéticos Hall digitales: Fundamentos, diseño y aplicaciones automotrices