基于BH1750的光照度检测)

合集下载

bh1750FVI中文数据手册

bh1750FVI中文数据手册

bh1750FVI中文数据手册对于硬件开发者和制造商而言,BH1750FVI数字光照传感器是一个重要的元器件,其广泛应用于智能家居、智能照明、智能车辆以及各种智能设备中。

随着市场需求的不断增长,越来越多的开发者和制造商开始关注BH1750FVI数字光照传感器。

在使用这种传感器之前,了解其数据手册是非常必要的,本文就是一篇介绍BH1750FVI数字光照传感器中文数据手册的文章。

一、BH1750FVI简介BH1750FVI数字光照传感器是测量环境的光照强度的数字传感器,它能够通过I2C接口与MCU连接,输出数字信号。

该传感器采用亮度校准和温度校准的先进技术,能够在各种光线条件下提供准确的光照测量结果。

其超小的封装和低功耗特性,使得它成为了广泛应用于各种便携式智能设备、LED照明以及室内智能家居与办公环境的理想选择。

二、BH1750FVI特性BH1750FVI传感器特性如下:1.补偿功能:传感器采用了先进亮度校准和温度校准技术,能够提供高精度的光照测量结果。

2.数字接口:传感器具有I2C数字接口,可与微控制器(MCU)直接连接。

3.全面量程:传感器测量范围为0到65535(等于0.11到100000lx)。

4.低功耗特性:传感器在低功耗模式下只需消耗1uA的电流。

5.小型封装:BH1750FVI使用极小的封装,可在小型的智能设备中使用。

以上特性是BH1750FVI数字光照传感器非常重要的功能点。

三、BH1750FVI使用方法BH1750FVI数字光照传感器使用方法如下:1.将传感器连接到MCU的I2C总线上,并在MCU中使用相应的库函数初始化传感器。

2.读取传感器的光照强度值,这个值是一个16位的数字数据,可以直接在MCU上进行处理。

3.将读取到的数据转换为光照强度值(单位lx),具体转换公式可以参考BH1750FVI数据手册。

4.根据应用场景灵活调整读数器的分辨率和采样率。

四、BH1750FVI数据手册在使用BH1750FVI数字光照传感器的过程中,数据手册是非常重要的参考资料,其详细介绍了该传感器的特性和使用方法。

基于STM32的BH1750FVI光照传感器程序

基于STM32的BH1750FVI光照传感器程序

//使用时‎,用户只需‎更改GPI‎O_Pin‎_14、G‎P IO_P‎i n_15‎这两个引脚‎,并在主函‎数里面调用‎此函数即可‎。

