第六节:C#工业控制编程基础–压力传感器实验
文章目录
- 第六节:C#工业控制编程基础--压力传感器实验
- 一、实验目的:
- 二、实验内容:
- 三、实验步骤:
- 1.打开Visual Studio 2013,新建窗体应用程序项目,配置好dll文件。
- 2.在窗体中放入四个Button控件,三个TextBox控件,一个NumericaUpDown控件,四个Label控件以及一个Timer控件。并修改他们的Name属性和Text属性。
- 3.双击“关闭板卡”按钮进入编程界面,在public partial class Form1 : Form内引入本次要用的函数:OpenUsbV12()、CloseUsbV12()、ADSingleV12()。并在最上方using列写入using System.Runtime.InteropServices;
- 4.在“关闭板卡”按钮点击事件内写入开发板关闭函数和程序退出函数,代码如图3。
- 5.双击“启动板卡”按钮,在该按钮点击事件前定义一个整形变量w,在点击事件内写入一个定义一个整形变量x并写入一个if判断:
- 6.在“开始测压”按钮事件内定义一个float型变量i,用MessageBox显示“请设定压力阙值”,并写入单次AD采集函数ADSingleV12(),将采集得到的值存入变量i中然后换算结果显示在0kg时电压值的TextBox中,该值用于压力传感器较准。然后写入启动Timer控件函数;在“停止测压”按钮事件内停止Timer控件。代码如图5。
- 7.在Timer控件事件下定义两个float变量y,z,b,c,一个decimal变量a。
- 8.将NumericaUpDown控件的值赋值给变量a,并将类型转化成float赋值给变量b,再将步骤6中得到的0kg电压值赋给变量c。
- 9.再写入一次采集函数ADSingleV12(),将采集得到的值赋值给变量y并换算成mv后减去0kg情况下电压值c。
- 10.然后接入转换系数(电压与压力的比例因子),这个传感器的灵敏度1mv/V、5V供电、最大量程20kg,那么在接AD620前,满量程就为5mv/20kg,即0.25mv/kg。接进AD620,通过数据手册得知,R39给100R,放大495倍,所以它在接AD1时,转换系数为123.75mv/kg。我们除以转换系数后将值赋给变量z,最后用TextBox控件实时显示z值。
- 11.对z值进行判断,大于设定的阙值则显示“超压危险”,小于则显示“安全”。
- 12.步骤7~11代码如图6。
- 13.将采集板5V、AD1、GND分别与功能板压力测量区块的①②③相连。断开采集板上JP1。
- 14.接通电源,运行程序。设定好压力阙值后开始测压,用手按压压力板即可显示数值并检测是否超过阙值。
- 15.最后退出程序,关闭板卡。
- 四、实验结果:
一、实验目的:
了解压力传感器模块。
二、实验内容:
用C#实现压力测量。
三、实验步骤:
1.打开Visual Studio 2013,新建窗体应用程序项目,配置好dll文件。
2.在窗体中放入四个Button控件,三个TextBox控件,一个NumericaUpDown控件,四个Label控件以及一个Timer控件。并修改他们的Name属性和Text属性。
如图1:
3.双击“关闭板卡”按钮进入编程界面,在public partial class Form1 : Form内引入本次要用的函数:OpenUsbV12()、CloseUsbV12()、ADSingleV12()。并在最上方using列写入using System.Runtime.InteropServices;
代码如图2。
4.在“关闭板卡”按钮点击事件内写入开发板关闭函数和程序退出函数,代码如图3。
5.双击“启动板卡”按钮,在该按钮点击事件前定义一个整形变量w,在点击事件内写入一个定义一个整形变量x并写入一个if判断:
当w值为0:用函数OpenUsbV12()打开开发板并将其函数值赋值给变量x,并再写入一个if判断:当x值等于0,用MessageBox显示“启动成功”,将按钮的Text属性设置为“暂停”,将w赋值为1。反之,用MessageBox显示“启动失败”。
当w值不为0时:将w重新赋值为0,关闭开发板,将按钮的Text属性设置为“继续”。代码如图4。
6.在“开始测压”按钮事件内定义一个float型变量i,用MessageBox显示“请设定压力阙值”,并写入单次AD采集函数ADSingleV12(),将采集得到的值存入变量i中然后换算结果显示在0kg时电压值的TextBox中,该值用于压力传感器较准。然后写入启动Timer控件函数;在“停止测压”按钮事件内停止Timer控件。代码如图5。
7.在Timer控件事件下定义两个float变量y,z,b,c,一个decimal变量a。
8.将NumericaUpDown控件的值赋值给变量a,并将类型转化成float赋值给变量b,再将步骤6中得到的0kg电压值赋给变量c。
9.再写入一次采集函数ADSingleV12(),将采集得到的值赋值给变量y并换算成mv后减去0kg情况下电压值c。
10.然后接入转换系数(电压与压力的比例因子),这个传感器的灵敏度1mv/V、5V供电、最大量程20kg,那么在接AD620前,满量程就为5mv/20kg,即0.25mv/kg。接进AD620,通过数据手册得知,R39给100R,放大495倍,所以它在接AD1时,转换系数为123.75mv/kg。我们除以转换系数后将值赋给变量z,最后用TextBox控件实时显示z值。
11.对z值进行判断,大于设定的阙值则显示“超压危险”,小于则显示“安全”。
12.步骤7~11代码如图6。
13.将采集板5V、AD1、GND分别与功能板压力测量区块的①②③相连。断开采集板上JP1。
压力传感器电路如图7:
14.接通电源,运行程序。设定好压力阙值后开始测压,用手按压压力板即可显示数值并检测是否超过阙值。
如图8:
15.最后退出程序,关闭板卡。
附:实验开发板