亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

数字光传感器

打开的 Windows 10 IoT 核心应用程序基于数字光传感器读数的 LED。

故事

我花了一些时间才明白读取数字光传感器的状态很简单,它仅取决于读取 GPIO 值!

这个项目的思路很简单,就是当传感器检测到光线时打开LED灯,反之即可。

项目结果演示

让我们继续看下面的接线图,顺便说一下,我没有找到数字光传感器的图,所以我把它作为文本保留了!!!!

设置董事会

接线图

您也可以更改引脚编号,但要确保它们在 UWP 代码中正确反映。

我喜欢的部分,编码!

本项目仅包含C#代码的页面,本次无需UI。

步骤 1:创建 UWP 应用程序

照片放在这里!

第 2 步: 打开 MainPage.xaml.cs 并编写代码

去掉所有使用,只包含以下内容

使用 Windows.UI.Xaml.Controls;
使用 Windows.Devices.Gpio;

声明sensor和LED GPIO pin成员变量

私有 GpioPin _sensorPin;
私有 GpioPin _ledPin;;

声明GPIO引脚编号变量

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

创建初始化方法

private void Initialize()
{
// 获取默认的 Gpio Controller
var gpioController =GpioController.GetDefault();
//打开传感器 Gpio Pin 并设置模式为input
_sensorPin =gpioController.OpenPin(_sensorGpioPinNumber);
_sensorPin.SetDriveMode(GpioPinDriveMode.Input);
_sensorPin.ValueChanged +=HandleSensorLightDetectionChange;;
// 打开 LED Gpio Pin 并设置模式为输出
_ledPin =gpioController.OpenPin(_ledGpioPinNumber);
_ledPin.SetDriveMode(GpioPinDriveMode.Output);
handleLightStatus( );
}

在HandleSensorLightDetectionChange事件中调用handleLightStaus方法

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

创建handleLightStatus方法

private void handleLightStatus()
{
// 如果没有光传感器检测到光,则关闭 LED
if (_sensorPin.Read() ==GpioPinValue.High)
{
//关闭LED
_ledPin.Write(GpioPinValue.Low);
}
else
{
//打开LED
_ledPin.Write(GpioPinValue.High);
}
}

我发现从传感器 Gpio Pin 返回的“高”值表示没有检测到光,“低”表示检测到光。

完整代码如下:

using Windows.UI.Xaml.Controls;
using Windows.Devices.Gpio;
namespace DigitalLightSensorApp
{
公共密封部分类 MainPage :Page
{
private GpioPin _sensorPin;
private GpioPin _ledPin;
private int _sensorGpioPinNumber =5;
private int _ledGpioPinNumber =12;
public MainPage()
{
this.InitializeComponent();
}
private void Initialize()
{
// 获取默认的 Gpio Controller
var gpioController =GpioController.GetDefault();
//打开sensor Gpio Pin,设置模式为input
_sensorPin =gpioController.OpenPin(_sensorGpioPinNumber);
_sensorPin.SetDriveMode(GpioPinDriveMode.Input);
_sensorPin.ValueChanged + =HandleSensorLightDetectionChange;;
// 打开 LED Gpio Pin 并设置模式为输出
_ledPin =gpioController.OpenPin(_ledGpioPinNumber);
_ledPin.SetDriveMode(GpioPinDriveMode.Output);
handleLightStatus( );
}
private void HandleSensorLightDetectionChange(GpioPin sender, GpioPinValueChangedEventArgs args)
{
handleLightStatus();
}
private void handleLightStatus()
{
// 如果没有光传感器检测到光,则关闭 LED
if (_sensorPin.Read() ==GpioPinValue.High)
{
//关闭关闭 LED
_ledPin.Write(GpioPinValue.Low);
}
else
{
//打开 LED
_ledPin.Write(GpioPinValue .High);
}
}
}
}

阅读更多细节:数字光传感器


制造工艺

  1. 数字磁传感器基础
  2. Raspberry Pi 上的 1 线温度传感器 DS1820(直接 GPIO)
  3. 超声波传感器 (HC-SR04) + Raspberry Pi
  4. 带 RPi 的线跟踪传感器
  5. BMP180 I2C 数字气压传感器
  6. Raspberry Pi 1-Wire 数字温度计传感器 (DS18B20)
  7. JAVA 中的树莓派数字霍尔传感器
  8. Raspberry Pi 温度和光传感器
  9. 测试 DS18B20 传感器
  10. 太阳能车道灯到 MSP430 无线传感器节点
  11. 带有数字接口的简单模拟接近传感器(用于 Raspberry Pi)[最后更新:2014 年 2 月 7 日]
  12. 使用 Raspberry Pi 和 Twilio 的支持语音和 SMS 的光传感器