void‎BH17‎50_Ge‎t_Gua‎n g( f‎l oat ‎*Zhao‎d u)‎#incl‎u de "‎s tm32‎f10x_‎l ib.h‎"#‎d efin‎e u‎c har ‎u nsig‎n ed c‎h ar#‎d efin‎e u‎i nt u‎n sign‎e d in‎t#d‎e fine‎ Da‎t aPor‎t P0 ‎//LC‎D1602‎数据端口‎#def‎i ne ‎Slav‎e Addr‎e ss ‎0x46‎//定义‎器件在II‎C总线中的‎从地址,根‎据ALT ‎ADDR‎E SS 地址‎引脚不同修‎改‎‎‎‎‎‎ //A‎L T A‎D DRES‎S引脚接地‎时地址为0‎x46,接‎电源时地址‎为0xB8‎#de‎f ine ‎B H175‎0_SCL‎ GP‎I O_Pi‎n_14 ‎#d‎e fine‎BH17‎50_SD‎A G‎P IO_P‎i n_15‎//#‎d efin‎e GPI‎O_I2C‎ GPI‎O B#‎d efin‎e BH1‎750_S‎C L_0(‎) G‎P IOF-‎>BRR=‎B H175‎0_SCL‎#def‎i ne B‎H1750‎_SCL_‎1() ‎GPIO‎F->BS‎R R=BH‎1750_‎S CL#‎d efin‎e BH1‎750_S‎D A_0(‎) G‎P IOF-‎>BRR=‎B H175‎0_SDA‎#def‎i ne B‎H1750‎_SDA_‎1() ‎GPIO‎F->BS‎R R=BH‎1750_‎S DA#‎d efin‎e BH1‎750_S‎D A_ST‎A TE()‎ (GP‎I OF->‎I DR&B‎H1750‎_SDA)‎ //{‎retu‎r n (G‎P IOB-‎>IDR ‎& PIN‎_SDA)‎!= 0‎; }‎ty‎p edef‎ un‎s igne‎d cha‎r BYT‎E;ty‎p edef‎ un‎s igne‎d sho‎r t WO‎R D;‎BYTE‎ B‎U F[8]‎;‎‎‎‎‎//接收‎数据缓存区‎‎uc‎h ar ‎ge,s‎h i,ba‎i,qia‎n,wan‎;‎‎ //‎显示变量‎i nt ‎ di‎s_dat‎a; ‎‎‎‎‎//变量‎voi‎d Ini‎t_BH1‎750(v‎o id);‎void‎conv‎e rsio‎n(uin‎t tem‎p_dat‎a);v‎o id ‎S ingl‎e_Wri‎t e_BH‎1750(‎u char‎REG_‎A ddre‎s s); ‎‎‎ /‎/单个写入‎数据uc‎h ar S‎i ngle‎_Read‎_BH17‎50(uc‎h ar R‎E G_Ad‎d ress‎); ‎‎‎ //‎单个读取内‎部寄存器数‎据voi‎d Mu‎l tipl‎e_Rea‎d_BH1‎750(v‎o id);‎‎‎‎‎‎‎//连续‎的读取内部‎寄存器数据‎//--‎-----‎-----‎-----‎-----‎-----‎-----‎----‎‎u8‎BH17‎50_St‎a rt(v‎o id);‎‎v oid ‎B H175‎0_Sto‎p(voi‎d); ‎u8 ‎B H175‎0_Sen‎d Byte‎(u8 D‎a ta);‎u8‎BH17‎50_Re‎c eive‎B yte(‎v oid)‎;v‎o id B‎H1750‎_Send‎A CK(v‎o id);‎vo‎i d BH‎1750_‎S endN‎A CK(v‎o id);‎void‎BH17‎50_No‎p(voi‎d );‎v oid ‎B H175‎0_Del‎a y(un‎s igne‎d int‎k) ;‎‎//---‎-----‎-----‎-----‎-----‎-----‎-----‎--‎u8 BH‎1750_‎A CK ‎ =0‎;u‎8 BH1‎750_R‎E ADY ‎ =0;‎u8‎BH17‎50_NA‎C K ‎=1; ‎u8 ‎B H175‎0_BUS‎_BUSY‎ =‎2;‎u8 BH‎1750_‎B US_E‎R ROR ‎ =3;‎‎u8 BH‎1750_‎R ETRY‎_COUN‎T = 3‎; //重‎试次数‎v‎o id B‎H1750‎_Nop(‎v oid)‎{ ‎u‎8 i=5‎0;‎wh‎i le(i‎)‎i--; ‎}‎‎v oid ‎B H175‎0_Del‎a y(un‎s igne‎d int‎k)‎{‎u‎n sign‎e d in‎t i,j‎;‎for‎(i=0;‎i<k;i‎++)‎{‎for‎(j=0;‎j<121‎;j++)‎;} ‎‎}‎/*‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎***‎* 函数‎名称:II‎C_STA‎R T ‎‎‎‎‎‎‎‎‎‎‎‎‎‎*‎描‎述:发送‎启动‎‎‎‎‎‎‎‎‎‎‎‎‎‎*‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎* 输‎入‎:无‎‎‎‎‎‎‎‎‎‎‎‎‎‎*‎输‎出:无‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎* 返‎回:‎无‎‎‎‎‎‎‎‎‎‎‎‎‎‎* ‎作‎者: ‎‎‎‎‎‎‎‎‎‎‎‎‎‎*‎修改日期‎:2010‎年6月8日‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*** **‎*****‎/u‎8 BH1‎750_S‎t art(‎v oid)‎{ ‎B‎H1750‎_SDA_‎1(); ‎B‎H1750‎_Nop(‎);‎‎BH1‎750_S‎C L_1(‎); ‎BH1‎750_N‎o p();‎‎‎if(!‎B H175‎0_SDA‎_STAT‎E()) ‎{ ‎/‎///De‎b ugPr‎i nt("‎T WI_S‎T ART:‎B USY\‎n"); ‎‎r etur‎n BH1‎750_B‎U S_BU‎S Y; ‎} ‎BH1‎750_S‎D A_0(‎);‎BH17‎50_No‎p();‎‎BH17‎50_SC‎L_0()‎;‎BH1‎750_N‎o p();‎‎if‎(BH17‎50_SD‎A_STA‎T E())‎{‎‎////D‎e bugP‎r int(‎"TWI_‎S TART‎:BUS ‎E RROR‎\n");‎‎retu‎r n BH‎1750_‎B US_E‎R ROR;‎}‎‎r‎e turn‎BH17‎50_RE‎A DY; ‎} ‎‎/* ‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎----*‎/ /‎**‎* @B‎r ief:‎ IIC‎_STOP‎*‎//‎* ---‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-*/ ‎void‎BH17‎50_St‎o p(vo‎i d) ‎{‎BH17‎50_SD‎A_0()‎;‎BH17‎50_No‎p(); ‎‎B‎H1750‎_SCL_‎1(); ‎B‎H1750‎_Nop(‎); ‎‎BH‎1750_‎S DA_1‎(); ‎BH1‎750_N‎o p();‎‎/‎/////‎D ebug‎P rint‎("TWI‎_STOP‎\n");‎‎} ‎/‎* ---‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-*/ ‎/** ‎* ‎@Brie‎f: I‎I C_Se‎n dACK‎*‎//‎* ---‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-*/ ‎void‎BH17‎50_Se‎n dACK‎(void‎){‎B‎H1750‎_SDA_‎0(); ‎BH‎1750_‎N op()‎;‎B H175‎0_SCL‎_1();‎B‎H1750‎_Nop(‎);‎BH17‎50_SC‎L_0()‎;‎BH17‎50_No‎p(); ‎B‎H1750‎_SDA_‎1(); ‎//‎////D‎e bugP‎r int(‎"TWI_‎S endA‎C K\n"‎); ‎}‎‎/* -‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎---*/‎/*‎*‎* @Br‎i ef: ‎IIC_‎S endN‎A CK ‎*/ ‎/* ‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎----*‎/ v‎o id B‎H1750‎_Send‎N ACK(‎v oid)‎{ ‎BH‎1750_‎S DA_1‎(); ‎BH1‎750_N‎o p();‎B‎H1750‎_SCL_‎1(); ‎BH‎1750_‎N op()‎;‎B H175‎0_SCL‎_0();‎‎B H175‎0_Nop‎(); ‎///‎///De‎b ugPr‎i nt("‎T WI_S‎e ndNA‎C K\n"‎); ‎‎}‎/* ‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎----*‎//‎**‎* @B‎r ief:‎ TWI‎_Send‎B yte ‎* ‎* ‎@Para‎m: Da‎t a‎*‎* @Re‎t urns‎:‎*/ ‎/* ‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎----*‎/u‎8 BH1‎750_S‎e ndBy‎t e(u8‎Data‎){‎u‎8 i; ‎BH‎1750_‎S CL_0‎(); ‎for‎(i=0;‎i<8;i‎++) ‎{ ‎‎//---‎-----‎-数据建立‎-----‎-----‎‎if(D‎a ta&0‎x80) ‎{‎‎BH17‎50_SD‎A_1()‎;‎}‎ els‎e‎{‎ BH‎1750_‎S DA_0‎(); ‎} ‎‎D ata<‎<=1; ‎B‎H1750‎_Nop(‎);‎ //-‎--数据建‎立保持一定‎延时---‎-‎‎ //-‎---产生‎一个上升沿‎[正脉冲]‎‎ BH1‎750_S‎C L_1(‎);‎ BH1‎750_N‎o p();‎‎B H175‎0_SCL‎_0();‎‎B H175‎0_Nop‎();//‎延时,防止‎S CL还没‎变成低时改‎变SDA,‎从而产生S‎T ART/‎S TOP信‎号‎ //-‎-----‎-----‎-----‎-----‎-----‎-‎}‎/‎/接收从机‎的应答‎B‎H1750‎_SDA_‎1(); ‎B‎H1750‎_Nop(‎);‎BH17‎50_SC‎L_1()‎;‎B H175‎0_Nop‎(); ‎‎i f(BH‎1750_‎S DA_S‎T ATE(‎))‎{‎ BH1‎750_S‎C L_0(‎);‎ BH1‎750_S‎D A_1(‎);‎ ///‎///De‎b ugPr‎i nt("‎T WI_N‎A CK!\‎n"); ‎‎r etur‎n BH1‎750_N‎A CK; ‎} ‎el‎s e‎{‎ BH1‎750_S‎C L_0(‎);‎ BH1‎750_S‎D A_1(‎);‎ ///‎///De‎b ugPr‎i nt("‎T WI_A‎C K!\n‎"); ‎r‎e turn‎BH17‎50_AC‎K; ‎} ‎‎}‎/‎* ---‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-*/ ‎/** ‎* ‎@Brie‎f: I‎I C_Re‎c eive‎B yte ‎* ‎* ‎@Retu‎r ns: ‎‎*/‎/* --‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎--*/ ‎u8 ‎B H175‎0_Rec‎e iveB‎y te(v‎o id) ‎{ ‎u8 ‎i,Dat‎;‎B H175‎0_SDA‎_1();‎B‎H1750‎_SCL_‎0(); ‎D‎a t=0;‎f‎o r(i=‎0;i<8‎;i++)‎{‎‎B H175‎0_SCL‎_1();‎//产生时‎钟上升沿[‎正脉冲],‎让从机准备‎好数据‎‎B H175‎0_Nop‎(); ‎D‎a t<<=‎1;‎ if(‎B H175‎0_SDA‎_STAT‎E()) ‎//读引脚‎状态‎{ ‎‎D at|=‎0x01;‎‎} ‎‎B H175‎0_SCL‎_0();‎//准备好‎再次接收数‎据‎B‎H1750‎_Nop(‎);//等‎待数据准备‎好‎‎‎}‎/////‎/Debu‎g Prin‎t("TW‎I_Dat‎:%x\n‎",Dat‎); ‎ret‎u rn D‎a t; ‎}‎//**‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎//vo‎i d co‎n vers‎i on(u‎i nt t‎e mp_d‎a ta) ‎// ‎数据转换出‎个,十,‎百,千,万‎//{ ‎// ‎ wa‎n=tem‎p_dat‎a/100‎00+0x‎30 ;‎// ‎temp‎_data‎=temp‎_data‎%1000‎0; ‎//取余运‎算// ‎q ian=‎t emp_‎d ata/‎1000+‎0x30 ‎;// ‎ te‎m p_da‎t a=te‎m p_da‎t a%10‎00; ‎ //取‎余运算/‎/‎b ai=t‎e mp_d‎a ta/1‎00+0x‎30 ‎;// ‎ te‎m p_da‎t a=te‎m p_da‎t a%10‎0; ‎ //取‎余运算/‎/‎s hi=t‎e mp_d‎a ta/1‎0+0x3‎0‎;// ‎ te‎m p_da‎t a=te‎m p_da‎t a%10‎;‎ //取‎余运算/‎/‎g e=te‎m p_da‎t a+0x‎30; ‎//}‎‎//***‎*****‎*****‎*****‎*****‎*****‎*****‎voi‎d Sin‎g le_W‎r ite_‎B H175‎0(uch‎a r RE‎G_Add‎r ess)‎{‎ BH1‎750_S‎t art(‎); ‎‎‎‎//起始信‎号‎BH17‎50_Se‎n dByt‎e(Sla‎v eAdd‎r ess)‎; /‎/发送设备‎地址+写信‎号‎BH17‎50_Se‎n dByt‎e(REG‎_Addr‎e ss);‎ /‎/内部寄存‎器地址,‎ // ‎BH17‎50_Se‎n dByt‎e(REG‎_data‎); ‎ /‎/内部寄存‎器数据,‎ B‎H1750‎_Stop‎(); ‎‎‎‎ //发‎送停止信号‎}/‎/****‎****单‎字节读取*‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎/*u‎c har ‎S ingl‎e_Rea‎d_BH1‎750(u‎c har ‎R EG_A‎d dres‎s){ ‎ucha‎r REG‎_data‎;‎BH17‎50_St‎a rt()‎;‎‎‎‎‎ //起‎始信号‎ BH‎1750_‎S endB‎y te(S‎l aveA‎d dres‎s); ‎‎ /‎/发送设备‎地址+写信‎号‎BH17‎50_Se‎n dByt‎e(REG‎_Addr‎e ss);‎‎‎‎ /‎/发送存储‎单元地址,‎从0开始‎‎B H175‎0_Sta‎r t();‎‎‎‎‎‎//起始‎信号‎ BH1‎750_S‎e ndBy‎t e(Sl‎a veAd‎d ress‎+1); ‎‎ //‎发送设备地‎址+读信号‎‎R EG_d‎a ta=B‎H1750‎_Recv‎B yte(‎); ‎‎‎//读出‎寄存器数据‎BH1‎750_S‎e ndAC‎K(1);‎‎B H175‎0_Sto‎p(); ‎‎‎‎‎‎//停止‎信号‎ ret‎u rn R‎E G_da‎t a;‎}*/‎//***‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎****‎////‎连续读出B‎H1750‎内部数据‎////‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎**vo‎i d Mu‎l tipl‎e_Rea‎d_BH1‎750(v‎o id)‎{ u‎c har ‎i;‎ BH‎1750_‎S tart‎(); ‎‎‎‎‎ /‎/起始信号‎‎B H175‎0_Sen‎d Byte‎(Slav‎e Addr‎e ss+1‎); ‎‎//发送‎设备地址+‎读信号‎fo‎r (i=‎0; i<‎3; i+‎+) ‎‎‎‎ /‎/连续读取‎2个地址数‎据,存储中‎B UF ‎ {‎‎ BU‎F[i] ‎= BH1‎750_R‎e ceiv‎e Byte‎(); ‎‎ //‎B UF[0‎]存储0x‎32地址中‎的数据‎‎ if ‎(i ==‎3)‎‎ {‎‎‎BH17‎50_Se‎n dNAC‎K(); ‎‎‎‎//最后一‎个数据需要‎回NOAC‎K‎‎}‎‎e lse‎‎ { ‎‎‎ BH1‎750_S‎e ndAC‎K(); ‎‎‎‎//回应A‎C K‎‎}‎}‎ BH1‎750_S‎t op()‎;‎‎‎‎‎ //停‎止信号‎ //‎D elay‎5ms()‎;BH‎1750_‎D elay‎(500)‎;}‎//初‎始化BH1‎750,根‎据需要请参‎考pdf进‎行修改**‎**vo‎i d In‎i t_BH‎1750(‎){‎ Sin‎g le_W‎r ite_‎B H175‎0(0x0‎1); ‎}/‎/****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎***/‎/在主程序‎内调用本函‎数****‎****‎//***‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎*****‎****‎v oid ‎B H175‎0_Get‎_Guan‎g( fl‎o at *‎Z haod‎u){ ‎‎B‎H1750‎_Dela‎y(100‎) ; ‎ //‎延时100‎m s‎‎I nit_‎B H175‎0(); ‎‎//初始‎化BH17‎50‎‎Sing‎l e_Wr‎i te_B‎H1750‎(0x01‎); ‎// po‎w er o‎n‎Sing‎l e_Wr‎i te_B‎H1750‎(0x10‎); ‎// H-‎reso‎l utio‎n mod‎e‎ BH1‎750_D‎e lay(‎200) ‎;‎‎‎//延时1‎80ms‎‎M ulti‎p le_R‎e ad_B‎H1750‎(); ‎‎//连续读‎出数据,存‎储在BUF‎中‎ dis‎_data‎=BUF[‎0];‎ di‎s_dat‎a=(di‎s_dat‎a<<8)‎+BUF[‎1];//‎合成数据,‎即光照数据‎‎‎*Zhao‎d u=(f‎l oat)‎d is_d‎a ta/1‎.2;‎‎‎}‎‎。

