Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Digitale lichtsensor

Een Windows 10 IoT-kerntoepassing die wordt ingeschakeld een LED op basis van digitale lichtsensormeting.

Verhaal

Het kostte me wat tijd om erachter te komen dat het lezen van de status van de digitale lichtsensor eenvoudig is en gewoon afhankelijk is van het lezen van de GPIO-waarde!

Het idee van het project is heel eenvoudig, schakel gewoon de LED in licht in wanneer de sensor licht detecteert en andersom.

Demo van het projectresultaat

Dus laten we verder gaan en het bedradingsschema hieronder controleren en trouwens, ik heb geen diagram gevonden voor de digitale lichtsensor, dus ik heb het als tekst bewaard !!!!

Het bord opzetten

Bedradingsschema
  • Digitale lichtsensor:GPIO #5
  • Rode LED:GPIO #12

Het is ook aan jou om de pincodes te wijzigen, maar zorg ervoor dat ze correct worden weergegeven in de UWP-code.

Het deel dat ik leuk vind, coderen!

Dit project heeft alleen een pagina die de C#-code bevat en er is deze keer geen gebruikersinterface vereist.

Stap 1:De UWP-toepassing maken

  • Visual Studio 2017/2015 openen
  • Selecteer lege app (Universele Windows)
  • Voer de projectnaam "DigitalLightSensorApp" in

Foto komt hier!

Stap 2:  Open de MainPage.xaml.cs en laten we coderen

Verwijder al het gebruik en voeg alleen het volgende toe

met behulp van Windows.UI.Xaml.Controls;
met behulp van Windows.Devices.Gpio;

Declareer de sensor- en LED GPIO-pin-lidvariabelen

privé GpioPin _sensorPin;
privé GpioPin _ledPin;;

Declareer de GPIO-pincodevariabelen

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

Maak de initialisatiemethode

private void Initialize()
{
// Haal de standaard Gpio Controller
var gpioController =GpioController.GetDefault();
//Open de sensor Gpio Pin en stel de modus in op input
_sensorPin =gpioController.OpenPin(_sensorGpioPinNumber);
_sensorPin.SetDriveMode(GpioPinDriveMode.Input);
_sensorPin.ValueChanged +=HandleSensorLightDetectionChange;;
// Open de LED Gpio Pin en stel de modus in op output
_ledPin =gpioController.OpenPin(_ledGpioPinNumber);
_ledPin.SetDriveMode(GpioPinDriveMode.Output);
handleLightStatus( );
}

Roep de handleLightStaus-methode aan in de gebeurtenis HandleSensorLightDetectionChange

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

Maak de handleLightStatus-methode

private void handleLightStatus()
{
// als er geen lichtsensor is gedetecteerd, zet dan de LED uit
if (_sensorPin.Read() ==GpioPinValue.High)
{
//Zet de LED uit
_ledPin.Write(GpioPinValue.Low);
}
else
{
//Schakel de LED in
_ledPin.Write(GpioPinValue.High);
}
}

Ik heb geconstateerd dat de waarde 'Hoog' die wordt geretourneerd door de sensor Gpio Pin aangeeft dat er geen licht is gedetecteerd en dat 'Laag' aangeeft dat er licht wordt gedetecteerd.

De volledige code vindt u hieronder:

met behulp van Windows.UI.Xaml.Controls;
met behulp van Windows.Devices.Gpio;
namespace DigitalLightSensorApp
{
openbare verzegelde gedeeltelijke klasse MainPage :Page
{
private GpioPin _sensorPin;
private GpioPin _ledPin;
private int _sensorGpioPinNumber =5;
private int _ledGpioPinNumber =12;
public MainPage()
{
this.InitializeComponent();
}
private void Initialize()
{
// Haal de standaard Gpio-controller op
var gpioController =GpioController.GetDefault();
//Open de sensor Gpio Pin en stel de modus in op input
_sensorPin =gpioController.OpenPin(_sensorGpioPinNumber);
_sensorPin.SetDriveMode(GpioPinDriveMode.Input);
_sensorPin.ValueChanged + =HandleSensorLightDetectionChange;;
// Open de LED Gpio Pin en stel de modus in op output
_ledPin =gpioController.OpenPin(_ledGpioPinNumber);
_ledPin.SetDriveMode(GpioPinDriveMode.Output);
handleLightStatus( );
}
private ongeldige HandleSensorLightDetectionChange(GpioPin-afzender, GpioPinValueChangedEventArgs args)
{
handleLightStatus();
}
private ongeldige handleLightStatus()
{
// als er geen lichtsensor licht heeft gedetecteerd, zet dan de LED uit
if (_sensorPin.Read() ==GpioPinValue.High)
{
//Turn de LED uit
_ledPin.Write(GpioPinValue.Low);
}
else
{
//Schakel de LED in
_ledPin.Write(GpioPinValue .Hoog);
}
}
}
}

Lees meer details:digitale lichtsensor


Productieproces

  1. Fundamenten van digitale magnetische sensoren
  2. 1-draads temperatuursensor DS1820 op Raspberry Pi (direct GPIO)
  3. Ultrasone sensor (HC-SR04) + Raspberry Pi
  4. Lijnvolgsensor met RPi
  5. BMP180 I2C digitale luchtdruksensor
  6. Raspberry Pi 1-draads digitale thermometersensor (DS18B20)
  7. Raspberry Pi digitale Hall-sensor in JAVA
  8. Raspberry Pi temperatuur- en lichtsensor
  9. Test DS18B20-sensor
  10. Zonne-opritverlichting naar MSP430 draadloos sensorknooppunt
  11. Een eenvoudige analoge naderingssensor met digitale interface (voor Raspberry Pi) [laatste update:7 februari 2014]