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

Une application Windows 10 IoT principale qui s'allume une LED basée sur la lecture du capteur de lumière numérique.

Histoire

Il m'a fallu un certain temps pour comprendre que la lecture de l'état du capteur de lumière numérique est simple et dépend simplement de la lecture de la valeur GPIO !

L'idée du projet est très simple, il suffit d'allumer la LED en lumière lorsque le capteur détecte de la lumière et inversement.

Démo du résultat du projet

Alors allons de l'avant et vérifions le schéma de câblage ci-dessous et d'ailleurs je n'ai pas trouvé de schéma pour le capteur de lumière numérique donc je l'ai gardé sous forme de texte !!!!

Mise en place du tableau

Schéma de câblage

Il vous appartient également de modifier les numéros de broche, mais assurez-vous qu'ils sont correctement reflétés dans le code UWP.

La partie que j'aime, le codage !

Ce projet n'a qu'une page contenant le code C# et aucune interface utilisateur n'est requise cette fois.

Étape 1 : Création de l'application UWP

La photo va ici !

Étape 2 :  Ouvrez la MainPage.xaml.cs et codons

Supprimez toutes les utilisations et n'incluez que les éléments suivants

en utilisant Windows.UI.Xaml.Controls;
en utilisant Windows.Devices.Gpio;

Déclarez les variables de membre de broche GPIO du capteur et de la LED

GpioPin privé _sensorPin;
GpioPin privé _ledPin;;

Déclarez les variables de numéro de broche GPIO

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

Créer la méthode d'initialisation

private void Initialize()
{
// Récupère le contrôleur Gpio par défaut
var gpioController =GpioController.GetDefault();
//Ouvrez la broche Gpio du capteur et réglez le mode sur input
_sensorPin =gpioController.OpenPin(_sensorGpioPinNumber);
_sensorPin.SetDriveMode(GpioPinDriveMode.Input);
_sensorPin.ValueChanged +=HandleSensorLightDetectionChange ;;
// Ouvrez la broche LED Gpio et définissez le mode sur sortie
_ledPin =gpioController.OpenPin(_ledGpioPinNumber);
_ledPin.SetDriveMode(GpioPinDriveMode.Output);
handleLightStatus( );
}

Appeler la méthode handleLightStaus dans l'événement HandleSensorLightDetectionChange

private void HandleSensorLightDetectionChange (expéditeur GpioPin,
GpioPinValueChangedEventArgs arguments)
{
handleLightStatus();
}

Créer la méthode handleLightStatus

private void handleLightStatus()
{
// si aucun capteur de lumière n'a détecté de lumière, éteignez la LED
if (_sensorPin.Read() ==GpioPinValue.High)
{
//Éteignez la LED
_ledPin.Write(GpioPinValue.Low);
}
else
{
//Allumez la LED
_ledPin.Write(GpioPinValue.High);
}
}

J'ai trouvé que la valeur « Élevée » renvoyée par le capteur Gpio Pin indique qu'aucune lumière n'est détectée et « Low » indique que la lumière est détectée.

Le code complet se trouve ci-dessous :

en utilisant Windows.UI.Xaml.Controls ;
en utilisant Windows.Devices.Gpio ;
espace de noms DigitalLightSensorApp
{
classe partielle scellée publique MainPage :Page
{
private GpioPin _sensorPin;
private GpioPin _ledPin;
private int _sensorGpioPinNumber =5;
private int _ledGpioPinNumber =12;
public MainPage()
{
this.InitializeComponent();
}
private void Initialize()
{
// Obtient le contrôleur Gpio par défaut
var gpioController =GpioController.GetDefault();
//Ouvrez la broche Gpio du capteur et définissez le mode sur input
_sensorPin =gpioController.OpenPin(_sensorGpioPinNumber);
_sensorPin.SetDriveMode(GpioPinDriveMode.Input);
_sensorPin.ValueChanged + =HandleSensorLightDetectionChange;;
// Ouvrez la broche LED Gpio et définissez le mode sur sortie
_ledPin =gpioController.OpenPin(_ledGpioPinNumber);
_ledPin.SetDriveMode(GpioPinDriveMode.Output);
handleLightStatus( );
}
private void HandleSensorLightDetectionChange(GpioPin sender, GpioPinValueChangedEventArgs args)
{
handleLightStatus();
}
private void handleLightStatus()
{
// si aucun capteur de lumière n'a détecté de lumière, éteignez la LED
if (_sensorPin.Read() ==GpioPinValue.High)
{
//Turn éteignez la LED
_ledPin.Write(GpioPinValue.Low);
}
else
{
//Allumez la LED
_ledPin.Write(GpioPinValue .Élevé);
}
}
}
}

En savoir plus sur les détails :capteur de lumière numérique


Processus de fabrication

  1. Principes de base des capteurs magnétiques numériques
  2. Capteur de température 1 fil DS1820 au Raspberry Pi (GPIO directement)
  3. Capteur à ultrasons (HC-SR04) + Raspberry Pi
  4. Capteur de suivi de ligne avec RPi
  5. Capteur de pression barométrique numérique BMP180 I2C
  6. Capteur de thermomètre numérique Raspberry Pi à 1 fil (DS18B20)
  7. Capteur Hall numérique Raspberry Pi en JAVA
  8. Capteur de température et de luminosité Raspberry Pi
  9. Test du capteur DS18B20