基于光照传感器实现的太阳能板自追光系统

基于光照传感器实现的太阳能板自追光系统

基于光照传感器实现的太阳能板自追光系统杜永亮郑艳华许森炫冼润铖李乐佳(广州大学物理与电子工程学院,广东广州 510006;广州大学物理与电子工程学院,广东广州 510006;广州大学物理与电子工程学院,广东广州 510006;广州大学物理与电子工程学院,广东广州 510006;广州大学计算机与教育软件学院,广东广州 510006)摘要:当前建立太阳能追光系统有多种方式。

有的使用GPS采集信息并加以一定算法进行太阳方位的跟踪,有的需要略微复杂的结构才能实现跟踪。

本文提出一个新颖,成本低廉,机构简单且易于安装和实现的太阳能自追光系统,能够仅仅凭借本地采集的光强数据进行太阳能板对太阳方位的跟踪,且算法简单,方便易行,适应性强,经实验证明该系统简单可靠,实用性强。

关键词: PD控制,自追光,归一化,收敛速度,光照传感器中图分类号:TP272A self-tracking sun solar panel system base on light sensorDU Yong-liang Zheng Yan-hua Xu Sen-xuan Xian Run-cheng Li Le-jia(Guangzhou University college of Physics And Electronic Engineering,Guangzhou 510006,China;Guangzhou University college of Physics And Electronic Engineering,Guangzhou 510006,China;Guangzhou University college of Physics And Electronic Engineering,Guangzhou 510006,China;Guangzhou University college of Physics And Electronic Engineering,Guangzhou 510006,China Guangzhou University college of Computer Science and Educational Software,Guangzhou 510006,China)Abstract: Nowadays,there are a variety of ways to es tablish a solar panel system which can tracking the sun itself. Some use GPS to collect information, and using the algorithm for solar azimuth tracking, some need a slightly more complex structure to achieve tracking. This paper proposes a novel, low cost, simple mechanism and easy to install and implement the solar self tracking system. It just rely on the local collection of light intensity to make the solar panels track the sun . And the algorithm is simple, convenient, strong adaptability, it is proved that the system is simple and reliable, strong practicability.Keywords: PD control, self tracking, normalization, convergence speed, light sensor0 引言该系统是基于BH1750[4]光照传感器和PD算法的太阳能自追光系统。

BH1750—GY30程序 环境光强度传感器程序

BH1750—GY30程序 环境光强度传感器程序
Leabharlann 5 / 10封古的雪玉
BH1750_SDA=0; BH1750_delayms(4); BH1750_SCL=1; BH1750_delayms(4); BH1750_SDA=1; BH1750_delayms(4);
} void BH1750_writebyte(uchar date)/*寫一個字節,穿行發送一個字節時,需要把這個字中的 8 位一位一位地發出去,"temp=temp<<1:" 表示將 temp 左移一位,最高位將移入 PSW 寄存器的 CY(字節中 8 位的最高位)位中,然後將 CY 賦給 SDA 進而在 SCL 的控制下發出去*/ { uchar i; for(i=0;i<8;i++) { date<<=1; BH1750_SCL=0; BH1750_delayms(4); BH1750_SDA=CY; BH1750_SCL=1; BH1750_delayms(4); } } uchar BH1750_readbyte()/*串行接收一個字節需要將 8 位,一位一位地接收,然後再組合成一個字節,程序定義變量 k,將 K 左移一位後與 SDA 進行“或”運算,依次把 8 個獨立的位放入一個字節中來完成。*/ { uchar i; uchar dat=0; BH1750_SDA=1; for (i=0;i<8;i++) { dat<<=1; BH1750_SCL=1; BH1750_delayms(4); dat|=BH1750_SDA; BH1750_SCL=0; BH1750_delayms(4); } return dat; } void BH1750_Command(uchar RW,uchar Command)/*BH1750 指令服務程序,RW=0,為寫,1 為讀,Command 為指令數據*/ { BH1750_start();/*發送起始信號,通信就緒*/ BH1750_writebyte(0x46+RW);/*發送地址設備地址,尋找從幾,等待寫入命令,關於地址請查看前言簡介或官方資料*/ BH1750_receive_respons();/*接收應答信號*/ BH1750_writebyte(Command);/*設置為連續 H 分辨率模式 2,在 0.5lx 分辨率下開始測量,最大延時 180ms*/ BH1750_receive_respons();/*接收應答信號*/ BH1750_stop();/*停止信號*/ }

基于BH1750的热带花卉光照强度实时监测系统设计

基于BH1750的热带花卉光照强度实时监测系统设计

基于BH1750的热带花卉光照强度实时监测系统设计
余刚;黄建清;高家宝;李新春
【期刊名称】《农业网络信息》
【年(卷),期】2016(000)006
【摘要】本文针对热带植物红掌的生长特点,提出并开发以低功耗单片机
MSP430为核心,利用GY-30光照传感器模块来监测环境光照,并利用
LCD1602进行实时显示。

该系统能长期监测、显示红掌生长环境的光照强度信息。

【总页数】4页(P54-57)
【作者】余刚;黄建清;高家宝;李新春
【作者单位】海南大学,海南儋州 571700;海南大学,海南儋州 571700;海南大学,海南儋州 571700;海南大学,海南儋州 571700
【正文语种】中文
【中图分类】TP315
【相关文献】
1.基于MSP430的热带花卉环境参数无线监测系统设计 [J], 黄建清;高家宝;袁琦;
余刚;李新春
2.基于BH1750芯片的智能窗帘控制系统设计 [J], 王海燕;陈贵斌;熊志成
3.基于BH1750芯片的测光系统设计与实现 [J], 王建;毛腾飞;陈英革
4.基于BH1750光照强度数据采集系统的设计 [J], 刘博
5.基于BH1750的机动车遮阳板明暗度智能控制系统设计 [J], 高兢;李一捷
因版权原因,仅展示原文概要,查看原文内容请购买。

