见项目智能家居学员light_第1页
见项目智能家居学员light_第2页
见项目智能家居学员light_第3页
见项目智能家居学员light_第4页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验05_光线传感器的使用

【实验目的】:

1、学习光线传感器ISL29003的原理

2、掌握光线传感器ISL29003的使用方法

3、复习I2C总线的使用

【实验环境】:

1、FS_11C14开发板

2、FS_Colink V2.0

3、RealViewMDK(KeiluVision4)

【实验步骤】:

1、在light文件夹下找到并打开project.uvproj文件;

2、编译此工程;

3、通过FS_Colink下载编译好的工程到FS_11C14开发板;

4、按Reset键复位开发板,观察OLED显示;

5、分别把开发板放在光照程度不同的地方,观察OLED显示;

6、查看ISL29003芯片手册,学习其原理及使用方法;

7、对照原理图分析实验代码

【实验现象】

OLED显示处理后光线的数据,分别把开发板放在光照程度不同的地方,OLED显示值会发生相应的变化,如图:

正常环境中

用笔遮挡后值变小

用光照后值大

【实验分析】

硬件分析:

由原理图可知ISL29003通过I2C总线与LPC11C14进行通信,其中PIO0_4作为

ISL29003的SDA,PIO0_5作为ISL29003的SCL,PIO0_7作为ISL29003的Light_nINT。

软件分析:

光感测试程序:

voidLight_Test(void)

{

char buf[24];

uint32_t lux;

OLED_ClearScreen(); //清屏OLED_DisStrLine(0,0,"Light"); //在第一行显示”Light”

I2CInit(I2CMASTER,0); //I2C初始化

light_init();light_enable();

light_setRange(LIGHT_RANGE_4000);

printf("\r\n");while(1)

{

lux=light_read(); //读取Light值

snprintf(buf,20,"%d ",lux); //将lux的值以%d格式存放到buf里

OLED_DisStrLine(2,0,(uint8_t*)buf); //显示bufprintf("%d ",lux);

delay_ms(300);

}

}

读取Light值:

uint32_tlight_read(void)

{

uint32_tdata=0;uint8_tbuf[1];

buf[0]=ADDR_LSB_SENSOR;I2CWrite(LIGHT_I2C_ADDR,buf,1);

I2CRead(LIGHT_I2C_ADDR,buf,1);

data=buf[0];

buf[0]=ADDR_MSB_SENSOR;I2CWrite(LIGHT_I2C_ADDR,buf,1);

I2CRead(LIGHT_I2C_ADDR,buf,1);

data=(buf[0]<<8|data);

/*Rext=100k*/

/*E=(range(k)*DATA)/2^n*/

//r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论