模拟量传感器采集ppt课件.ppt
,模拟传感器采集,目 录,实训目的,(1)掌握CC2530的ADC工作原理(2)掌握模拟量传感器工作原理(3)能实现模拟量传感器采集功能,目 录,实训内容,采用气体传感器、光敏传感器,以及ZigBee模块组成一个模拟量传感器采集系统。以Basic RF无线点对点传输协议为基础,将一块ZigBee模块连接气体传感器模块,另一块ZigBee模块连接光敏传感器模块;将协调器模块的串口连接到电脑,同时需要将ZigBee模块上电,在电脑上打开串口调试软件,设置波特率38400bps、数据位8等参数。使用打火机在气体传感器模块释放气体,通过手机电筒照射光敏传感器模块等操作,当气体传感器检测到不同浓度的气体时,光敏传感器检测到不同光强的光照时,会在电脑的串口调试软件上就显示检测到的气体电压信息与光照电压信息。,目 录,实训原理,本实训需要用到协调器与传感器,传感器负责采集传感数据,把传感数据打包后通过ZigBee网络无线发出去;协调器负责建立网络,接收传感器传来的无线数据,并发送到串口。传感器与协调器连接拓扑图如图6.1所示。其他内容参照实训4、实训5等内容。,图6.1 连接拓扑图,目 录,实训步骤,第一步,新建工程、配置工程相关设置。具体参照实训3操作。第二步,编写程序。由于程序很长,只能对关键部分的程序进行分析。详细见“实训5 模拟器传感器采集/Project”目录包含的源程序文件。1.sensor.c中的main函数 void main(void)uint16 sensor_val;uint16 len=0;halBoardInit();/模块相关资源的初始化 ConfigRf_Init();/无线收发参数的配置初始化,实训步骤,halLedSet(1);halLedSet(2);Timer4_Init();/定时器初始化 Timer4_On();/打开定时器 while(1)APP_SEND_DATA_FLAG=GetSendDataFlag();if(APP_SEND_DATA_FLAG=1)/定时时间到/*【传感器采集、处理】开始*/#if defined(GM_SENDOR)/光敏传感器 sensor_val=get_adc();/取模拟电压,实训步骤,/把采集数据传化成字符串,以便于在串口上显示观察 printf_str(pTxData,光照传感器电压:%d.%02dVrn,sensor_v al/100,sensor_val%100);#endif#if defined(QT_SENDOR)/气体传感器 sensor_val=get_adc();/取模拟电压/把采集数据传化成字符串,以便于在串口上显示观察 printf_str(pTxData,气体传感器电压:%d.%02dVrn,s ensor_val/100,sensor_val%100);#endif,实训步骤,#if defined(QT_SENDOR)/气体传感器 sensor_val=get_adc();/取模拟电压/把采集数据传化成字符串,以便于在串口上显示观察 printf_str(pTxData,气体传感器电压:%d.%02dVrn,s ensor_val/100,sensor_val%100);#endif halLedToggle(3);/绿灯取反,无线发送指示/把数据通过ZigBee发送出去 basicRfSendPacket(SEND_ADDR,pTxData,strlen(pTxData);Timer4_On();/打开定时/*【传感器采集、处理】结束*/,实训步骤,程序分析:第14、19行,条件编译,用来选择光敏传感器模块功能与气体传感器模块功能。第15、20行,get_adc()函数为读取AD转换电压值。第17、22行,把采集数据按格式连接成字符串写入到pTxData中。第26行,把采集数据通过ZigBee发送出去,在PC机串口调试终端显示出来。2.collect.c中的关键代码,实训步骤,void main(void)uint16 len=0;halBoardInit();/模块相关资源的初始化 ConfigRf_Init();/无线收发参数的配置初始化 halLedSet(1);halLedSet(2);while(1)if(basicRfPacketIsReady()/查询有没接收到无线信号 halLedToggle(4);/红灯取反,无线接收指示/接收无线数 len=basicRfReceive(pRxData,MAX_RECV_BUF_LEN,NULL);,实训步骤,/把接收到的无线发送到串口 halUartWrite(pRxData,len);程序分析:第14行,接收到无线数据,并得到无线数据的长度。第16行,把接收到的无线发送到串口。第三步,建立模块设备。1.建立光敏传感器模块设备,实训步骤,(1)建立模块设备选择菜单“ProjectEdit Configurations”,弹出项目的配置对话框,如图6.2所示,系统会检测出项目中存在的模块设备。,图6.2 项目配置对话框,实训步骤,单击“New.”按钮,在弹出的对话框中输入模块名称为:“gm_sensor”,基于Deubg模块进行配置,然后单击“OK”按钮就完成了模块设备的建立,对话框如图6.3所示。然后在项目配置对话框中就可以自动检测出刚才建立的模块设备“gm_sensor”。,实训步骤,图6.3 光敏传感器模块配置对话框,实训步骤,(2)模块“Options”设置为了对应条件编译中模块设备的选择,在此我们需要进行如下设置:在项目工作组中选择“gm_sensor”模块,单击右键选择“Options”,在弹出的对话框中选择“C/C+Compile”类别,在右边的窗口中选择“Preprocessor”选项中的Defined symbols中输入“GM_SENSOR”,具体设置如图6.4所示。,实训步骤,图6.4 光敏传感器模块“Options”设置,实训步骤,2.建立气体传感器模块设备操作步骤与建立光敏传感器模块设备一样,只需要将模块设备名称与模块“Options”设置分别设置为“qt_sensor”与“QT_SENDOR”,具体设置如图6.5与图6.6所示。,实训步骤,图6.5 气体传感器模块配置对话框,实训步骤,图6.6 气体传感器模块“Options”设置,实训步骤,3.建立协调器模块设备操作步骤与建立光敏传感器模块设备一样,只需要将模块设备名称设置为“collect”,并修改模块“Options”设置。第四步,模块连接及下载程序。1.光敏传感器模块ZigBee模块与光敏传感器模块连接参照实训4进行操作。选择“gm_sensor”模块,选择collect.c单击右键,选择“Options”,在弹出的对话框中将“Exclude from build”复选框中打“”,然后单击“OK”。重新编译程序无误后,重新上电,下载程序到ZigBee模块中。2.气体传感器模块,实训步骤,ZigBee模块与光敏传感器模块连接参照实训5进行操作。选择“qt_sensor”模块,选择collect.c单击右键,选择“Options”,在弹出的对话框中将“Exclude from build”复选框中打“”,然后单击“OK”。重新编译程序无误后,重新上电,下载程序到ZigBee模块中。3.协调器模块选择“collect”模块,选择sensor.c单击右键,选择“Options”,在弹出的对话框中将“Exclude from build”复选框中打“”,然后单击“OK”。重新编译程序无误后,将协调器模块通过串口线连接到PC机串口或者通过USB转串口线连接到PC机,给协调器通电,下载程序到协调器模块中。,实训步骤,各模块连接效果如图6.9所示。,图6.9 各模块连接图,实训步骤,第五步,运行程序。1.打开串口调试软件,把串口的波特率设置为38400。根据光敏及气体浓度的不同,在PC机的串口调试终端上显示不同的光照传感器电压与气体传感器电压信息。如图6.10所示。,实训步骤,图6.10 串口调试窗口,谢谢!,