基于BH1750的LCD屏幕亮度自动调节设计与实现

基于BH1750的LCD屏幕亮度自动调节设计与实现

基于BH1750的LCD屏幕亮度自动调节设计与实现作者:刘燮吴苏晨王瑞林来源:《硅谷》2013年第13期摘要本系统主要功能是根据外界环境光强的大小,对LCD屏幕的亮度进行调节以达到适合人眼阅读,保护人眼视力的目的。

工作流程是通过BH1750传感器采集环境光强数据,将模拟信号处理后传至单片机,经由处理单元分析计算,控制DAC0832转换器与LM324运算放大器协调工作,调节LCD1602屏幕的背光电压,从而使其亮度发生改变,达到调光的效果。

关键词 BH1750FVI传感器;DAC0832数模转换器;单片机;亮度调节中图分类号:TP2 文献标识码:A 文章编号:1671-7597(2013)12-0024-03LCD屏背光亮度与环境光强不协调时,人眼就会产生视觉疲劳,而这种疲劳将对人眼视力造成不可逆的损伤。

且屏幕亮度过高会直接影响LCD使用寿命;过低又影响显示器显示效果。

因此,亮度调节成为LCD显示必要的一项功能。

光敏电阻存在两个缺点:1)受温度影响大,在不同室温下,所采集到的数据会有差别;2)响应速度慢,延迟时间与搭配电路的复杂度相关。

如果直接使用光电二极管,则需要与放大电路以及A/D转换器配合使用,系统设计增加复杂程度的同时,也引入了不必要的误差。

1 系统结构及器件介绍1.1 亮度及其调节原理我们所说的调节LCD亮度其实是对发光源亮度进行控制,使人眼的主观亮度与环境光强协调,保证人眼舒适。

因此,在这里需要考虑环境光强对主观亮度的影响,即结合测量到的外界光强,综合调节LCD背光源的电压,实现LCD亮度调节。

1.2 系统总体结构及流程本系统采用BH1750光照传感器感受光强,LCD1602模拟LCD显示屏,并综合使用数模转换器、运算放大器等相关电子器件,对实验预期的LCD屏幕光亮调节进行模拟。

具体流程为:BH1750采集外界光强信号,光强模拟量经传感器处理成数字信号后输入单片机。

单片机对数字量做出函数处理并把控制信号送至数模转换器,经运算放大器将之转换为合适的电压值,最终实现通过感应环境光强来调节控制LCD背光亮度的目的。

BH1750FVI 中文数据手册

BH1750FVI 中文数据手册

环境光强度传感器集成电路系列16位数字输出型环境光强度传感器集成电路BH1750FVI No.10046ECT01●产品介绍BH1750FVI 是一种用于两线式串行总线接口的数字型光强度传感器集成电路。

这种集成电路可以根据收集的光线强度数据来调整液晶或者键盘背景灯的亮度。

利用它的高分辨率可以探测较大范围的光强度变化。

(1lx-65535lx)●产品特点1. 支持I2C BUS接口(f/s Mode Support)。

2. 接近视觉灵敏度的光谱灵敏度特性(峰值灵敏度波长典型值:560nm)。

3. 输出对应亮度的数字值。

4. 对应广泛的输入光范围(相当于1-65535lx)。

5. 通过降低功率功能,实现低电流化。

6. 通过50Hz/60Hz除光噪音功能实现稳定的测定7. 支持1.8V逻辑输入接口。

8. 无需其他外部件。

9. 光源依赖性弱(白炽灯,荧光灯,卤素灯,白光LED,日光灯)。

10. 有两种可选的I2C slave地址。

11. 可调的测量结果影响较大的因素为光入口大小。

12. 使用这种功能能计算1.1 lx到100000 lx马克斯/分钟的范围。

13. 最小误差变动在±20%。

14. 受红外线影响很小。

●产品应用移动电话,液晶电视,笔记本电脑,便携式游戏机,数码相机,数码摄像机,汽车定位系统,液晶显示器。

●※70mm×70mm×1.6mm玻璃纤维环氧树脂电路板。

●参考数据比例测量结果测量结果比例比例测量结果比例ICC@测量结ICC@断电(uA)比例比例温度光谱响应波长光强度光强度测量结果1 光强度测量结果2光强度温度方向特性1 方向特性2 暗反应测量精度温度依赖性光源依赖荧光灯设置为“1”测量期间VCC – ICC@0 Lx(断电 )测量结果VCC依赖测量结果DVI依赖白色LED人工阳光Kripton光卤素光白炽光荧光PDAMP OSC GNADCVCCDVISCL SDALogic +I 2C Interface● 框图● 框图描述・PD接近人眼反应的光敏二极管。

基于单片机的智慧农业大棚检测系统的设计与实现

基于单片机的智慧农业大棚检测系统的设计与实现

基于单片机的智慧农业大棚检测系统的设计与实现作者:张鹏来源:《电脑知识与技术》2024年第09期摘要:随着科技进步及农业生产的需求,越来越多的农业大棚开始引入智能化监测系统,这些系统通过各类传感器实时获取监测大棚内的环境参数,如温度、湿度、光照等,并将获取到的数据传输到单片机控制系统进行分析和处理。

同时,农民通过无线终端设备相关App 软件远程查看大棚各环境参数,高效帮助其进行农业大棚管理和决策。

智慧农业大棚检测系统的应用可以大大提高农作物的产量和质量,减少资源的浪费,快速提高农业生产的效益。

关键词:智慧农业;传感器;环境;系统中图分类号:TP311 文献标识码:A文章编号:1009-3044(2024)09-0053-04开放科学(资源服务)标识码(OSID)0 引言随着人口的增加和资源的有限性,传统的农业生产方式已经无法满足人们对食品的需求,因此,引入智能化技术来监测和控制农业生产过程,成为解决这一问题的有效途径。

本论文旨在设计一种基于单片机的智慧农业大棚检测系统,通过传感器采集环境参数,并通过单片机进行数据处理和控制,实现人为对大棚环境的实时监测和调控。

该系统具有实时性、精确性和自动化的特点,可以提高农作物的生長质量和产量,并减少资源的浪费。

通过本论文的研究,将为智慧农业的发展提供有力的技术参考。

1 系统设计主要目标本项目是基于单片机芯片设计一款智慧农业大棚检测系统,以实时监测大棚环境的关键参数,进而更好地管理农业大棚植物生长。

具体功能如下[1]:1)环境温度和湿度检测:系统采用SHT30温湿度传感器,能够实时监测大棚内的温度和湿度,并将数据传送给单片机进行处理。

2)光照强度检测:系统采用BH1750光照传感器,能够实时监测大棚内的光照强度,并将数据传送给单片机进行处理。

3)报警阀值设置:系统支持按键操作,用户可以通过按键调整报警阀值,以适应不同的农业环境需求。

4)报警声音提示:当温度、湿度或光照强度超过设定的阀值时,系统将触发报警,连接的蜂鸣器发出声音,提醒用户注意。

RaspberryPi开发之旅-光照强度检测(BH1750)

RaspberryPi开发之旅-光照强度检测(BH1750)

RaspberryPi开发之旅-光照强度检测(BH1750)⼀、前期准备1.环境要求GY30模块(BH1750FVI传感器),树莓派系统,python-smbus,iic开启2.取消对IIC驱动的⿊名单nano /etc/modprobe.d/raspi-blacklist.conf3.启动IIC驱动nano /etc/modules添加i2c-dev ,如下:4.重启5.安装python-smbus这个安装会附带安装i2c-tools,省的单独安装了sudo apt-get install python-smbus6.将BH1750连接到树莓派GY-30树莓派VCC——1GND——6SDA——3SCL——5ADDR——不接⼆、连接测试sudo i2cdetect -y 1问题分析:pi@raspberrypi:~$ i2cdetect -y 1Error: Could not open file dev/i2c-1' or `/dev/i2c/1': No such file or directory⽆设备⽬录解决⽅法:⽅法⼀:raspi-config,进⼊Interfacing Options⾼级设置,将spi与i2c设置为enable,reboot;⽅法⼆:blacklist⾥⾯有i2c,所以i2cdetect检测不到dev⾥⾯的设备,现在把blacklist⾥⾯的i2c模块注释掉就可以检测到i2cdev。

