光电式传感器是以光电器件作为转换元件的传感器。它可用于检测直接引起光量变化的非电量,如光强、光照度、辐射测温、气体成分分析等;也可用来检测能转换成光量变化的其他非电量,如零件直径、表面粗糙度、应变、位移、振动、速度、加速度,以及物体的形状、工作状态的识别等。光电式传感器具有非接触、响应快、性能可靠等特点,因此在工业自动化装置和机器人中获得广泛应用。温湿度信号的获取采用电容式温湿度敏感传感器作为温湿度检测器件。环境温湿度与传感器电容成线性关系,所以可方便的将温湿度转化为DS1820可以接受的电信号,本系统中采用EL7556由积分电路、基准电路、频率转换电路及频率—电压(F/V)转换电路等组成,积分电路及R1、R2、C1用于产生一定频率的脉冲信号并从5脚送到8脚。调节R2可以对脉冲信号进行调整,从而使温湿度传感器的线性和灵敏度处于较好的状态;基准电路和频率转换电路可将温湿度传感器的电容变化转化为频率变化,再经频率—电压转化电路后从9脚输出与频率成线性的电压,然后经过C3等滤波后通过A/D转换送入89C51,在进行A/D转换以将其转换成数字信号。本系统中的温湿度传感器为MXS型电容式湿敏传感器,湿度为76%RH时的电容值为500Pf,电容相对变化率为+17PF/%,当湿度为0%—100%RH时,9脚输出的相应信号频率为0—1000Hz,精度为2%,F/V电路输出电压为0—5V。调整时,可先设定湿度为5%RH,然后调节R2,使9脚输出100mV电压即可。创建加速度计应用
在 Visual Studio 中创建新的 Windows Phone 应用 项目。此模板在“Windows Phone”类别中。
该应用需要引用包含传感器 API 和 XNA Framework 的程序集,因为加速度计数据采用 XNA Framework Vector3 对象的形式传递。 从“项目”菜单中,单击“添加引用”,选择“MicrosoftDevicesSensors”和“MicrosoftXnaFramework”,然后单击“确定”。
在 MainPagexaml 文件中,将以下 XAML 代码放置在名为“ContentPanel”的 Grid 元素中。该代码创建两个按钮,一个用于开始从加速度计获取数据,一个用于停止从加速度计获取数据。还创建三个将用于显示数字读数的 TextBlock 元素以及三个将用于采用图形表示读数数据的 Line 元素。最后,该代码添加一个状态 TextBlock 元素,该元素将用于显示应用的当前状态。
现在,打开 MainPagexamlcs 代码隐藏页面并向该页面顶部的其他 using 指令添加传感器和 XNA Framework 命名空间的 using 指令。
在 MainPage 类定义的顶部声明一个类型为 Accelerometer 的变量。
在页面的构造函数中,查看其上运行应用的设备是否支持加速度计传感器。并非所有设备都支持所有传感器,因此使用传感器之前您应该始终进行检查。用下面的代码替换现有的页面构造函数。
为“开始”按钮添加单击事件的处理程序。根据上面添加 XAML 代码的方式,Visual Studio 可能已为您添加此处理程序。如果是这样,则删除该处理程序中的任何代码。如果未自动添加该处理程序,请将下面的空函数复制并粘贴到 MainPage 类定义中。
在“开始”按钮单击处理程序中,查看加速度计对象是否为 null,在初始化该对象之前该对象应该为 null。如果加速度计为 null,则使用构造函数初始化该对象。接下来,通过设置 TimeBetweenUpdates 属性设置您希望从加速度计接收数据的速度。默认值为 2 毫秒。 接下来,为 CurrentValueChanged 事件设置处理程序。将以下代码粘贴到空的“开始”按钮单击处理程序中。
现在,使用 Start() 方法启动加速度计。调用 Start 有可能会失败,因此您应该将此调用放置在一个 try 块中。在 catch 块中,您可以警告用户加速度计可能无法启动。将该代码粘贴到“开始”按钮单击处理程序中,放置在之前的代码部分之后。
现在,实现 CurrentValueChanged 事件处理程序。具有新加速度计数据的系统会以使用 TimeBetweenUpdates 指定的频率调用该方法。该处理程序接收包含加速度计数据的 AccelerometerReading 对象。在对 UI 没有访问权限的后台线程上调用该处理程序。因此,该事件处理程序使用 DispatcherInvoke 方法,该方法在 UI 线程上调用指定的代码。DispatcherInvoke 用于调用将在下一步中定义的 UpdateUI 并传递 AccelerometerReading 对象。
实现将向用户显示加速度计数据的 UpdateUI 方法。此方法首先更新状态 TextBlock 以指示正在接收数据。接下来,更新三个 TextBlock 对象以显示传感器每个轴上的加速度数值。最后,更新 Line 对象以采用图形的形式演示加速度。
最后一步是实现将允许用户停止从加速度计获取数据的“停止”按钮单击处理程序。再次,如果编辑器自动添加了该处理程序,则将此处理程序的内容替换为以下内容。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)