压力传感器仿真程序
- 格式:doc
- 大小:36.00 KB
- 文档页数:9
基于ATMEGA128单片机压力的测量--proteus仿真摘要:本文以mpx4250做为压力传感器摘要:摘要:本文以mpx4250做为压力传感器,通过测量输出端电压来计算实际的压力,使用atmega128单片机作为系统的cpu,来读取电压,并进行转换。
由于做实物不仅要耗费金钱,还要耗费大量的时间用来做板子,焊接元器件。
摘要:本文以MPX4250做为压力传感器,通过测量输出端电压来计算实际的压力,使用ATMEGA128单片机作为系统的CPU,来读取电压,并进行转换。
由于做实物不仅要耗费金钱,还要耗费大量的时间用来做板子,焊接元器件。
本系统采用了Proteus仿真,只需要画画电路图就可以做出类似实物的效果。
通过测试,只要选取合适的参数,基本上能正确的读出压力值,至于参数选取不合适,误差不会太大,对于广大初学单片机,或是对压力传感器比较模糊的初学者来说具有很大的学习价值。
仿真图:程序源代码:#include#include#define F_CUP 7372800UL#define uchar unsigned char#define uint unsigned intconstuintsegcode[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00};uint dis_seg[]={0xF3,0,0,0};//数码管显示函数void display(void){uint i=0;for(i=0;i {PORTE=~_BV(i);PORTB=dis_seg[i];_delay_us(50);}}int main(void){int AD_Result,Pressure_Value;DDRB=0xff;PORTB=0xff;DDRE=0xff;PORTE=0xff;DDRF=0x00;PORTF=0xff;//AD相关设置ADCSRA=0xE6;_delay_ms(2);ADMUX=0x07;//通道选择while(1){AD_Result=ADCL+(ADCHPressure_Value=((AD_Result*5.0/1023.0-0.11)/5.0+0.04)/0.004;dis_seg[1]=segcode[Pressure_Value/100];dis_seg[2]=segcode[Pressure_Value0/10];dis_seg[3]=segcode[Pressure_Value];if(dis_seg[1]==0x3F){dis_seg[1]=0x00;if(dis_seg[2]==0x3F)dis_seg[2]=0x00;}display;}return 0; }说明:软件用的是GCC,压力芯片资料可以在网上找到。
传感器信号仿真系统用户手册湖北汽车工业学院汽车工程系2010年05月3日目 录一系统概述 (1)二系统硬件使用说明 (2)2.1系统基本结构概述 (2)2.2系统电源状态指示 (2)2.3系统工作状态指示 (3)2.4RS-232串行通讯接口 (3)2.5MC9S12XDT256最小应用系统 (4)2.6系统外部接口1 (4)2.7系统外部接口2 (4)2.8系统外部接口3 (5)2.9系统外部接口4 (5)2.10系统外部接口5 (6)2.11系统外部接口6 (6)三ABHS软件使用说明 (8)3.1软件安装 (8)3.2用户身份验证及注册 (9)3.3参数设置 (10)3.4在线编程功能 (12)3.5写标定值功能 (13)3.6示波器功能 (23)四HEV调试功能 (25)4.1通讯参数设置 (25)4.2启动检测功能 (26)4.3开关量信号控制 (27)4.4模拟量信号控制 (27)4.5脉冲量信号控制 (28)4.6输入信号检测 (28)4.7CAN网络调试 (29)五发动机硬件在环仿真功能 (30)5.1通讯参数设置 (30)5.2启动检测功能 (31)5.3开关量信号检测 (32)5.4模拟量信号检测 (32)5.5脉冲量信号检测 (21)5.6输入信号检测 (21)5.7发动机类型选择 (214)六CAN+通用调试 (36)6.1通讯参数设置 (36)6.2启动检测功能 (37)6.3开关量信号控制 (38)6.4模拟量信号控制 (38)6.5脉冲量信号控制 (39)6.6开关量输入信号检测 (39)6.7模拟量输入信号检测 (40)6.8脉冲量输入信号检测 (40)6.9CAN总线调试 (41)七系统MAP标定 (42)八系统外部接口定义 (58)8.1HEV调试模块外部接口定义 (58)8.2发动机硬件在环仿真模块外部接口定义 (60)8.3CAN+通用模块外部接口定义 (62)一、系统概述传感器信号仿真系统用于模拟各类型车辆常用传感器信号,一般配合其他目标控制系统使用,是汽车电子技术应用中理想的离线调试工具,尤其适合于复杂控制系统的初步开发、设计应用及控制策略的分析和验证。
前言随着科技的不断发展,许多新型传感器逐渐被应用到生产和生活中。
其中,压力传感器是一种非常常见的传感器。
本文将为大家介绍关于压力传感器的实验教案,希望能够帮助到大家。
第一部分:实验简介本次实验的目的是探究压力传感器测量压强的原理和方法,同时学习该传感器的基本使用方法。
在实验中,我们将使用Arduino开发平台来对压力传感器进行测试,并基于测试结果进行数据分析。
第二部分:实验步骤1.实验前准备准备材料:Arduino开发板、数字压力传感器、杜邦线、电阻器、USB数据线、计算机。
2.硬件接线将多个杜邦线连接到数字压力传感器的引脚上。
连接方法如下:-GND连接到GND引脚;-VCC连接到VCC引脚;-Output连接到Arduino开发板的A0引脚。
在VCC和GND两个引脚之间,需要使用一个10KΩ 电阻器进行串联。
3. 软件编程打开Arduino开发平台,然后编写程序。
代码如下:void setup() {Serial.begin(9600);}void loop() {float voltage = analogRead(A0) * (5.0 / 1023.0);float pressure = (voltage - 0.5) * 100 / 4.5;Serial.print("Pressure: ");Serial.print(pressure);Serial.print(" kPa");delay(500);}将代码复制到Arduino开发平台中,然后上传到开发板中。
4. 实验过程将数字压力传感器置于实验台上,然后使用箍子将其夹在两个木板之间。
手轻按数字压力传感器的中央部位,然后观察监测结果。
数据即会从串口中输出。
第三部分:实验结果分析我们可以在串口监视器中看到输出结果。
通过实验测试和代码调整,我们可以得到数字压力传感器的输出值,进而得到压力值。
在计算机中,我们可以使用Excel表格进行数据分析和绘图。
TianhuangTeaching Apparatus天煌教仪版本号:V1.0传感器及应用系列传感器3D虚拟仿真软件使用说明书天煌教仪浙江天煌科技实业有限公司CONTENTS 目录1.系统配置(推荐) (3)1.1 硬件运行环境 (3)1.2 软件运行环境 (3)2.系统构成 (3)2.1系统框架 (3)2.2系统简介 (4)3.使用操作 (4)3.1软件启动 (4)3.2传感器 (5)3.2.1湿敏传感器主界面 (5)3.2.2产品说明界面 (6)3.2.3零件展示界面 (7)3.2.4装配演示界面 (8)3.2.5原理展示界面 (9)2使用说明书1.系统配置(推荐)1.1 硬件运行环境机型:PC及兼容机;CPU类型:Intel 酷睿双核以上;RAM(内存)大小:1G 以上;HD(硬盘)空间:剩余空间1G 以上;光盘驱动器:16 倍速以上;推荐显示分辨率与色彩:1280×102416 位色以上;独立显卡:512M以上显存。
1.2 软件运行环境Windows XP、Windows Vista、Windows 7 .如有不清楚的地方请直接发E-mail至sales@或拨打电话0571-********2.系统构成2.1系统框架《传感器3D虚拟仿真》软件系统框架如图2-1所示。
图2-1 《传感器3D虚拟仿真》软件系统框架结构32.2系统简介本系统采用全3D虚拟仿真技术,界面生动美观、易学易用,以此提高老师教学和学生学习的趣味性,加深学生对知识的理解和运用。
本系统通过产品说明、零件展示、装配演示、原理展示四个方面,讲述了霍尔传感器、压电传感器、湿敏传感器、气敏传感器、电涡流传感器、磁电传感器、差动电容传感器、差动变压器等八个常用传感器。
产品说明:从理论上简单介绍传感器的原理。
零件展示:单独展示传感器的各个组成元件,观察零件的结构、材质以及材质类型。
装配演示:以三维仿真的形式展示传感器的装配过程,让学生直观了解传感器的组成结构和装配方法。
传感器课课程设计仿真一、教学目标本课程旨在让学生了解和掌握传感器的基本原理、类型和应用,提高他们在实际工程中的分析和解决问题的能力。
具体目标如下:1.知识目标:•了解传感器的基本概念、原理和特性;•掌握不同类型传感器(如温度、压力、流量等)的工作原理和应用场景;•理解传感器信号的处理和分析方法。
2.技能目标:•能够正确选择和使用传感器进行数据采集;•能够使用仪器仪表进行传感器性能测试;•能够运用传感器技术解决实际工程问题。
3.情感态度价值观目标:•培养学生的创新意识和团队合作精神;•增强学生对工程实践的兴趣和责任感;•提高学生对科技发展的敏感度和适应能力。
二、教学内容本课程的教学内容主要包括传感器的基本概念、原理、类型和应用。
具体安排如下:1.传感器的基本概念和原理:介绍传感器的作用、分类和性能指标,阐述传感器的工作原理和信号处理方法。
2.常见传感器的类型和应用:详细讲解温度传感器、压力传感器、流量传感器等常见传感器的工作原理、特点和应用场景。
3.传感器信号的处理和分析:介绍传感器信号的处理方法,包括信号滤波、线性化、校准等,以及信号分析 techniques 在实际工程中的应用。
4.传感器在工程实践中的应用:通过案例分析,使学生了解传感器在各种工程领域中的应用,提高他们解决实际问题的能力。
三、教学方法为了提高教学效果,本课程将采用多种教学方法,包括:1.讲授法:通过讲解传感器的基本概念、原理和应用,使学生掌握传感器的相关知识。
2.讨论法:学生进行小组讨论,分享学习心得和经验,提高学生的思维能力和团队协作能力。
3.案例分析法:通过分析实际工程案例,使学生了解传感器在工程中的应用,提高他们解决实际问题的能力。
4.实验法:安排实验室实践活动,使学生在动手操作中掌握传感器的使用方法和技巧。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统的学习资料。
本科论文电容式压力传感器的检测电路及仿真摘要本文详细的描述了电容式压力传感器的结构,工作原理,特性,发展现状和趋势等。
并且在此基础上提出了电容式压力传感器的检测电路及其仿真方法,详细的分析了压力大小与电路输出电压之间的关系。
关键词:传感器,工作原理,特性,检测电路,发展I本科论文目录摘要 (I)1 绪论 (3)2 压力传感器的结构 (3)3 压力传感器的工作原理 (3)4 电容式压力传感器 (5)4.1 电容式传感器的原理及其分类 (5)4.1.1 电容式传感器的原理 (5)4.1.2 电容式传感器的分类 (6)4.2 电容式压力传感器的工作原理 (7)4.3 电容式压力传感器的特性 (7)4.4 电容式压力传感器的等效电路 (8)5 电容式压力传感器的检测电路 (9)5.1 检测电路 (9)5.2 结果分析 (11)5.3 影响电容传感器精度的因素及提高精度的措施 (12)5.3.1 边缘效应的影响 (12)5.3.2 寄生电容的影响 (12)5.3.3 温度影响 (12)6 电容式压力传感器的应用 (13)7 电容式压力传感器的发展 (13)8 结论 (14)致谢 (16)参考文献 (17)II本科论文1 绪论科学技术的不断发展极大地丰富了压力测量产品的种类,现在,压力传感器的敏感原理不仅有电容式、压阻式、金属应变式、霍尔式、振筒式等等但仍以电容式、压阻式和金属应变式传感器最为多见。
金属应变式压力传感器是一种历史较长的压力传感器,但由于它存在迟滞、蠕变及温度性能差等缺点,其应用场合受到了很大的限制。
压阻式传感器是利用半导体压阻效应制造的一种新型的传感器,它具有制造方便,成本低廉等特点,因此在非电物理量的测试、控制中得到了广泛的应用。
尤其是在航天、航空、常规武器、船舶、交通运输、冶金、机械制造、化工、轻工、生物医学工程、自动测量与计量、称量等技术领域。
电容式压力传感器是应用最广泛的一种压力传感器。
压力传感器结构设计与特性仿真发表时间:2019-01-02T16:17:06.307Z 来源:《知识-力量》2019年3月中作者:胡媛元杜西亮[导读] 本文设计了一种压阻式压力传感器,利用薄膜力学、挠度理论等相关知识分别计算出两种结构的最佳尺寸以及可以达到的最大理论应力,设计出一种双岛-梁膜结构。
(黑龙江大学,黑龙江哈尔滨 150000)摘要:本文设计了一种压阻式压力传感器,利用薄膜力学、挠度理论等相关知识分别计算出两种结构的最佳尺寸以及可以达到的最大理论应力,设计出一种双岛-梁膜结构。
用ANSYS有限元仿真软件静态仿真得到该结构可达到的最大应力为404.73MPa、最大位移为8.543μm,经分析该双岛-梁膜结构的灵敏度较高,并用控制变量法优化双岛-梁膜结构的尺寸。
关键词:压力传感器;灵敏度;双岛梁膜;ANSYS仿真1.前言MEMS压阻式压力传感器属于微型传感器的范畴,它广泛应用于汽车工业领域、航空航天领域及生物医疗领域。
压阻式压力传感器以其高灵敏度、良好的线性度及可重复性而著名。
压力传感器是整个传感装置领域消费数量最多、使用最广泛的器件之一,尤其是在工业自动化、环境保护和医疗器械等领域应用时,对传感器性能如灵敏度、线性度具有迫切的需求。
因此,研究更高性能的微压力传感器具有重要意义。
2.压阻式压力传感器理论分析与结构设计压阻式压力传感器的工作原理主要是利用半导体材料如硅、锗的压阻效应。
压阻效应是指当半导体材料在某个方向上受到外界应力的作用时,引起其材料内部能带结构发生变化,能谷的能量振动,将带来载流子相对能量的变化,从而使半导体电阻率发生一定变化。
压阻式压力传感器的测量方法是将作用在弹性膜片上的压力转化为膜片的应变,应变将造成膜片上电阻值的变化。
一般需将电阻的变化转化为电压的变化,并采用惠斯通电桥来测量这种变化。
3.优化结构的设计与仿真3.1 双岛-梁膜结构设计优化结构采用双岛-梁膜结构,在厚硅梁背面有两个岛,在该结构的前面,一个硅梁跨越硅岛并将硅膜分成两个对称的部分。
THSRZ-2型传感器系统综合实验装置仿真软件使用说明书THSRZ-2型传感器系统综合实验装置仿真软件 (2)实验一属箔式应变片――单臂电桥性能实验。
(3)实验二金属箔式应变片――半桥性能实验 (5)实验三金属箔式应变片――全桥性能实验 (6)实验四直流全桥的应用――电子秤实验 (7)实验五交流全桥的应用――振动测量实验 (8)实验六扩散硅压阻压力传感器差压测量实验 (10)实验七差动变压器的性能实验 (11)实验八动变压器零点残余电压补偿实验 (11)实验九励频率对差动变压器特性的影响实验 (13)实验十差动变压器的应用――振动测量实验 (14)实验十一电容式传感器的位移特性实验 (15)实验十二容传感器动态特性实验 (16)实验十三直流激励时霍尔式传感器的位移特性实验 (17)实验十四流激励时霍尔式传感器的位移特性实验 (18)实验十五霍尔测速实验 (19)实验十六霍尔式传感器振动测量实验 (20)实验十七磁电式转速传感器的测速实验 (22)实验十八压电式传感器振动实验 (24)实验十九电涡流传感器的位移特性实验 (24)实验二十被测体材质、面积大小对电涡流传感器的特性影响实验 (26)实验二十一电涡流传感器测量振动实验 (28)实验二十二光纤传感器的位移特性实验 (29)实验二十三光纤传感器的测速实验 (30)实验二十四光纤传感器测量振动实验 (32)实验二十五光电转速传感器的转速测量实验 (34)实验二十六 PT100温度控制实验 (34)实验二十七集成温度传感器的温度特性实验 (36)实验二十八铂电阻温度特性实验 (36)实验二十九热电偶测温实验 (38)实验三十 E型热电偶测温实验 (38)实验三十一热电偶冷端温度补偿实验 (39)实验三十二气敏传感器实验 (40)实验三十三湿敏传感器实验 (41)实验三十四转速控制实验 (43)THSRZ-2型传感器系统综合实验装置仿真软件一、概述本仿真软件主要是针对THSRZ-2型传感器系统综合实验装置配套的上位机软件而开发的,与“物理”、“传感器技术”、“工业自动化控制”、“非电测量技术与应用”、“工程检测技术与应用”等课程的教学实验配套使用,提供了真正实验前的模拟实验。
#i n c l u d e<r e g51.h>#include<intrins.h>#include <absacc.h>#include <math.h>#define uchar unsigned char#define uint unsigned int#define BUSY 0x80 //常量定义#define DATAPORT P0//ADC0832的引脚sbit ADCS =P3^5; //ADC0832 chip seclectsbit ADDI =P3^7; //ADC0832 k insbit ADDO =P3^7; //ADC0832 k outsbit ADCLK =P3^6; //ADC0832 clock signalsbit LCM_RS=P2^0;sbit LCM_RW=P2^1;sbit LCM_EN=P2^2;uchar ad_data; //采样值存储sbit Alarm_led_red =P1^5; //超过压力表量程最大值红色led 报警定义sbit Alarm_led_green=P1^6; //低于压力表量程最小值绿色led 报警定义//adc采样值存储单元char press_data; //标度变换存储单元unsigned char ad_alarm; //报警值存储单元unsigned char press_bai=0; //显示值百位unsigned char press_shi=0; //显示值十位unsigned char press_ge=0; //显示值个位unsigned char press_dot=0; //显示值十分位uchar code str0[]={"Press: . kpa "};uchar code str1[]={" Check BY Jack "};void delay(uint);void lcd_wait(void);void delay_LCM(uint);//LCD延时子程序void initLCM( void);//LCD初始化子程序void lcd_wait(void);//LCD检测忙子程序void WriteCommandLCM(uchar WCLCM,uchar BusyC); //写指令到ICM子函数void WriteDataLCM(uchar WDLCM); //写数据到LCM子函数void DisplayOneChar(uchar X,uchar Y,uchar DData); //显示指定坐标的一个字符子函数void DisplayListChar(uchar X,uchar Y,uchar code *DData); //显示指定坐标的一串字符子函数void display(void); //系统显示子函数uchar Adc0832(unsigned char channel);void alarm(void);void data_pro(void);/**********main funcation************/void main(void){delay(500); //系统延时500ms启动// ad_data=0; //采样值存储单元初始化为0initLCM( );WriteCommandLCM(0x01,1); //清显示屏DisplayListChar(0,0,str0);DisplayListChar(0,1,str1);while(1){ad_data =Adc0832(0); //采样值存储单元初始化为0alarm();data_pro();display();}}/*********延时K*1ms,12.000mhz**********/void delay(uint k){uint i,j;for(i=0;i<k;i++){for(j=0;j<60;j++){;}}}/**********写指令到ICM子函数************/void WriteCommandLCM(uchar WCLCM,uchar BusyC){if(BusyC)lcd_wait();DATAPORT=WCLCM;LCM_RS=0; // 选中指令寄存器 LCM_RW=0; // 写模式LCM_EN=1;_nop_();_nop_();_nop_();LCM_EN=0;}/**********写数据到LCM子函数************/void WriteDataLCM(uchar WDLCM){lcd_wait( ); //检测忙信号DATAPORT=WDLCM;LCM_RS=1; // 选中数据寄存器LCM_RW=0; // 写模式LCM_EN=1;_nop_();_nop_();_nop_();LCM_EN=0;}/***********lcm内部等待函数*************/void lcd_wait(void)DATAPORT=0xff; //读LCD前若单片机输出低电平,而读出LCD为高电平,则冲突,Proteus仿真会有显示逻辑黄色LCM_EN=1;LCM_RS=0;LCM_RW=1;_nop_();_nop_();_nop_();while(DATAPORT&BUSY){ LCM_EN=0;_nop_();_nop_();LCM_EN=1;_nop_();_nop_();}LCM_EN=0;}/**********LCM初始化子函数***********/void initLCM( ){DATAPORT=0;delay(15);WriteCommandLCM(0x38,0); //三次显示模式设置,不检测忙信号delay(5);WriteCommandLCM(0x38,0);delay(5);WriteCommandLCM(0x38,0);delay(5);WriteCommandLCM(0x38,1); //8bit数据传送,2行显示,5*7字型,检测忙信号 WriteCommandLCM(0x08,1); //关闭显示,检测忙信号WriteCommandLCM(0x01,1); //清屏,检测忙信号WriteCommandLCM(0x06,1); //显示光标右移设置,检测忙信号WriteCommandLCM(0x0c,1); //显示屏打开,光标不显示,不闪烁,检测忙信号}/****显示指定坐标的一个字符子函数****/void DisplayOneChar(uchar X,uchar Y,uchar DData){Y&=1;X&=15;if(Y)X|=0x40; //若y为1(显示第二行),地址码+0X40X|=0x80; //指令码为地址码+0X80WriteCommandLCM(X,0);WriteDataLCM(DData);}/*******显示指定坐标的一串字符子函数*****/void DisplayListChar(uchar X,uchar Y,uchar code *DData){uchar ListLength=0;Y&=0x01;X&=0x0f;while(X<16){DisplayOneChar(X,Y,DData[ListLength]);ListLength++;X++;}}/*****************系统显示子函数*****************/void display(void){WriteCommandLCM(0x0c,1); //显示屏打开,光标不显示,不闪烁,检测忙信号DisplayListChar(0,0,str0);DisplayListChar(0,1,str1);DisplayOneChar(7,0,press_bai+0x30);DisplayOneChar(8,0,press_shi+0x30);DisplayOneChar(9,0,press_ge +0x30);DisplayOneChar(11,0,press_dot+0x30);delay(1000); //稳定显示}/************读ADC0832函数************///采集并返回uchar Adc0832(unsigned char channel) //AD转换,返回结果{uchar i=0;uchar j;uint dat=0;uchar ndat=0;if(channel==0)channel=2;if(channel==1)channel=3;ADDI=1;_nop_();_nop_();ADCS=0;//拉低CS端_nop_();_nop_();ADCLK=1;//拉高CLK端_nop_();_nop_();ADCLK=0;//拉低CLK端,形成下降沿1_nop_();_nop_();ADCLK=1;//拉高CLK端ADDI=channel&0x1;_nop_();_nop_();ADCLK=0;//拉低CLK端,形成下降沿2_nop_();_nop_();ADCLK=1;//拉高CLK端ADDI=(channel>>1)&0x1;_nop_();_nop_();ADCLK=0;//拉低CLK端,形成下降沿3ADDI=1;//控制命令结束_nop_();_nop_();dat=0;for(i=0;i<8;i++){dat|=ADDO;//收数据ADCLK=1;_nop_();_nop_();ADCLK=0;//形成一次时钟脉冲_nop_();_nop_();dat<<=1;if(i==7)dat|=ADDO;}for(i=0;i<8;i++){j=0;j=j|ADDO;//收数据ADCLK=1;_nop_();_nop_();ADCLK=0;//形成一次时钟脉冲_nop_();_nop_();j=j<<7;ndat=ndat|j;if(i<7)ndat>>=1;}ADCS=1;//拉低CS端ADCLK=0;//拉低CLK端ADDO=1;//拉高数据端,回到初始状态dat<<=8;dat|=ndat;return(dat); //return ad k}void data_pro(void){unsigned int temp;float press;if(14<ad_data<243) //当压力值介于15kpa到115kpa 之间时,遵循线性变换{int vary=ad_data;//y=(115-15)/(243-13)*X+15kpapress=((10.0/23.0)*vary)+9.3; //测试时补偿值为9.3temp=(int)(press*10); //放大10倍,便于后面的计算press_bai=temp/1000; //取压力值百位press_shi=(temp%1000)/100; //取压力值十位press_ge=((temp%1000)%100)/10; //取压力值个位press_dot=((temp%1000)%100)%10; //取压力值十分位 }}/*****************报警子函数*******************/void alarm(void){if(ad_data>=243) //如果当前压力值大于115kpa, { Alarm_led_red=0; } //则启动报警else{ Alarm_led_red=1; } //关闭报警}(注:文档可能无法思考全面,请浏览后下载,供参考。