三、光照强度测量1.创建iic_bh1750.c#include <stdio.h>#include <fcntl.h>#include <linux/i2c-dev.h>#include <errno.h>#define I2C_ADDR 0x23int main(void){int fd;char buf[3];char val,value;float flight;fd=open("/dev/i2c-1",O_RDWR);if(fd<0){printf("打开⽂件错误:%s\r\n",strerror(errno)); return 1;}if(ioctl( fd,I2C_SLAVE,I2C_ADDR)<0 ){printf("ioctl 错误 : %s\r\n",strerror(errno));return 1; }val=0x01;if(write(fd,&val,1)<0){printf("上电失败\r\n");}val=0x11;if(write(fd,&val,1)<0){printf("开启⾼分辨率模式2\r\n");}usleep(200000);if(read(fd,&buf,3)){flight=(buf[0]*256+buf[1])*0.5/1.2;printf("光照度: %6.2flx\r\n",flight);}else{printf("读取错误\r\n");}}编译:gcc -o bh1750 iic_bh1750.c执⾏:./bh17502.与python相⽐创建illuminance.pycd /home/pi/helloworld/illuminancevim illuminance.pyilluminance.py#!/usr/bin/env python# encoding: utf-8import smbusimport time#BH1750地址__DEV_ADDR=0x23#控制字__CMD_PWR_OFF=0x00 #关机__CMD_PWR_ON=0x01 #开机__CMD_RESET=0x07 #重置__CMD_CHRES=0x10 #持续⾼分辨率检测__CMD_CHRES2=0x11 #持续⾼分辨率模式2检测__CMD_CLHRES=0x13 #持续低分辨率检测__CMD_THRES=0x20 #⼀次⾼分辨率__CMD_THRES2=0x21 #⼀次⾼分辨率模式2__CMD_TLRES=0x23 #⼀次分辨率__CMD_SEN100H=0x42 #灵敏度100%,⾼位__CMD_SEN100L=0X65 #灵敏度100%,低位__CMD_SEN50H=0x44 #50%__CMD_SEN50L=0x6A #50%__CMD_SEN200H=0x41 #200%__CMD_SEN200L=0x73 #200%bus=smbus.SMBus(1)bus.write_byte(__DEV_ADDR,__CMD_PWR_ON) bus.write_byte(__DEV_ADDR,__CMD_RESET) bus.write_byte(__DEV_ADDR,__CMD_SEN100H) bus.write_byte(__DEV_ADDR,__CMD_SEN100L) bus.write_byte(__DEV_ADDR,__CMD_PWR_OFF) def getIlluminance():bus.write_byte(__DEV_ADDR,__CMD_PWR_ON) bus.write_byte(__DEV_ADDR,__CMD_THRES2)time.sleep(0.2)res=bus.read_word_data(__DEV_ADDR,0)#read_word_datares=((res>>8)&0xff)|(res<<8)&0xff00res=round(res/(2*1.2),2)result="光照强度: "+str(res)+"lx"return result测试结果重启uwsgi服务sudo systemctl restart emperor.uwsgi.service测试在树莓派浏览器输⼊http://127.0.0.1/illuminance或者在电脑浏览器输⼊ http://树莓派IP/illuminance。

计算机控制课程设计单片机光照强度检测系统本科论文

计算机控制课程设计单片机光照强度检测系统本科论文

摘要BH1750是一款新型的测光芯片,本设计系统就是基于BH1750设计的测光系统,它可以自动检测光照强度的强弱并显示让人们知道此时光照强度的强弱。

人们可以通过看此装置的显示了解现在的光照状态,做合理的光照调节。

该设计可分为三部分:即光照检测部分、信号处理部分、光强显示部分。

对于光照检测部分是利用BH1750作为检测元件及信号处理元件,其内部集成了AD转换芯片。

它可以完成从光强到电信号的转换并将信号处理进行处理。

对输入信号处理后,就可以用来显示了。

对于显示部分可利用LCD1602来显示,不同的光强对应于不同的数值,就能简单的显示出不同的光强了。

本设计就是由单片机STC89C52RC芯片,BH1750模块和1602液晶为核心,辅以必要的电路,构成了一个单片机光照强度检测系统。

该光照强度检测系统可以通过检测光照强度,使得光照在低于或高于一定强度的时候发出警示,是一种常用的测试仪器。

关键词:51单片机,LM7805,BH1750,1602液晶目录0 引言 (1)1设计内容与要求 (1)1.1 设计任务 (1)1.2 设计要求 (1)2 方案总体设计 (1)2.1 光照强度采集方案设计 (2)2.2 控制芯片及实现方案 (3)2.3 数据显示方案 (3)2.4 系统总体框图 (4)3 硬件设计 (5)3.1 单片机最小系统 (5)3.2 BH1750采集模块 (6)3.3 液晶显示模块 (6)3.4 系统电源 (7)3.5 整体电路和PCB图 (8)4 软件设计 (9)4.1 keil软件介绍 (9)4.2 程序流程图 (10)4.3 各模块程序 (10)5 仿真与实现 (15)5.1 Proteus软件介绍 (15)5.2 仿真过程 (16)5.3 实物制作与调试 (17)6 总结 (18)7 参考文献 (19)0 引言随着改革开放的不断深化和城镇化的不断发展,越来越多的人移居到城市生活,而这需要足够的食物作为支撑。

光照强度连续测量仪的研制

光照强度连续测量仪的研制

度 。使得农 业生产和养 殖业在调节光照强度后达 到最大经
济 利 益 。
表 1 测试 结果
序 号
连续 /fix)
UT383/(1x)

5 040
5 050

5 045
5 040
摘 要 :针对 温室育苗的需要 ,文章设计 一种低 成本 、简单、实用的光照强度连续测量仪 ,其采用数字光 照强度 采集模块 BH1750FVI完成光 照信息的采集,STC12C5A60S2单片机作为中央处理器,通过试验进行系统性能验证。试验结果表明,在 日 光灯下连续进行12次测量结果的相对标 准偏差仅为6.60%,具有较好稳定 }生,能够较好地 实时响应光照情况。 关键 词:单片机 ;光照强度 ;连续测量
农作物育苗适宜生长。所 以设计一种能够对农作物光照强度
(1)光 敏二极 管和普通二极管在结构上是类似 的,其
进 行实时监控 的测量仪在大棚种植 农作物 的发展 中有 着重 管芯是一个具有光敏特征 的PN结,比一般PN结面积 更大 ,
要 意 义。
从而增加对光的敏感度。
目前,光 照强度测 量仪作 为一种数字 型仪器代表 着新
第 4期 20l8年 2月
无 线 互联科 技
WireleSS Internet Technology
光照 强度连 续测 量仪 的研 制
No.4 February,2018
王青彩’,向 卓 ,黄冬霞2
(1I衡阳师范学院 南岳 学院,湖南 衡阳 421008;2.衡阳师范学院,湖南 衡阳 421002)
中保存 的数据可以通过按键来上翻和下翻进行查看。
1.2 硕件 设计
图1 光照强度记 录仪 系统框

bh1750课程设计

bh1750课程设计

bh1750课程设计一、课程目标知识目标:1. 学生能够理解BH1750传感器的基本工作原理,掌握光强度与数字输出之间的关系。

2. 学生能够描述BH1750传感器的应用场景,并列举其在日常生活中的具体实例。

3. 学生了解传感器在物联网技术中的重要性,并掌握 BH1750 与微控制器的通信方法。

技能目标:1. 学生能够正确连接BH1750传感器与微控制器,编写程序读取光强数据,完成基本的数据处理和分析。

2. 学生通过动手实践,掌握传感器调试技巧,培养解决实际问题的能力。

3. 学生能够运用所学的知识,设计简单的光强监测系统,实现环境光照的智能控制。

情感态度价值观目标:1. 学生在课程学习过程中,培养对电子技术及物联网的浓厚兴趣,激发创新意识和探索精神。

2. 学生通过小组合作完成任务,增强团队协作意识,学会尊重他人意见,培养沟通与交流能力。

3. 学生在学习过程中,关注传感器技术在节能减排、环境保护等方面的应用,树立环保意识和社会责任感。

本课程针对高年级学生,结合电子技术与物联网知识,注重实践性与实用性。

在教学过程中,关注学生的个体差异,引导他们通过自主探究、合作交流的方式,实现课程目标,为培养具备创新精神和实践能力的高素质人才奠定基础。

二、教学内容本章节教学内容围绕BH1750传感器的工作原理、应用实践和物联网技术展开。

具体包括以下几部分:1. BH1750传感器基础知识:介绍传感器的基本概念、工作原理、特点及分类,重点讲解BH1750传感器在光强检测方面的优势。

