Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Digitaler Lichtsensor

Eine Windows 10 IoT-Kernanwendung, die sich einschaltet eine LED basierend auf dem Messwert des digitalen Lichtsensors.

Geschichte

Ich habe einige Zeit gebraucht, um herauszufinden, ob der Status des digitalen Lichtsensors einfach ist und einfach vom Lesen des GPIO-Werts abhängt!

Die Idee des Projekts ist sehr einfach, schalte einfach LED im Licht ein, wenn der Sensor Licht erkennt und umgekehrt.

Demo des Projektergebnisses

Lassen Sie uns also weitermachen und den Schaltplan unten überprüfen. Übrigens habe ich keinen Plan für den digitalen Lichtsensor gefunden, also habe ich ihn als Text behalten !!!!

Einrichten des Boards

Schaltplan

Es liegt an Ihnen, auch die PIN-Nummern zu ändern, aber stellen Sie sicher, dass sie im UWP-Code korrekt wiedergegeben werden.

Der Teil, den ich mag, Codierung!

Dieses Projekt hat nur eine Seite, die den C#-Code enthält und diesmal ist keine Benutzeroberfläche erforderlich.

Schritt 1:Erstellen der UWP-Anwendung

Foto geht hier!

Schritt 2:  Öffne die MainPage.xaml.cs und lass uns programmieren

Entferne alle Verwendungen und füge nur Folgendes hinzu

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

Deklarieren Sie die Sensor- und LED-GPIO-Pin-Member-Variablen

privater GpioPin _sensorPin;
privater GpioPin _ledPin;;

Deklarieren Sie die GPIO-Pinnummer-Variablen

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

Erstellen Sie die Initialisierungsmethode

private void Initialize()
{
// Holen Sie sich den Standard-Gpio-Controller
var gpioController =GpioController.GetDefault();
//Öffnen Sie den Sensor-Gpio-Pin und stellen Sie den Modus auf input
_sensorPin =gpioController.OpenPin(_sensorGpioPinNumber);
_sensorPin.SetDriveMode(GpioPinDriveMode.Input);
_sensorPin.ValueChanged +=HandleSensorLightDetectionChange;;
// Öffne den LED Gpio Pin und setze den Modus auf Ausgabe
_ledPin =gpioController.OpenPin(_ledGpioPinNumber);
_ledPin.SetDriveMode(GpioPinDriveMode.Output);
handleLightStatus( );
}

Aufruf der Methode handleLightStaus im Ereignis HandleSensorLightDetectionChange

private void HandleSensorLightDetectionChange(GpioPin-Sender,
GpioPinValueChangedEventArgs args)
{
handleLightStatus();
}

Erstelle die handleLightStatus-Methode

private void handleLightStatus()
{
// wenn kein Lichtsensor Licht erkannt hat, dann schalte die LED aus
if (_sensorPin.Read() ==GpioPinValue.High)
{
//LED ausschalten
_ledPin.Write(GpioPinValue.Low);
}
else
{
//LED einschalten
_ledPin.Write(GpioPinValue.High);
}
}

Ich habe festgestellt, dass der vom Gpio-Pin des Sensors zurückgegebene "High"-Wert anzeigt, dass kein Licht erkannt wird, und "Low" bedeutet, dass Licht erkannt wird.

Der vollständige Code ist unten zu finden:

using Windows.UI.Xaml.Controls;
mit Windows.Devices.Gpio;
Namespace DigitalLightSensorApp
{
öffentliche versiegelte partielle Klasse MainPage :Seite
{
privater GpioPin _sensorPin;
privater GpioPin _ledPin;
privater int _sensorGpioPinNumber =5;
privater int _ledGpioPinNumber =12;
öffentliche MainPage()
{
this.InitializeComponent();
}
private void Initialize()
{
// Holen Sie sich den Standard-Gpio-Controller
var gpioController =GpioController.GetDefault();
//Öffne den Sensor Gpio Pin und setze den Modus auf input
_sensorPin =gpioController.OpenPin(_sensorGpioPinNumber);
_sensorPin.SetDriveMode(GpioPinDriveMode.Input);
_sensorPin.ValueChanged + =HandleSensorLightDetectionChange;;
// Öffne den LED Gpio Pin und setze den Modus auf Ausgabe
_ledPin =gpioController.OpenPin(_ledGpioPinNumber);
_ledPin.SetDriveMode(GpioPinDriveMode.Output);
handleLightStatus( );
}
privat void HandleSensorLightDetectionChange(GpioPin sender, GpioPinValueChangedEventArgs args)
{
handleLightStatus();
}
privat void handleLightStatus()
{
// wenn kein Lichtsensor Licht erkannt hat, dann schalten Sie die LED aus
if (_sensorPin.Read() ==GpioPinValue.High)
{
//Turn LED ausschalten
_ledPin.Write(GpioPinValue.Low);
}
else
{
//LED einschalten
_ledPin.Write(GpioPinValue .Hoch);
}
}
}
}

Lesen Sie mehr Details:Digitaler Lichtsensor


Herstellungsprozess

  1. Grundlagen digitaler Magnetsensoren
  2. 1-Draht-Temperatursensor DS1820 am Raspberry Pi (GPIO direkt)
  3. Ultraschallsensor (HC-SR04) + Raspberry Pi
  4. Linienverfolgungssensor mit RPi
  5. BMP180 I2C Digitaler barometrischer Drucksensor
  6. Raspberry Pi 1-Draht digitaler Thermometersensor (DS18B20)
  7. Raspberry Pi digitaler Hall-Sensor in JAVA
  8. Raspberry Pi Temperatur- und Lichtsensor
  9. DS18B20-Sensor testen
  10. Solar-Einfahrtsbeleuchtung zum MSP430 Wireless Sensor Node