Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Capteur de lumière numérique – Alimenter une LED avec la lumière ambiante via Windows 10 IoT Core

Présentation du projet

Ce projet Windows 10 IoT Core démontre comment piloter une LED en temps réel en fonction de la lecture d'un capteur de lumière numérique. En surveillant simplement la broche GPIO connectée au capteur, l'application bascule la LED chaque fois que la lumière est détectée ou absente.

Démonstration du résultat du projet (image placeholder)

Configuration de la carte

Voici le schéma de câblage. N'hésitez pas à ajuster les numéros de broches tant que vous mettez à jour le code en conséquence.

La partie que j'aime : Le codage !

Cette application ne contient qu'une seule page qui héberge toute la logique, gardant le projet léger et idéal pour le prototypage rapide.

Étape 1 : Créer le projet UWP

Étape 2 : Implémenter la logique

Ouvrez MainPage.xaml.cs et remplacez les directives using existantes par :

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

Déclarez les membres des broches GPIO du capteur et de la LED :

private GpioPin _sensorPin;
private GpioPin _ledPin;

Définissez les numéros de broches GPIO :

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

Créez une routine d'initialisation qui ouvre les broches et définit leurs modes :

private void Initialize() {
    var gpioController = GpioController.GetDefault();
    // Capteur – entrée
    _sensorPin = gpioController.OpenPin(_sensorGpioPinNumber);
    _sensorPin.SetDriveMode(GpioPinDriveMode.Input);
    _sensorPin.ValueChanged += HandleSensorLightDetectionChange;
    // LED – sortie
    _ledPin = gpioController.OpenPin(_ledGpioPinNumber);
    _ledPin.SetDriveMode(GpioPinDriveMode.Output);
    // État initial
    HandleLightStatus();
}

Réagissez aux changements du capteur :

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

Basculez la LED en fonction de la lecture du capteur. Une valeur haute indique l'obscurité, tandis que faible signifie que la lumière est présente :

private void HandleLightStatus() {
    if (_sensorPin.Read() == GpioPinValue.High) {
        _ledPin.Write(GpioPinValue.Low); // Éteint la LED
    } else {
        _ledPin.Write(GpioPinValue.High); // Allume la LED
    }
}

Placez l'appel Initialize dans le constructeur de la page après InitializeComponent() :

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

Code source complet

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);
            }
        }
    }
}

Le code ci-dessus s'exécute en continu, réagissant instantanément aux changements de lumière ambiante.

Pour des détails supplémentaires, consultez la documentation Digital Light Sensor.

Processus de fabrication

  1. Capteurs magnétiques Hall numériques : fondamentaux, conception et applications automobiles
  2. Comment connecter un capteur de température DS1820 One‑Wire à un Raspberry Pi via GPIO
  3. Connexion du capteur ultrasonique HC‑SR04 au Raspberry Pi 3 : Guide complet
  4. Capteur de suivi de ligne KY‑033 avec Raspberry Pi : Détecteur de porte/lignes simple
  5. Capteur de pression barométrique BMP180 I2C – Guide d'intégration Raspberry Pi
  6. Comment connecter un thermomètre numérique DS18B20 One-Wire à un Raspberry Pi – Guide étape par étape
  7. Lecture d'un capteur Hall linéaire avec Raspberry Pi : Guide Java et insights ADC0832
  8. Construire un système de surveillance température et lumière multi-capteurs avec Raspberry Pi et DS18B20
  9. Test du capteur de température DS18B20 sur Raspberry Pi