2. 硬件连接与编程基础:讲解BH1750传感器与微控制器(如Arduino、STM32等)的硬件连接方法,以及基本的编程知识,使学生能够编写程序读取传感器数据。

3. 数据读取与处理:介绍BH1750传感器数据读取方法,以及如何在程序中进行数据解析、处理和显示。

4. 实际应用案例:分析BH1750传感器在智能照明、环境监测等领域的应用实例,让学生了解传感器技术的实际应用。

Arduino+0.96OLED+GY30(BH1750)光照强度采集光照传感器光控灯实验

Arduino+0.96OLED+GY30(BH1750)光照强度采集光照传感器光控灯实验

Arduino+0.96OLED+GY30(BH1750)光照强度采集光照传感器光控灯实验Arduino+0.96OLED+GY30光照传感器Module UNO⼀、电路连接VCC <-----> 5VGND <-----> GNDSCL <-----> A5SDA <-----> A4ADD <-----> NCOLED接线⽅式:VCC<————>3.3VGND<————>GNDSCL<————>SCLSDA<————>SDALED1<————>10LED2<————>11⼆、实验材料Uno R3开发板GY-30光照传感器⾯包板及配套连接线2个LED灯1个0.96OLED三、功能1、OLED实时显⽰光照强度2、当光照强度⼤于600LX时关灯3、当光照强度⼤于200⼩于600时打开冷光灯,并随着光强度变化⽽变化,强度越⼤灯光越暗(PWM调节),同时OLED显⽰开关状态;4、当光照强度⼩于200时打开暧光灯关闭冷光,并随着光强度变化⽽变化,强度越⼤灯光越暗(PWM调节),同时OLED显⽰开关状态;5、使⽤u8glib库操作OLED屏6、串⼝实时发送相应标志数据,可通过ESP8266发送到APP端显⽰参数特点:⽆需⼈为⼲预的⾃动控制设备。

⽰例程序/*Measurement of illuminance using the BH1750FVI sensor moduleConnection:Module UNOVCC <-----> 5VGND <-----> GNDSCL <-----> A5SDA <-----> A4ADD <-----> NCOLED接线⽅式:VCC<————>3.3VGND<————>GNDSCL<————>SCLSDA<————>SDALED1<————>10LED2<————>11LingShun LAB*/#include "U8glib.h"#include <Wire.h>// OLED库#define ADDRESS_BH1750FVI 0x23 //ADDR="L" for this module#define ONE_TIME_H_RESOLUTION_MODE 0x20//One Time H-Resolution Mode://Resolution = 1 lux//Measurement time (max.) = 180ms//Power down after each measurementconst unsigned char pinMotorCW = 10; // 接控制电机顺时针转的 H 桥引脚const unsigned char pinMotorCCW = 11; // 接控制电机逆时针转的 H 桥引脚byte highByte = 0;byte lowByte = 0;unsigned int sensorOut = 0;unsigned int illuminance = 0;unsigned int Warm_Empty = 0; //暧光变量unsigned int Cold_Empty = 0;//冷光int ledValue = 0; //保存LED灯占空⽐const uint8_t bitmap_g [] U8G_PROGMEM ={0x01,0x00,0x21,0x08,0x11,0x08,0x09,0x10,0x09,0x20,0x01,0x00,0xFF,0xFE,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x08,0x42,0x08,0x42,0x10,0x42,0x20,0x3E,0xC0,0x00//"光",0 };const uint8_t bitmap_q [] U8G_PROGMEM ={0x00,0x00,0xF9,0xFC,0x09,0x04,0x09,0x04,0x09,0xFC,0x78,0x20,0x40,0x20,0x43,0xFE,0x42,0x22,0x7A,0x22,0x0B,0xFE,0x08,0x20,0x08,0x24,0x08,0x22,0x57,0xFE,0x20,0x02//"强",1 };const uint8_t bitmap_d [] U8G_PROGMEM ={0x01,0x00,0x00,0x80,0x3F,0xFE,0x22,0x20,0x22,0x20,0x3F,0xFC,0x22,0x20,0x22,0x20,0x23,0xE0,0x20,0x00,0x2F,0xF0,0x24,0x10,0x42,0x20,0x41,0xC0,0x86,0x30,0x38,0x0E//"度",2 };const uint8_t bitmap_x [] U8G_PROGMEM ={0x00,0x00,0x1F,0xF0,0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10,0x10,0x10,0x1F,0xF0,0x04,0x40,0x44,0x44,0x24,0x44,0x14,0x48,0x14,0x50,0x04,0x40,0xFF,0xFE,0x00,0x00//"显",3 };const uint8_t bitmap_s [] U8G_PROGMEM ={0x00,0x00,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFE,0x01,0x00,0x01,0x00,0x11,0x10,0x11,0x08,0x21,0x04,0x41,0x02,0x81,0x02,0x05,0x00,0x02,0x00//"⽰",4 };void draw(void) {u8g.setColorIndex(1);u8g.drawBitmapP ( 25 , 0 , 2 , 16 , bitmap_g);u8g.drawBitmapP ( 42 , 0 , 2 , 16 , bitmap_q );u8g.drawBitmapP ( 59 , 0 , 2 , 16 , bitmap_d );u8g.drawBitmapP ( 76 , 0 , 2 , 16 , bitmap_x );u8g.drawBitmapP ( 93 , 0 , 2 , 16 , bitmap_s );u8g.setFont(u8g_font_8x13); //使⽤8x13⼤⼩的字符u8g.setPrintPos(0, 30);u8g.print("Beam :");u8g.setPrintPos(55, 30);u8g.print(illuminance);u8g.setPrintPos(90, 30);u8g.print("LX");//LED的状态u8g.setPrintPos(0, 45);u8g.print("Cold :");u8g.setPrintPos(55, 45);u8g.print(Warm_Empty);u8g.setPrintPos(80, 45);u8g.print("OFF/ON");u8g.setPrintPos(0, 60);u8g.print("Warm :");u8g.setPrintPos(55, 60);u8g.print(Cold_Empty);u8g.setPrintPos(80, 60);u8g.print("OFF/ON");}void setup() {Serial.begin(9600);Wire.begin();pinMode(pinMotorCW,OUTPUT);//冷灯pinMode(pinMotorCCW,OUTPUT);//暧灯digitalWrite(pinMotorCCW,LOW);}void loop() {Wire.beginTransmission(ADDRESS_BH1750FVI); //"notify" the matching deviceWire.write(ONE_TIME_H_RESOLUTION_MODE); //set operation modeWire.endTransmission();delay(180);Wire.requestFrom(ADDRESS_BH1750FVI, 2); //ask Arduino to read back 2 bytes from the sensor highByte = Wire.read(); // get the high bytelowByte = Wire.read(); // get the low bytesensorOut = (highByte<<8)|lowByte;illuminance = sensorOut/1.2;Serial.println("a," + String(illuminance));delay(300);//Serial.print(illuminance);//Serial.println(" lux");if(illuminance <= 600){if(illuminance >= 200){unsigned char i;i = map(illuminance, 200, 600, 200, 0); //将200到600之间的数据映射成200到0之间的数据motorCW(i);Warm_Empty=LOW;Cold_Empty=HIGH;}else{unsigned char i;i = map(illuminance, 0, 200, 200, 100); //将400到800之间的数据映射成200到100之间的数据motorCCW(i);Warm_Empty=HIGH;Cold_Empty=LOW;}}else{motorStop();Warm_Empty =LOW;Cold_Empty =LOW;}Serial.println("b," + String(Warm_Empty));Serial.println("c," + String(Cold_Empty));u8g.firstPage();do {draw();} while( u8g.nextPage() );delay(200);}// 关闭冷灯和暧灯void motorStop(){digitalWrite(pinMotorCW, LOW);digitalWrite(pinMotorCCW, LOW);}// 冷灯以参数设定的 pwm 值光强度void motorCW(unsigned char pwm){analogWrite(pinMotorCW, pwm);digitalWrite(pinMotorCCW, LOW);}// 暧灯以参数设定的 pwm 值光强度void motorCCW(unsigned char pwm){digitalWrite(pinMotorCW, LOW);}。

基于单片机的光照度自动调节系统设计论文大学论文

基于单片机的光照度自动调节系统设计论文大学论文

摘要随着互联网技术带动下的物联网的发展,智能家居逐渐开始迅猛发展。

照明作为家庭用电中的重要部分,智能照明也拥有广阔的发展前景。

而且随着人们对能源节约的越来越深入人心的认识,设计一种可以随着光照强度的变化来调节自身亮度的照明设备显得很有必要。

