ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:19.66KB ,
资源ID:5089399      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5089399.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(整理GY30感光模块doc.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

整理GY30感光模块doc.docx

1、整理GY30感光模块doc数字光强度检测模块:GY-30采用ROHM原装BH1750FVI芯片供电电源 :3-5v光照度范围:0-65535 lx传感器内置16bitAD转换器直接数字输出,省略复杂的计算,省略标定不区分环境光源接近于视觉灵敏度的分光特性可对广泛的亮度进行1勒克斯的高精度测定标准NXP IIC通信协议模块内部包含通信电平转换,与5v单片机io直接连接送STC 51 C语言测试代码送AVR M16 C语言测试代码有关知识背景1967年法国第十三届国际计量大会规定了以坎德拉、坎德拉/平方米、流明、勒克斯分别作为发光强度、光亮度、光通量和光照度等的单位,为统一工程技术中使用的光学度量

2、单位有重要意义。 为使您了解和使用便利,以下将有关知识做一简单介绍:1.candela的定义1. 烛光、国际烛光、坎德拉(candela)的定义在每平方米101325牛顿的标准大气压下,面积等于1/60平方厘米的绝对黑体(即能够吸收全部外来光线而毫无反射的理想物体),在纯铂(Pt)凝固温度(约2042K获1769)时,沿垂直方向的发光强度为1 坎德拉。并且,烛光、国际烛光、坎德拉 三个概念是有区别的,不宜等同。从数量上看,60 坎德拉等于58.8国际烛光,亥夫纳灯的1烛光等于0.885国际烛光或0.919坎德拉。2. 发光强度与光亮度发光强度简称光强,国际单位是candela(坎德拉)简写cd

3、。Lcd是指光源在指定方向的单位立体角内发出的光通量。光源辐射是均匀时,则光强为I=F/,为立体角,单位为球面度(sr),F为光通量,单位是流明,对于点光源由I=F/4 。光亮度是表示发光面明亮程度的,指发光表面在指定方向的发光强度与垂直且指定方向的发光面的面积之比,单位是坎德拉/平方米。对于一个漫散射面,尽管各个方向的光强和光通量不同,但各个方向的亮度都是相等的。电视机的荧光屏就是近似于这样的漫散射面,所以从各个方向上观看图像,都有相同的亮度感。以下是部分光源的亮度值:单位cd/m²太阳:1.5*10 ;日光灯:(5-10)*10³;月光(满月):2.5*10³

4、;黑白电视机荧光屏:120左右;彩色电视机荧光屏:80左右。3. 光通量与流明光源所发出的光能是向所有方向辐射的,对于在单位时间里通过某一面积的光能,称为通过这一面积的辐射能通量。各色光的频率不同,眼睛对各色光的敏感度也有所不同,即使各色光的辐射能通量相等,在视觉上并不能产生相同的明亮程度,在各色光中,黄、绿色光能激起最大的明亮感觉。如果用绿色光作水准,令它的光通量等于辐射能通量,则对其它色光来说,激起明亮感觉的本领比绿色光为小,光通量也小于辐射能通量。光通量的单位是流明,是英文lumen的音译,简写为lm。绝对黑体在铂的凝固温度下,从5.305*10³cm²面积上辐射出来

5、的光通量为1lm。为表明光强和光通量的关系,发光强度为1坎德拉的点光源在单位立体角(1球面度)内发出的光通量为1流明。一只40W的日光灯输出的光通量大约是2100流明。4. 光照度与勒克斯光照度可用照度计直接测量。光照度的单位是勒克斯,是英文lux的音译,也可写为lx。被光均匀照射的物体,在1平方米面积上得到的光通量是1流明时,它的照度是1勒克斯。有时为了充分利用光源,常在光源上附加一个反射装置,使得某些方向能够得到比较多的光通量,以增加这一被照面上的照度。例如汽车前灯、手电筒、摄影灯等。以下是各种环境照度值:单位lux黑夜:0.001-0.02;月夜:0.02-0.3;阴天室内:5-50;阴

6、天室外:50-500;晴天室内:100-1000;夏季中午太阳光下的照度:约为10*6次方;阅读书刊时所需的照度:50-60;家用摄像机标准照度:1400相关知识:背景 1967年法国第十三届国际计量大会规定了以 坎德拉、坎德拉/平方米、流明、勒克斯分别作为发光强度、光亮度、光通量和光照度等的单位,为统一工程技术中使用的光学度量单位有重要意义。为使您了解和使用便利,以下将有关知识做一简单介绍:1.candela的定义1. 烛光、国际烛光、坎德拉(candela)的定义 在每平方米101325牛顿的标准大气压下,面积等于1/60平方厘米的绝对黑体(即能够吸收全部外来光线而毫无反射的理想物体),在

7、纯铂(Pt)凝固温度(约2042K获1769)时,沿垂直方向的发光强度为1 坎德拉。并且,烛光、国际烛光、坎德拉 三个概念是有区别的,不宜等同。从数量上看,60 坎德拉等于58.8国际烛光,亥夫纳灯的1烛光等于0.885国际烛光或0.919坎德拉。2. 发光强度与光亮度发光强度简称光强,国际单位是candela(坎德拉)简写cd。Lcd是指光源在指定方向的单位立体角内发出的光通量。光源辐射是均匀时,则光强为I=F/,为立体角,单位为球面度(sr),F为光通量,单位是流明,对于点光源由I=F/4 。光亮度是表示发光面明亮程度的,指发光表面在指定方向的发光强度与垂直且指定方向的发光面的面积之比,单

8、位是坎德拉/平方米。对于一个漫散射面,尽管各个方向的光强和光通量不同,但各个方向的亮度都是相等的。电视机的荧光屏就是近似于这样的漫散射面,所以从各个方向上观看图像,都有相同的亮度感。以下是部分光源的亮度值:单位cd/m²太阳:1.5*10 ;日光灯:(5-10)*10³;月光(满月):2.5*10³;黑白电视机荧光屏:120左右;彩色电视机荧光屏:80左右。3. 光通量与流明光源所发出的光能是向所有方向辐射的,对于在单位时间里通过某一面积的光能,称为通过这一面积的辐射能通量。各色光的频率不同,眼睛对各色光的敏感度也有所不同,即使各色光的辐射能通量相等,在视觉上并不

9、能产生相同的明亮程度,在各色光中,黄、绿色光能激起最大的明亮感觉。如果用绿色光作水准,令它的光通量等于辐射能通量,则对其它色光来说,激起明亮感觉的本领比绿色光为小,光通量也小于辐射能通量。光通量的单位是流明,是英文lumen的音译,简写为lm。绝对黑体在铂的凝固温度下,从5.305*10³cm²面积上辐射出来的光通量为1lm。为表明光强和光通量的关系,发光强度为1坎德拉的点光源在单位立体角(1球面度)内发出的光通量为1流明。一只40W的日光灯输出的光通量大约是2100流明。4. 光照度与勒克斯光照度可用照度计直接测量。光照度的单位是勒克斯,是英文lux的音译,也可写为lx。

10、被光均匀照射的物体,在1平方米面积上得到的光通量是1流明时,它的照度是1勒克斯。有时为了充分利用光源,常在光源上附加一个反射装置,使得某些方向能够得到比较多的光通量,以增加这一被照面上的照度。例如汽车前灯、手电筒、摄影灯等。以下是各种环境照度值:单位lux黑夜:0.001-0.02;月夜:0.02-0.3;阴天室内:5-50;阴天室外:50-500;晴天室内:100-1000;夏季中午太阳光下的照度:约为10*6次方;阅读书刊时所需的照度:50-60;家用摄像机标准照度:1400 分类: C/C+/*/ BH1750FVI IIC测试程序/ 使用单片机STC89C52 / 晶振:11.0592

11、M,这里采用12M/ 显示:串口打印,4800/ 编译环境 Keil uVision2/ 参考宏晶网站24c04通信程序/ 时间:XXXX年11月27日/ 修改:Mr Lee/*#include #include /Keil library #include /Keil library #include #define uchar unsigned char#define uint unsigned int #define SlaveAddress 0x46 /定义器件在IIC总线中的从地址,根据ALT ADDRESS地址引脚不同修改 /ALT ADDRESS引脚接地时地址为0x46,接电源时

12、地址为0xB8sbit SCL=P10; /IIC时钟引脚定义sbit SDA=P11; /IIC数据引脚定义typedef unsigned char BYTE;typedef unsigned short WORD;BYTE BUF8; /接收数据缓存区 uchar ge,shi,bai,qian,wan; /显示变量int dis_data; /变量void delay_nms(unsigned int k);void Init_BH1750(void);void conversion(uint temp_data);void Single_Write_BH1750(uchar REG_

13、Address); /单个写入数据uchar Single_Read_BH1750(uchar REG_Address); /单个读取内部寄存器数据void Multiple_Read_BH1750(); /连续的读取内部寄存器数据/-void Delay5us();void Delay5ms();void BH1750_Start(); /起始信号void BH1750_Stop(); /停止信号void BH1750_SendACK(bit ack); /应答ACKbit BH1750_RecvACK(); /读ackvoid BH1750_SendByte(BYTE dat); /IIC

14、单个字节写BYTE BH1750_RecvByte(); /IIC单个字节读/-/*void conversion(uint temp_data) / 数据转换出 个,十,百,千,万 wan=temp_data/10000+0x30 ; temp_data=temp_data%10000; /取余运算 qian=temp_data/1000+0x30 ; temp_data=temp_data%1000; /取余运算 bai=temp_data/100+0x30 ; temp_data=temp_data%100; /取余运算 shi=temp_data/10+0x30 ; temp_data

15、=temp_data%10; /取余运算 ge=temp_data+0x30; /毫秒延时*void delay_nms(unsigned int k) unsigned int i,j; for(i=0;ik;i+) for(j=0;j121;j+) ; /*延时5毫秒(STC90C52RC12M)不同的工作环境,需要调整此函数当改用1T的MCU时,请调整此延时函数*/void Delay5ms() WORD n = 560; while (n-);/*延时5微秒(STC90C52RC12M)不同的工作环境,需要调整此函数,注意时钟过快时需要修改当改用1T的MCU时,请调整此延时函数*/vo

16、id Delay5us() _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();/*起始信号*/void BH1750_Start() SDA = 1; /拉高数据线 SCL = 1; /拉高时钟线 Delay5us(); /延时 SDA = 0; /产生下降沿 Delay5us(); /延时 SCL = 0; /拉低时钟线/*停止信号*/void BH1750_Stop() SDA =

17、 0; /拉低数据线 SCL = 1; /拉高时钟线 Delay5us(); /延时 SDA = 1; /产生上升沿 Delay5us(); /延时/*发送应答信号入口参数:ack (0:ACK 1:NAK)*/void BH1750_SendACK(bit ack) SDA = ack; /写应答信号 SCL = 1; /拉高时钟线 Delay5us(); /延时 SCL = 0; /拉低时钟线 Delay5us(); /延时/*接收应答信号*/bit BH1750_RecvACK() SCL = 1; /拉高时钟线 Delay5us(); /延时 CY = SDA; /读应答信号 SCL

18、= 0; /拉低时钟线 Delay5us(); /延时 return CY;/*向IIC总线发送一个字节数据*/void BH1750_SendByte(BYTE dat) BYTE i; for (i=0; i8; i+) /8位计数器 dat = 1; /移出数据的最高位 SDA = CY; /送数据口 SCL = 1; /拉高时钟线 Delay5us(); /延时 SCL = 0; /拉低时钟线 Delay5us(); /延时 BH1750_RecvACK();/*从IIC总线接收一个字节数据*/BYTE BH1750_RecvByte() BYTE i; BYTE dat = 0; S

19、DA = 1; /使能内部上拉,准备读取数据, for (i=0; i8; i+) /8位计数器 dat = 1; SCL = 1; /拉高时钟线 Delay5us(); /延时 dat |= SDA; /读数据 SCL = 0; /拉低时钟线 Delay5us(); /延时 return dat;/*void Single_Write_BH1750(uchar REG_Address) BH1750_Start(); /起始信号 BH1750_SendByte(SlaveAddress); /发送设备地址+写信号 BH1750_SendByte(REG_Address); /内部寄存器地址,

20、 / BH1750_SendByte(REG_data); /内部寄存器数据, BH1750_Stop(); /发送停止信号/*单字节读取*/*uchar Single_Read_BH1750(uchar REG_Address) uchar REG_data; BH1750_Start(); /起始信号 BH1750_SendByte(SlaveAddress); /发送设备地址+写信号 BH1750_SendByte(REG_Address); /发送存储单元地址,从0开始 BH1750_Start(); /起始信号 BH1750_SendByte(SlaveAddress+1); /发送

21、设备地址+读信号 REG_data=BH1750_RecvByte(); /读出寄存器数据 BH1750_SendACK(1); BH1750_Stop(); /停止信号 return REG_data; */*/连续读出BH1750内部数据/*void Multiple_read_BH1750(void) uchar i; BH1750_Start(); /起始信号 BH1750_SendByte(SlaveAddress+1); /发送设备地址+读信号 for (i=0; i3; i+) /连续读取2个地址数据,存储中BUF BUFi = BH1750_RecvByte(); /BUF0存

22、储0x32地址中的数据 if (i = 3) BH1750_SendACK(1); /最后一个数据需要回NOACK else BH1750_SendACK(0); /回应ACK BH1750_Stop(); /停止信号 Delay5ms();/初始化BH1750,根据需要请参考pdf进行修改*void Init_BH1750() Single_Write_BH1750(0x01); void uart_init() TMOD=0x20; /TMOD0 TH1=0xf3; /12MHZ ,BPS:4800,N,8,1,0xf3=243 TL1=0xf3; PCON=0x80; /方式一,8位数据

23、位,一位起始位和一位结束位 TR1=1; / SCON=0x40; /串口通信控制寄存器 模式一 void uart_putchar(unsigned char dat) SBUF=dat; /把数据送给sbuf缓存器中 while(TI!=1);/发送标志位 TI如果发送了为1,没发送为0,没发送等待,到了退出循环 TI=0; /到了,TI清为0 void uart_printf(unsigned char *buff) while(*buff) uart_putchar(*buff+);/*/主程序*/*void main() float temp; unsigned char str5;

24、 /delay_nms(100); /延时100ms uart_init(); Init_BH1750(); /初始化BH1750 while(1) /循环 Single_Write_BH1750(0x01); / power on Single_Write_BH1750(0x10); / H- resolution mode delay_nms(180); /延时180ms Multiple_Read_BH1750(); /连续读出数据,存储在BUF中 dis_data=BUF0; dis_data=(dis_data8)+BUF1;/合成数据,即光照数据 temp=(float)dis_data/1.2; conversion(temp); /计算数据和显示 str0=wan; str1=qian; str2=bai; str3=shi; str4=ge; uart_printf(light:); uart_printf(str); uart_printf( lxrn); 广电电器网 云中华 5

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1