bh1750,哪位好心人能给我 亮度传感器 BH1750FVI 的资料啊要具体的这里
来源:整理 编辑:智能门户 2023-08-16 10:46:22
本文目录一览
1,哪位好心人能给我 亮度传感器 BH1750FVI 的资料啊要具体的这里
一下这个地址可以直接下载该产品的PDF资料www.rohm.com/products/databook/sensor/pdf/bh1750fvi-e.pdf
2,BH1750FVI模块AD0引脚接单片机的哪个引脚
不能直接连接单片机,因为bh1750fvi光照传感器产生的是模拟量,需要先与as/da芯片连接,在与单片机连接
3,keil里提出这个错误STCBH1750C232 error C141 syntax error near
BHBH1750_SendByteByte(BYTE Dat)前面这句中参数BYTE在这个函数中不被识别。被认为是语法错误。如果这个函数是你自己写的,那你看一下实参是不是在哪个头文件里有宏定义,而你没有在这个文件中包含该头文件。如果不是你写的,而是库文件,那你就需要查看一下工程目录下缺少哪个库文件导致BYTE的宏定义不存在。进而使编译器不认这个BYTE。BYTE应该是一个数据类型,用来强制类型转换Dat这个实参的。
4,I2C总线连接BH1750发送数据后一直没回ACK什么情况求大神解
1、当从机不能响应从机地址时(例如它正忙于其他事而无法响应IIC总线的操作,或者这个地址没有对应的从机),在第9个SCL周期内SDA线没有拉低,即没有ACK信号。这时,主机发出一个P信号终止传输或者重新发出一个S信号开始新的传输。2、如果从机接收器在传输过程中不能接收更多的数据时,它不会发出ACK信号。这样,主机就可以意识到这点,从而发出一个P信号终止传输或者重新发出一个S信号开始新的传输。3、主机接收器在接收到最后一个字节后,也不会发出ACK信号。于是,从机发送器释放SDA线,以允许主机发出P信号结束传输。好像不包括从机地址不存在的情况
5,如何找bh1750的在iic总线中的地址
IIC上的每个器件是否都要一个地址寄存器来确定自己的地址:很多器件都是通过硬件来确定地址的。 有的在出厂时地址就设置好了,用户不可以更改,有的确定了几位,剩下几位由硬件确定(比如有三位由用户确定,就留有3个控制地址的引脚),此类较多;还有的有地址寄存器。 严格讲,主机不是向从机发送地址,而是主机往总线上发送地址,所有的从机都能接收到主机发出的地址,然后每个从机都将主机发出的地址与自己的地址比较,如果匹配上了,这个从机就会向主机发出一个响应信号。主机收到响应信号后,开始向总线上发送数据,与这个从机的通讯就建立起来了。如果主机没有收到响应信号,则表示寻址失败。 比如带IIC的单片机,会有地址寄存器,寄存器里的值即为它作为从机时的地址。 最常见的情况,主从器件的角色是确定的,也就是说从机一直工作在从机模式。它的地址确定方法我已经说过了。不同的器件定义地址的方式是不同的,有的是软件定义,有的是硬件定义。
6,bh1750传感器电路问题求助
这种电路一般没人提供给你的这涉及到技术保密协议了传感器是一种检测装置,能感受到被测量的信息,并能将感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。传感器的特点包括:微型化、数字化、智能化、多功能化、系统化、网络化。它是实现自动检测和自动控制的首要环节。传感器的存在和发展,让物体有了触觉、味觉和嗅觉等感官,让物体慢慢变得活了起来。通常根据其基本感知功能分为热敏元件、光敏元件、气敏元件、力敏元件、磁敏元件、湿敏元件、声敏元件、放射线敏感元件、色敏元件和味敏元件等十大类。//**********************************************************//**iic驱动程序**//**单片机:stc12c5410ad主频:24mhz**//**jumping<2008.04.20>**//**********************************************************//#include<regx051.h>//at89c4051头文件#include"../inc/stc12c5410ad.h"//at89c4051头文件#include<intrins.h>//系统调令头文件#include"def.h"//类型定义文件#include"config.h"//配置头文件#include"iic.h"//配置头文件#include"uart.h"//配置头文件#definesomenop();//*****变量声明****intch0,ch1;//***函数声明***voidi2c_start(void);voidi2c_stop(void);boolsend_byte_i2c(bytetmdata);byteread_byte_i2c_ack();byteread_byte_i2c_noack();uchartsl2561_read_byte(ucharaddr);voidinittsl256x(void);intgetlux(void);//boolread_data_i2c(byteinum,unsignedintwaddr,bytetmdata[64]);//boolwrite_data_i2c(byteinum,unsignedintwaddr,bytetmdata[64]);//***************************************************************************************unsignedintcalculatelux(unsignedintigain,unsignedinttint,unsignedintch0,unsignedintch1,intitype);//#pragmaoptimize(5)/********************************************************************************名称:i2c_start()*功能:启动i2c操作*入口参数:无*出口参数:无*******************************************************************************/voidi2c_start(void)sda=0;scl=0;somenop();//数据线保持高,时钟线从高到低一次跳变,i2c通信开始sda=1;scl=1;somenop();//数据线保持高,时钟线从高到低一次跳变,i2c通信开始sda=0;scl=0;somenop();//数据线保持高,时钟线从高到低一次跳变,i2c通信开始sda=1;scl=1;somenop();//数据线保持高,时钟线从高到低一次跳变,i2c通信开始somenop();//数据线保持高,时钟线从高到低一次跳变,i2c通信开始sda=0;scl=0;somenop();//数据线保持高,时钟线从高到低一次跳变,i2c通信开始sda=1;scl=1;somenop();//数据线保持高,时钟线从高到低一次跳变,i2c通信开始sda=0;scl=0;somenop();//数据线保持高,时钟线从高到低一次跳变,i2c通信开始sda=1;scl=1;somenop();//数据线保持高,时钟线从高到低一次跳变,i2c通信开始somenop();//数据线保持高,时钟线从高到低一次跳变,i2c通信开始sda=1;scl=0;somenop();//数据线保持高,时钟线从高到低一次跳变,i2c通信开始sda=1;scl=1;somenop();//数据线保持高,时钟线从高到低一次跳变,i2c通信开始sda=0;somenop();//数据线保持高,时钟线从高到低一次跳变,i2c通信开始somenop();//数据线保持高,时钟线从高到低一次跳变,i2c通信开始}/********************************************************************************名称:i2c_stop()*功能:结束i2c操作*入口参数:无*出口参数:无*******************************************************************************/voidi2c_stop(void)sda=0;somenop();//数据线保持低,时钟线从低到高一次跳变,i2c通信停止scl=1;somenop();sda=1;somenop();}/********************************************************************************名称:i2c_start()*功能:启动i2c操作*入口参数:无*出口参数:无*******************************************************************************/voidsendack(void)sda=1;scl=0;somenop();//数据线保持低,时钟线发生一次从高低的跳变发送一个应答信号scl=1;somenop();//scl=0;}/********************************************************************************名称:i2c_start()*功能:启动i2c操作*入口参数:无*出口参数:无*******************************************************************************/voidsendnotack(void)sda=1;scl=0;somenop();//数据线保持高,时钟线发生一次从高低的跳变没有应答scl=1;somenop();//scl=0;}/********************************************************************************名称:i2c_start()*功能:启动i2c操作*入口参数:无*出口参数:无*******************************************************************************/boolsend_byte_i2c(bytech)unsignedchari=8;while(i--)scl=0;_nop_();sda=(bit)(ch&0x80);ch<<=1;somenop();//时钟保持低可以发送数据scl=1;somenop();}scl=0;sendnotack();return0;}/********************************************************************************名称:i2c_start()*功能:启动i2c操作*入口参数:无*出口参数:无*******************************************************************************/byteread_byte_i2c_ack(void)bytei,tdata;i=8;tdata=0;sda=1;_nop_();_nop_();_nop_();while(i--)tdata<<=1;scl=0;somenop();scl=1;somenop();//时钟做一次从低到高的跳变可以接收数据tdata|=sda;}scl=0;sendack();returntdata;}/********************************************************************************名称:i2c_start()*功能:启动i2c操作*入口参数:无*出口参数:无*******************************************************************************/byteread_byte_i2c_noack()bytei;bytetmdata=0;sda=1;for(i=0;i<8;i++)tmdata*=2;scl=1;if(sda)tmdata|=0x01;scl=0;_nop_();_nop_();_nop_();_nop_();_nop_();}/*scl=0;*/returntmdata;}/********************************************************************************名称:tsl2561_write_byte()*功能:启动i2c操作*入口参数:无*出口参数:无*******************************************************************************/uchartsl2561_write_byte(unsignedcharaddr,unsignedchardat)ucharstatus=0;i2c_start();//开始status=send_byte_i2c(tsl2561_addr|tsl2561_wr);//写tsl2561地址status=send_byte_i2c(0x80|addr);//写命令status=send_byte_i2c(dat);//写数据i2c_stop();//停止delay_1ms(2);//延时2msreturn0;}/********************************************************************************名称:tsl2561_read_byte()*功能:启动i2c操作*入口参数:无*出口参数:无*******************************************************************************/uchartsl2561_read_byte(ucharaddr)ucharstatus=0;i2c_start();//开始status=send_byte_i2c(tsl2561_addr|tsl2561_wr);//写tsl2561地址status=send_byte_i2c(0x80|addr);//写命令i2c_start();//re开始status=send_byte_i2c(tsl2561_addr|tsl2561_rd);//写tsl2561地址status=read_byte_i2c_ack();//读数据i2c_stop();//停止delay_1ms(10);returnstatus;}/********************************************************************************名称:inittsl256x()*功能:启动i2c操作*入口参数:无*出口参数:无*******************************************************************************/voidinittsl256x(void)ucharstatus;status=tsl2561_write_byte(0x00,pwup);//寄存器00h//status=tsl2561_write_byte(0x01,0x12);//寄存器00hstatus=tsl2561_write_byte(0x01,0x02);//寄存器00h//jumping080522changethegainto1xstatus=tsl2561_write_byte(0x02,0x00);//寄存器00hstatus=tsl2561_write_byte(0x03,0x00);//寄存器00hstatus=tsl2561_write_byte(0x04,0x00);//寄存器00hstatus=tsl2561_write_byte(0x05,0x00);//寄存器00hstatus=tsl2561_write_byte(0x06,0x00);//寄存器00h/*i2c_start();//开始status=send_byte_i2c(tsl2561_addr|tsl2561_wr);//写tsl2561地址//jumpingtestwhile(!status)//testthetsl2561ackled=0;led=1;status=send_byte_i2c(0x90|reg_ctr);//写命令//i2c_start();//开始//status=send_byte_i2c(tsl2561_addr|tsl2561_rd);//写tsl2561地址status=send_byte_i2c(0x07);//写nge????????status=send_byte_i2c(pwup);//寄存器00hstatus=send_byte_i2c(0x12);//寄存器01h-thegain=116x-thetimer=10401msstatus=send_byte_i2c(0x00);//寄存器02hstatus=send_byte_i2c(0x00);//寄存器03hstatus=send_byte_i2c(0x00);//寄存器04hstatus=send_byte_i2c(0x00);//寄存器05hstatus=send_byte_i2c(0x00);//寄存器06hnointerrupti2c_stop();//停止*/delay_1ms(10);//延时10ms}//****************************************************************************////copyright-handsonjumping,inc.////luxequationapproximationwithoutfloatingpointcalculations////////////////////////////////////////////////////////////////////////////////routine:unsignedintcalculatelux(unsignedintch0,unsignedintch0,intitype)////description:calculatetheapproximateilluminance(lux)giventheraw//channelvaluesofthetsl2560.theequationifimplemented//asapiece.wiselinearapproximation.////arguments:unsignedintigain.gain,where0:1x,1:16x//unsignedinttint.integrationtime,where0:13.7ms,1:100ms,2:402ms,//3:manual//unsignedintch0.rawchannelvaluefromchannel0oftsl2560//unsignedintch1.rawchannelvaluefromchannel1oftsl2560//unsignedintitype.packagetype(torcs)////return:unsignedint.theapproximateilluminance(lux)////////////////////////////////////////////////////////////////////////////////unsignedintcalculatelux(unsignedintigain,unsignedinttint,unsignedintch0,unsignedintch1,intitype)unsignedlongratio1;unsignedlongratio;unsignedlongtemp;unsignedlonglux;unsignedlongchscale;//tsl2561unsignedlongchannel1;//tsl2561unsignedlongchannel0;//tsl2561unsignedintb,m;//........................................................................//first,scalethechannelvaluesdependingonthegainandintegrationtime//16x,402msisnominal.//scaleifintegrationtimeisnot402msecswitch(tint)case0://13.7msecchscale=chscale_tint0;break;case1://101msecchscale=chscale_tint1;break;default://assumenoscalingchscale=(1<<ch_scale);break;}//scaleifgainisnot16xif(!igain)chscale=chscale<<4;//scale1xto16x//scalethechannelvalueschannel0=(ch0*chscale)>>ch_scale;channel1=(ch1*chscale)>>ch_scale;//........................................................................//findtheratioofthechannelvalues(channel1/channel0)//protectagainstdividebyzeroratio1=0;if(channel0!=0)ratio1=(channel1<<(ratio_scale+1))/channel0;//roundtheratiovalueratio=(ratio1+1)>>1;//isratio<=eachbreak?switch(itype)case0://tpackageif((ratio>=0)&&(ratio<=k1t))elseif(ratio<=k2t)elseif(ratio<=k3t)elseif(ratio<=k4t)elseif(ratio<=k5t)elseif(ratio<=k6t)elseif(ratio<=k7t)elseif(ratio>k8t)break;case1://cspackage/*if((ratio>=0)&&(ratio<=k1c))elseif(ratio<=k2c)elseif(ratio<=k3c)elseif(ratio<=k4c)elseif(ratio<=k5c)elseif(ratio<=k6c)elseif(ratio<=k7c)elseif(ratio>k8c)*/break;}temp=((channel0*b)-(channel1*m));//donotallownegativeluxvalueif(temp<0)temp=0;//roundlsb(2^(lux_scale.1))temp+=(1<<(lux_scale-1));//stripofffractionalportionlux=temp>>lux_scale;return(lux);}/********************************************************************************名称:getlux()*功能:启动i2c操作*入口参数:无*出口参数:无*******************************************************************************/intgetlux(void)inti;i=0;ch0=tsl2561_read_byte(reg_ch0_l);ch0=ch0+tsl2561_read_byte(reg_ch0_h)*256;ch1=tsl2561_read_byte(reg_ch1_l);ch1=ch1+tsl2561_read_byte(reg_ch1_h)*256;i=calculatelux(gain_1x,itime_400ms,ch0,ch1,foottype_t);return(i);}
文章TAG:
哪位 好心人 给我 bh1750 哪位好心人能给我 亮度传感器 BH1750FVI 的资料啊要具体的这里
大家都在看
-
自动售蛋机价格,自动售货机多少钱?一般情况下价格都差不多
2022-12-19
-
自动机械表可以戴着跑步吗,戴运动手表跑步健身
2022-12-20
-
佳能m3设置自动对焦,佳能80d自动对焦模式设置如何进行?
2023-01-04
-
lg v30 自动拍照模式,lgv30怎么玩?
2023-01-08
-
不让百度影棒自动升级,电视上出现百度影棒故障怎么办?
2023-01-10
-
为什么闹钟会自动关闭,为什么不关闭闹钟?原来是这样
2023-01-26
-
自动登陆,登陆网站须注意什么?
2023-02-07
-
小米6 自动拍,如何使用手机拍照?
2023-02-08
-
支付宝怎么样自动提现,如何珍惜赏金提现?
2023-02-09
-
暴风影音字幕自动,怎么用暴风影音?看这里!
2023-03-05
-
科学小实验自动饮水机,用装满水的瓶子做一个自动饮水机
2023-03-05
-
江苏闪派智能科技怎么样,江苏科技大学的电子信息工程怎样
2023-04-01
-
智能科技花洒怎么用,多功能自动储水式电热淋浴器怎样洗澡
2023-04-14
-
元界智能科技是干什么的,智业科技主要是做什么的
2023-04-18
-
实现办公自动化,办公自动化具体都包括那些内容
2023-05-10