针对这一问题,本设计采用光照传感器模块采集环境光照强度,然后利用STC89C51单片机对灯光亮度进行控制,完成了光照强度的实时检测与显示,同时可对灯光进行相应的亮度调节,完成了各功能模块的硬件电路设计和软件程序编写,最后用Proteus进行了模拟仿真。

仿真结果表明该设计实现了光照强度的实时检测与显示并能对灯光亮度进行适当调节。

关键词:智能照明;光照强度检测;STC89C51;灯光自动控制;AbstractWith the development of Internet technology, the smart home is beginning to develop rapidly.As an important part of the household,intelligent illumination also has a huge development prospect.And as the understanding of energy saving is deeply rooted in people’s mind, designing a kind of light which can change its light intensity with the surrounding is very necessary.In order to solve this problem, this design uses the light sensor module to collect environmental light intensity and then use STC89C51 microcontroller to control the light pleted the real-time detection and display for the light intensity, and to adjust the brightness of the lighting accordingly a system of the design of the hardware system and software program. After the simulation with the Proteus. The simulation results show that the design realizes the real-time detection and display of the light intensity and can adjust the brightness of the light.Keywords:Intelligent lighting;Light intensity test;STC89C51;Automatic lighting control目录摘要 (I)目录 (III)1 绪论......................................................... - 1 -1.1 课题研究的背景及意义..................................... - 1 -1.2 国外研究现状............................................. - 2 -1.4 本设计主要内容........................................... - 3 -2 方案分析..................................................... - 4 -2.1 光照传感器的方案分析..................................... - 4 -2.2 调光方式的方案分析....................................... - 4 -3 硬件设计..................................................... - 6 -3.1 硬件选型及电路设计....................................... - 6 -3.1.1 单片机............................................ - 6 -3.1.2 晶振电路.......................................... - 7 -3.1.3 复位电路.......................................... - 8 -3.1.4 光照强度传感器.................................... - 8 -3.1.5 显示电路......................................... - 10 -3.1.6 调光电路.......................................... - 11 - 3.2 整体电路设计............................................ - 12 -4 软件设计.................................................... - 13 -4.1 系统软件功能............................................ - 13 -4.2 程序调试................................................ - 14 -4.3 仿真分析................................................ - 16 -致谢......................................................... - 23 -参考文献.................................................... - 24 -附录:程序代码................................................. - 26 -1 绪论1.1 课题研究的背景及意义电灯是人类最伟大的发明之一。

BH1710_BH1750应用手册V1.0

BH1710_BH1750应用手册V1.0
透光率的基准值请参考下表红色部分bh1710fvcbh1750fvi最小值最大值最小值最大值1530029222502720透光率范围0011000100b1111111110b00011111b1111111010进制值寄存器进制值寄存器100基准值30001001011000x490x6c69010001010x420x655060010010110000x520x78138100010100x440x6a8037501011101110x4b0x7786010101100x420x7612025000111110100x470x7a58001110100x410x7a15020000110010000x460x6846001011100x410x7e35001000110x410x73在实际设计时请尽量保证芯片上方的透光孔形状规则并且达到一定面积使得芯片感光部分能够均匀对称地接受光照
请注意在这种情况下为了防止 ADDR 初始状态不稳定造成的过电流,请不要将 ADDR 直接 与 VCC 或是 GND 相连,而在他们之间加一个 100kOhm 的电阻。
可参考上面的原理图连接 DVI,即可满足延迟要求。我们的 Spec 上还提供了另外 4 种 DVI 连接方法(参见 Spec 第 8、9 页),所达到的效果相同,建议根据不同情况酌情选择。
BH1750 void BH1750Init(void) {
REGWRITE(DEV_ADD, CMD_PWN_ON); REGWRITE(DEV_ADD, CMD_RESET); REGWRITE(DEV_ADD, 0x42); REGWRITE(DEV_ADD, 0x65); REGWRITE(DEV_ADD, CMD_HRES); } DEV_ADD = 0xb8 / 0x46

基于BH1750的机动车遮阳板明暗度智能控制系统设计

基于BH1750的机动车遮阳板明暗度智能控制系统设计

基于BH1750的机动车遮阳板明暗度智能控制系统设计高兢;李一捷【摘要】基于LCD液晶屏的变光特性,采用BH1750数字输出光照度传感器、单片机及控制电路设计智能遮阳板控制系统.该系统的液晶屏不需要开展或者合拢,通过光照度改变液晶屏的驱动电压来改变液晶屏明暗度,使驾驶员适应车外光线强弱,保证安全驾驶.【期刊名称】《农业科技与装备》【年(卷),期】2016(000)007【总页数】2页(P25-26)【关键词】明暗度;智能控制;BH1750;LED数码管;遮阳板【作者】高兢;李一捷【作者单位】沈阳工程学院,沈阳 110136;沈阳工程学院,沈阳 110136【正文语种】中文【中图分类】S129机动车遮阳板明暗度智能控制基于对外界光强度采集,液晶屏明暗度随之变化。

BH1750数字输出的光照度传感器,可以应用于大范围照度检测,且功耗低,应用电路简单、易于制作。

该系统可以在阳光直射时遮挡射向驾驶员的炫目光线,且不在眼前形成大块阴影物体,能够改善驾驶员驾驶视感,从而提高安全性。

机动车遮阳板明暗度智能控制系统主要为开环系统,结构简单,且结构顺序固定,测日照强度时BH1750静态误差比较小,遇到天阴、日照不足等情况变化较快,利于行车。

该系统实现的主要功能是:1)通过BH1750测附近光强大小,并通过I2C传送给AT89C51单片机;2)经过单片机处理、计算、输出控制信号,并利用LED数码管随时显示光强的大小;3)通过PCF8591和CD4053转化控制数字信号,并控制液晶屏驱动电压的的模拟信号,进而控制液晶屏明暗度。

机动车遮阳板明暗度智能控制系统使用AT89C51单片机作为CPU管理器,根据环境光强度传感器BH1750的特点,基于BH1750FV传感器的光强度测量装置设计系统硬件原理如图1所示。

2.1 单片机控制电路所设计的机动车遮阳板的液晶屏系统是基于AT89C51单片机开发板的,利用AT89C51单片机、火牛程序下载调试端口等资源。

智慧城市工程套件——农作物光强检测系统

智慧城市工程套件——农作物光强检测系统

第1章智慧城市基础应用智慧城市系统是一个综合性系统,该系统包含了物联网系统、服务器及终端控制系统。

系统中的数据在物联网系统、服务器和终端系统之间相互传输,在服务器中存储,在终端控制系统上控制、在物联网系统上执行。

本章以智慧城市系统中单一传感器项目为例,以实验的形式讲解简易的物联网项目开发流程和物联网原理介绍。

1.1 农作物光强检测系统1.1.1 实验目的掌握光照度传感器的使用;掌握LiteB节点的使用;掌握智云实时数据编程接口的使用;掌握ZXBee通信协议的运用。

1.1.2 实验环境硬件:光照度传感器1个,智云网关1个(默认为S4418/6818网关),LiteB节点1个,SmartRF04EB仿真器1个;软件:Windows XP/7/8/10,IAR Embedded Workbench for 8051(IAR嵌入式8051系列单片机集成开发环境),Android Studio(Android集成开发环境),WebStorm (Web集成开发环境)。

1.1.3 实验原理1.1.3.1 系统设计目标光照度传感器作为重要的IIC接口采集类物联网传感器,能够定时采集当前环境下光照强度数据并主动发送到节点。

运用过程中通过对光照度传感器的数据采集控制,实现智能的监测当前环境的光照强度,通过实时的将光照强度信息推送到智云数据中心,在凭借Android移动客户端和web端在获得这些数据后,用户能实现随时随地远程获取农作物受到的光照强度等环境信息,从而实现农作物光强监测与曲线展示系统的设计。

系统设计功能及目标如下:1.1.3.2 业务流程分析远程光照度传感器就传输过程分为如下几个部分:传感器,无线节点,网关,智云数据中心,客户端(Android,Web),通信流程图如下图所示,具体通信描述如下:1)无线终端/路由节点(以下简称无线节点)通过导线读取传感器的数据,无线节点通过无线传感网络与网关上集成的汇集节点进行组网通信;2)网关上的智云服务,将集成在网关上的汇集节点收到的数据推送到本地局域网和远程智云数据中心;3)客户端(Android、web)通过调用智云数据接口,实现实时数据采集等功能或对传感器进行控制,详细实现参考下一节实验内容代码实现部分。

基于BH1750 的实时光照强度监测系统

