ADXL应用于消防栓位置的检测.doc

ADXL应用于消防栓位置的检测

ADXL在消防栓位置判断的应用 摘要 为了预防火灾和减少火灾危害,加强应急救援工作,保护人身、财产安全,维护公共安全,国家制定了一些列的法制法规来加强公共社会的消防安全。[1]而消防工作的贯彻和实施主要以预防为主、防消结合。任何单位和个人都有维护消防安全、保护消防设施、预防火灾、报告火警的义务。[2]任何单位和成年人都有参加有组织的灭火工作的义务。[2]消防栓在防火和灭火中起着至关重要的作用,而平时对消防栓手柄位置的检测也十分重要。如果消防栓手柄的停放位置正确,将会给消防工作节省很多时间和减少损失。本文通过介绍了ADXL在消防栓位置检测中的应用,提出了消防领域将有重要的推广利用价值。 1、引言 近年来由于火灾事故频频发生,使得社会和国家及个人损失惨重,预防火灾和减少火灾危害,加强应急救援工作显得尤为重要。从而火灾的预防成为研究重点。ADXL345是一款小而薄的超低功耗3轴加速度计,分辨率高(13位),测量范围达± 16g。数字输出数据为16位二进制补码格式,可通过SPI(3线或4线)或I2C数字接口访问。它可以在倾斜检测应用中测量静态重力加速度,还可以测量运动或冲击导致的动态加速度。其高分辨率(3.9mg/LSB),能够测量不到1.0°的倾斜角度变化。[3]利用它来检测消防栓的手柄处于哪个位置,并把信息传到消防监控室,在这里不对信息的传递做介绍,只对利用ADXL345怎样判断消防栓的手柄位置(停止挡、手动挡、自动挡)作具体介绍。 2、ADXL345和消防栓简介 ADXL的电路图如下: 消防栓 ADXL的安装:将ADXL芯片安装在在消防栓的手柄上 3、模拟环境Keil软件 模拟环境:keil软件 keil软件的介绍:Keil软件是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。WINXP。 4、程序分析与设计 程序分析: 程序目的:使消防栓的手柄放在三个当挡(停止挡、手动挡、自动挡)中的任何位置都要能检测出来。 程序设计流程图: 程序设计: void Init_FE10VAET0(void) { UINT8 nDevId=0; UINT8 cBuff[6]={0}; UINT16 xDat0=0; UINT16 yDat0=0; UINT16 zDat0=0; delay_ms(100);//上电延时 EEPROM_read_n(CONFIG_DATA,cBuff,6); xDat0 = cBuff[1]; xDat0= 8; xDat0 += cBuff[0]; yDat0 = cBuff[3]; yDat0 = 8; yDat0+= cBuff[2]; zDat0 = cBuff[5]; zDat0 = 8; zDat0 += cBuff[4]; EEPROM_read_n(CONFIG_DATA,cBuff,6); xDat0 = cBuff[1]; xDat0= 8; xDat0 += cBuff[0]; yDat0 = cBuff[3]; yDat0 = 8; yDat0+= cBuff[2]; zDat0 = cBuff[5]; zDat0 = 8; zDat0 += cBuff[4]; Init_ADXL345(xDat0,yDat0,zDat0); nDevId=Single_Read_ADXL345(0X00); //读出的数据为0XE5,表示正确 if(nDevId == 0xE5) { PrintString(ADXL345 Init OK!\r\n); } } void PrintAngle(short x, short y, short z) { UINT8 cDebug[50]={0}; float xAngle,yAngle,zAngle,Q,T,K; Q=(float)x*3.9; T=(float)y*3.9; K=(float)z*3.9; xAngle=(((atan2(K,Q)*180)/3.1415926)-90); yAngle=(((atan2(K,T)*180)/3.1415926)-90); zAngle=(((atan2(Q,K)*180)/3.1415926)); sprintf(cDebug,\r\nangle: x=%.2

文档评论(0)

1亿VIP精品文档

相关文档