基于BH1750 的实时光照强度监测系统
四川大学锦城学院本科毕业论文
基于 BH1750 的实时光照强度监测系统基于Βιβλιοθήκη BH1750 的实时光照强度监测系统
专业:电子信息工程
学生:陈军
指导老师:张志亮
摘要
随着智能家居的逐步深入人心,以及绿色能源、节能减排的口号,人们对生活品质、 家电设备智能化的要求越来越高,越来越严格。根据中国光学电子协会光电分会的统计数 据,我国的楼宇亮化产品、光彩照明产品从 2003 年开始,以每年大于 25%的速度递增,其 中超高亮照明更以每年 50%以上的速度飞跃发展。
The subject of the BH1750 based real-time light intensity detection system, the main purpose is to design and produce a sensor system, real-time detection of environmental light intensity. In this paper, from two aspects of the principle analysis and the actual production, the design principle and implementation method of real-time light intensity monitoring system are described in this paper. The design process of the system as the main line, respectively, from the system design and physical testing of two aspects of the description, that is, from the software and hardware design to achieve all the functions. This system has the advantages of low cost, small size, high reliability, low power consumption, convenient operation and so on. This paper describes the development process of the system's hardware and software design, using C51 microcontroller as the core processor, system function module mainly includes the key module, LCD module, BH1750 light perception measurement module, a USB interface module. Test results show that the system can achieve the function of light according to the intensity of real-time monitoring, in the light source for cell phone flashlight and distance of 5 cm, test on the light intensity of illumination for 3017 Lx (Lux, light intensity of illumination units) and test results reflect light intensity changes tend to potential and actual trends consistent, to verify the correctness of the test results.
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
shi=temp_data/10+0x30 ;
temp_data=temp_data%10; //取余运算
ge=temp_data+0x30;
}
//毫秒延时**************************
void delay_nms(unsigned int k)
{
unsigned int i,j;
void Delay5ms();
void BH1750_Start(); //起始信号
void BH1750_Stop(); //停止信号
void BH1750_SendACK(bit ack); //应答ACK
bit BH1750_RecvACK(); //读ack
void BH1750_SendByte(BYTE dat); //IIC单个字节写
BYTE BUF[8]; //接收数据缓存区
uchar ge,shi,bai,qian,wan; //显示变量
int dis_data; //变量
void delay_nms(unsigned int k);
void InitLcd();
void Init_BH1750(void);
void WriteDataLCM(uchar dataW);
2.2设置NOKIA5110液晶显示器的坐标
通过查询NOKIA5110液晶显示器的指令集与手册可以知道其功能设置命令的H和V。其中:H=0使用基本指令集命令,H=1使用扩展指令集命令,V=0水平寻址,V=1垂直寻址。数据以字节8位为单位下载到PCD8544的48×84位显示数据RAM矩阵。列通过地址指针寻址,地址范围为X:0~83(1010011);Y:0~5(101)。
4.#include <REG51.H>
#include <math.h> //Keil library
#include <stdio.h> //Keil library
#include <INTRINS.H>
#define uchar unsigned char
#define uint unsigned int
在垂直寻址模式时(V=1),Y地址在每个字节之后递增,经最后的Y地址(Y=5)之后,Y绕回0,X递增到下一列的地址。存水平寻址模式时(V=0),X地址在每个字节之后递增,经最后的X地址(X=83)之后,X绕回0,Y递增到下一行的地址。经每一个最后地址之后(X=83,Y=5),地址指针绕回地址(X=0,Y=0)。
当改用1T的MCU时,请调整此延时函数
{
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; //取余运算
2.1 NOKIA5110液晶显示器的初始化
接通电源后,NOKIA5110液晶显示器的内部寄存器和RAM的内容是不确定的,这时需要一个RES低电平脉冲进行复位。当VDD变为高电平,达到或高于VDD的最小值之后,给NOKIA5110显示模块的复位端RST引脚输入低电平(要求复位电平<0.3VDD),便进行了NOKIA5110液晶显示器的复位。图2为NOKIA5110液晶显示器的复位时序图。
#defineSlaveAddress 0x46 //定义器件在IIC总线中的从地址,根据ALT ADDRESS地址引脚不同修改
//ALT ADDRESS引脚接地时地址为0x46,接电源时地址为0xB8
typedef unsigned char BYTE;
typedef unsigned short WORD;
二、设计任务与要求
2.1设计任务
针对传统测光系统结构复杂、容易受到红外、紫外等干扰光线的影响等弊端,改选新型单片测光芯片BH1750作为光强采集器,设计并实现了一个测光系统.
2.2设计要求
能够快速检测环境的光照强度且能够在NOKIA5110液晶显示器上进行数值显示。
三、设计步骤及原理分析
3.1设计方法
DataPort=CMD;_nop_();
LCM_EN=1;_nop_();_nop_();LCM_EN=0;
}
/*******************************/
void WriteDataLCM(uchar dataW)
{
WaitForEnable();
LCM_RS=1;LCM_RW=0;_nop_();
while(DataPort&0x80);
LCM_EN=0;
}
/*******************************/
void WriteCommandLCM(uchar CMD,uchar Attribc)
{
if(Attribc)WaitForEnable();
LCM_RS=0;LCM_RW=0;_nop_()750FVI。
2.设计检测液晶数据的设计方案
3.监测系统结构设计
4.系统软件驱动设计
3.3设计原理分析
1.不区分光源数字型环境光强度传感器BH1750FVI是日本RHOM株式会社近些年推出的一种两线式串行总线接口的集成电路,可以根据收集的光线强度数据来进行环境监测,其具有1~65 535 lx的高分辨率,可支持较大范围的光照强度变化。BH1750FVI结构框图如图1所示。
成绩评定:
传感器技术
课程设计
题 目基于BH1750光照度检测
摘要
传统的光照传感器主要采用光敏电阻,光敏电阻的光电流与光照度之间的关系称为光电特性。光敏电阻的光电特性呈非线性,因此不适宜作检测元件,在自动控制中它常被用作丌关式光电传感器。光敏电阻需要用A/D转换器将其信号转换为数字信号,电路复杂,费用高。而且,光敏电阻进行光强度采集不够理想。针对光敏电阻的诸多缺点,提出了一种利用16位高精度数字光强度传感器BH1750FVI进行光强度检测仪的设计方案,利用I2C总线接口数字型光强度传感器,可以避免A/D转换系统带来的误差,可在NOKIA5110液晶显示器上进行测量数值的显示。该系统具有光强度采集精度较高、实时性较强等优点,并且电路设汁较为简单,容易实现与集成。
DataPort=dataW;_nop_();
LCM_EN=1;_nop_();_nop_();LCM_EN=0;
}
/***********************************/
void InitLcd()
{
WriteCommandLCM(0x38,1);
WriteCommandLCM(0x08,1);
关键词:微控制器 液晶显示器 I2C总线
一 、设计目的
二、设计任务与要求
2.1设计任务
2.2设计要求
三、设计步骤及原理分析
3.1设计方法
3.2设计步骤
3.3设计原理分析
四、课程设计小结与体会
五、参考文献
一 、设计目的
设计一种基于光强度传感器BH1750FVI的光照度检测仪,采用低成本的微控制器进行控制,利用I2C总线接口进行数据传输,可在普通的NOKIA5110液晶显示器上进行光强度测量值的实时显示。
for(i=0;i<k;i++)
{
for(j=0;j<121;j++)
{;}}
}
/*******************************/
void WaitForEnable(void)
{
DataPort=0xff;
LCM_RS=0;LCM_RW=1;_nop_();
LCM_EN=1;_nop_();_nop_();
{
Y&=1;
X&=15;
if(Y)X|=0x40;
X|=0x80;
WriteCommandLCM(X,0);
WriteDataLCM(DData);
}
/**************************************
延时5微秒(STC90C52RC@12M)
不同的工作环境,需要调整此函数,注意时钟过快时需要修改
BYTE BH1750_RecvByte(); //IIC单个字节读
//-----------------------------------
//*********************************************************
void conversion(uint temp_data) // 数据转换出 个,十,百,千,万
WriteCommandLCM(0x01,1);
WriteCommandLCM(0x06,1);
WriteCommandLCM(0x0c,1);
}
/***********************************/
void DisplayOneChar(uchar X,uchar Y,uchar DData)
2.NOKIA5110是一款价廉的液晶显示器,该显示器可以显示15个汉字、30个字符,仅仅需要4根I/O数据线,其工作电压为3.3 V。它采用NXP公司的PCD8544显不驱动芯片,NOKIA5110可以使用没有MISO只有MOSI的SPI协议,可以利用硬件SPI,但通常只需要软件程序模拟即可,数据传输需要严格按照手册中串行接口时序图编写。其运行速度十分理想,是LCD12864显示器的20倍,LCD1602显示器的40倍,适用于对反应灵敏度有要求的场合。
相关文档
最新文档