chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于GY-30的簡介與驅(qū)動及如何操作

9GxC_IoTMaker ? 來源:CSDN技術(shù)社區(qū) ? 作者:JYU_hsy ? 2021-05-02 14:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

基于HAL庫的BH1750驅(qū)動代碼,通訊方式為模擬IIC,非常適合在使用hal庫的stm開發(fā)版上移植

一、GY-30簡介

GY-30是一款內(nèi)置ROHM-BH1750FLV芯片的數(shù)字光照強(qiáng)度模塊。芯片內(nèi)置16bitAD轉(zhuǎn)換器,可直接數(shù)字輸出,測量光照強(qiáng)度范圍為0-65535lx(精度可選)。除此之外,模塊內(nèi)置電平轉(zhuǎn)換,支持3-5V供電,可與5V單片機(jī)IO直接連接;對外提供IIC接口,方便使用。

1.1GY-30原理圖

947b0c4c-9bb4-11eb-8b86-12bb97331649.png

1.2模塊引腳

95069d84-9bb4-11eb-8b86-12bb97331649.png

ps:ADDR默認(rèn)接地,此時(shí)IIC地址為0x46

二、GY-30驅(qū)動

95247ec6-9bb4-11eb-8b86-12bb97331649.png

2.1GPIO配置

由于本人使用的是hal庫,使能時(shí)鐘

__HAL_RCC_GPIOB_CLK_ENABLE();

GPIO配置

/*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0|GPIO_PIN_1, GPIO_PIN_RESET);

/*Configure GPIO pins : PB0 PB1 */ GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

PB0 -- 模擬SDA

PB1 -- 模擬SCL

2.2初始化BH1750

IIC起始(SCL高電平時(shí),SDA下降沿)

/***開始信號***/void BH1750_Start(){ HAL_GPIO_WritePin(GPIOB, sda,GPIO_PIN_SET); //拉高數(shù)據(jù)線 HAL_GPIO_WritePin(GPIOB, scl,GPIO_PIN_SET); //拉高時(shí)鐘線 delay_us(5); //延時(shí) HAL_GPIO_WritePin(GPIOB, sda,GPIO_PIN_RESET); //產(chǎn)生下降沿 delay_us(5); //延時(shí) HAL_GPIO_WritePin(GPIOB, scl,GPIO_PIN_RESET); //拉低時(shí)鐘線}

發(fā)送設(shè)備地址,寄存器地址

95672be0-9bb4-11eb-8b86-12bb97331649.png

IIC結(jié)束(SCL高電平,SDA上升沿)

/*****停止信號******/void BH1750_Stop(){ HAL_GPIO_WritePin(GPIOB, sda,GPIO_PIN_RESET); //拉低數(shù)據(jù)線 HAL_GPIO_WritePin(GPIOB, scl,GPIO_PIN_SET); //拉高時(shí)鐘線 delay_us(5); //延時(shí) HAL_GPIO_WritePin(GPIOB, sda,GPIO_PIN_SET); //產(chǎn)生上升沿 delay_us(5); //延時(shí)}

2.3設(shè)置精度

設(shè)置精度只需向BH1750發(fā)送指令,本人采用的是H- Resolution mode(0x10)

如需設(shè)置其他精度親參考下表

95894856-9bb4-11eb-8b86-12bb97331649.png

2.4讀取光強(qiáng)數(shù)據(jù)

讀取BH1750內(nèi)部數(shù)據(jù)

//連續(xù)讀出BH1750內(nèi)部數(shù)據(jù)void mread(void){ uchar i; BH1750_Start(); //起始信號 BH1750_SendByte(SlaveAddress+1); //發(fā)送設(shè)備地址+讀信號

for (i=0; i《3; i++) //連續(xù)讀取6個(gè)地址數(shù)據(jù),存儲中BUF { BUF[i] = BH1750_RecvByte(); //BUF[0]存儲0x32地址中的數(shù)據(jù) if (i == 3) { BH1750_SendACK(1); //最后一個(gè)數(shù)據(jù)需要回NOACK } else { BH1750_SendACK(0); //回應(yīng)ACK } }

BH1750_Stop(); //停止信號 Delay_mms(5);}

合成數(shù)據(jù)

dis_data=BUF[0];dis_data=(dis_data《《8)+BUF[1]; //合成數(shù)據(jù)

Value_GY_30=(float)dis_data/1.2;

三、元操作

3.1延時(shí)

//系統(tǒng)主頻72MHZvoid delay_us(uint16_t us){ while(us--) { __nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop(); __nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop(); __nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop(); __nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop(); __nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop(); __nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop(); __nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop(); __nop();__nop(); }}

void Delay_mms(uint16_t tmp){ uint16_t i=0; while(tmp--) { i=12000; while(i--); }}

3.2IIC開始/結(jié)束信號

時(shí)序圖如下代碼見2.2初始化BH1750

95bf293a-9bb4-11eb-8b86-12bb97331649.png

3.4發(fā)送應(yīng)答信號

/**************************************發(fā)送應(yīng)答信號入口參數(shù):ack (0:ACK 1:NAK)**************************************/void BH1750_SendACK(int ack){ GPIO_InitTypeDef GPIO_InitStruct;

GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

if(ack == 1) //寫應(yīng)答信號 HAL_GPIO_WritePin(GPIOB, sda,GPIO_PIN_SET); else if(ack == 0) HAL_GPIO_WritePin(GPIOB, sda,GPIO_PIN_RESET); else return;

HAL_GPIO_WritePin(GPIOB, scl,GPIO_PIN_SET); //拉高時(shí)鐘線 delay_us(5); //延時(shí) HAL_GPIO_WritePin(GPIOB, scl,GPIO_PIN_RESET); //拉低時(shí)鐘線 delay_us(5); //延時(shí)}

3.5接收應(yīng)答信號

/**************************************接收應(yīng)答信號**************************************/int BH1750_RecvACK(){ GPIO_InitTypeDef GPIO_InitStruct;

GPIO_InitStruct.Mode = GPIO_MODE_INPUT; /*這里一定要設(shè)成輸入上拉,否則不能讀出數(shù)據(jù)*/ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Pin = sda; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

HAL_GPIO_WritePin(GPIOB, scl,GPIO_PIN_SET); //拉高時(shí)鐘線 delay_us(5); //延時(shí)

if(HAL_GPIO_ReadPin( GPIOB, sda ) == 1 )//讀應(yīng)答信號 mcy = 1 ; else mcy = 0 ;

HAL_GPIO_WritePin(GPIOB, scl,GPIO_PIN_RESET); //拉低時(shí)鐘線 delay_us(5); //延時(shí)

GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; HAL_GPIO_Init( GPIOB, &GPIO_InitStruct );

return mcy;}

3.6 IIC發(fā)送一個(gè)字節(jié)

/**************************************向IIC總線發(fā)送一個(gè)字節(jié)數(shù)據(jù)**************************************/void BH1750_SendByte(uchar dat){ uchar i;

for (i=0; i《8; i++) //8位計(jì)數(shù)器 { if( 0X80 & dat ) HAL_GPIO_WritePin(GPIOB, sda,GPIO_PIN_SET); else HAL_GPIO_WritePin(GPIOB, sda,GPIO_PIN_RESET);

dat 《《= 1; HAL_GPIO_WritePin(GPIOB, scl,GPIO_PIN_SET); //拉高時(shí)鐘線 delay_us(5); //延時(shí) HAL_GPIO_WritePin(GPIOB, scl,GPIO_PIN_RESET); //拉低時(shí)鐘線 delay_us(5); //延時(shí) } BH1750_RecvACK();}

3.7 IIC讀取一個(gè)字節(jié)

/**************************************從IIC總線讀取一個(gè)字節(jié)數(shù)據(jù)**************************************/uchar BH1750_RecvByte(){ uchar i; uchar dat = 0; uchar bit;

GPIO_InitTypeDef GPIO_InitStruct;

GPIO_InitStruct.Mode = GPIO_MODE_INPUT; /*這里一定要設(shè)成輸入上拉,否則不能讀出數(shù)據(jù)*/ GPIO_InitStruct.Pin = sda; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init( GPIOB, &GPIO_InitStruct );

HAL_GPIO_WritePin(GPIOB, sda,GPIO_PIN_SET); //使能內(nèi)部上拉,準(zhǔn)備讀取數(shù)據(jù), for (i=0; i《8; i++) //8位計(jì)數(shù)器 { dat 《《= 1; HAL_GPIO_WritePin(GPIOB, scl,GPIO_PIN_SET); //拉高時(shí)鐘線 delay_us(5); //延時(shí)

if( SET == HAL_GPIO_ReadPin( GPIOB, sda ) ) bit = 0X01; else bit = 0x00;

dat |= bit; //讀數(shù)據(jù)

HAL_GPIO_WritePin(GPIOB, scl,GPIO_PIN_RESET); //拉低時(shí)鐘線 delay_us(5); //延時(shí) }

GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; HAL_GPIO_Init( GPIOB, &GPIO_InitStruct ); return dat;}

四、測試結(jié)果與光照強(qiáng)度參考

測試結(jié)果

光照強(qiáng)度參考值

編輯:lyn

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 轉(zhuǎn)換器
    +關(guān)注

    關(guān)注

    27

    文章

    9357

    瀏覽量

    155026
  • IIC接口
    +關(guān)注

    關(guān)注

    0

    文章

    23

    瀏覽量

    11967
  • GY-30
    +關(guān)注

    關(guān)注

    1

    文章

    8

    瀏覽量

    13479

原文標(biāo)題:智能花盆2.0驅(qū)動:基于STM32_HAL庫GY-30(BH1750FLV)驅(qū)動

文章出處:【微信號:IoTMaker,微信公眾號:機(jī)智云開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    SiLM27531HAC-AQ 30V, 5A/5A單通道高欠壓保護(hù)閾值的高速低邊門極驅(qū)動

    在開關(guān)電源系統(tǒng)中,門極驅(qū)動器是高效驅(qū)動功率器件、實(shí)現(xiàn)快速開關(guān)操作的關(guān)鍵組件,它能有效降低開關(guān)功率損耗,從而顯著提高系統(tǒng)效率。對于GaN等先進(jìn)的寬帶隙功率器件技術(shù)而言,系統(tǒng)對驅(qū)動器的性能
    發(fā)表于 11-04 08:48

    STMicroelectronics CAM-66GY相機(jī)模塊技術(shù)解析與應(yīng)用指南

    STMicroelectronics CAM-66GY RGB專業(yè)模塊是用于無縫評估和集成VD66GY 150萬像素彩色圖像傳感器的樣本攝像頭模塊。該款即用型視覺擴(kuò)展器件采用低至6.5mm2的微型
    的頭像 發(fā)表于 10-20 09:51 ?283次閱讀
    STMicroelectronics CAM-66<b class='flag-5'>GY</b>相機(jī)模塊技術(shù)解析與應(yīng)用指南

    SiLM8260ABCS-AQ雙通道隔離驅(qū)動30V/10A 帶米勒鉗位的雙輸入半橋驅(qū)動

    功率管在橋式拓?fù)渲幸蛎桌针娙菪?yīng)導(dǎo)致的誤導(dǎo)通,提升系統(tǒng)可靠性,尤其在半橋應(yīng)用中至關(guān)重要。 寬電壓與保護(hù): 輸出側(cè)驅(qū)動器電源電壓 (VDDA/B) 范圍寬達(dá) 最高30V,適應(yīng)多種功率器件需求。 輸入側(cè)
    發(fā)表于 08-11 08:46

    數(shù)字光模塊 GY-30說明書

    電子發(fā)燒友網(wǎng)站提供《數(shù)字光模塊 GY-30說明書.pdf》資料免費(fèi)下載
    發(fā)表于 08-09 16:07 ?2次下載

    基于意法半導(dǎo)體STM32N6和VD66GY的機(jī)器視覺方案

    基于STM32N6主控平臺和ST VD66GY圖像傳感器的創(chuàng)新方案,提供高效人體姿態(tài)監(jiān)控解決方案。STM32N6搭載強(qiáng)大的Arm Cortex-M55處理器和嵌入式神經(jīng)單元,結(jié)合VD66GY傳感器的高靈敏度圖像采集能力,可實(shí)現(xiàn)復(fù)雜的圖像識別與處理任務(wù),如姿態(tài)估計(jì)、行為分析
    的頭像 發(fā)表于 07-03 11:01 ?5065次閱讀
    基于意法半導(dǎo)體STM32N6和VD66<b class='flag-5'>GY</b>的機(jī)器視覺方案

    迅為RK3568驅(qū)動指南GPIO子系統(tǒng) GPIO操作函數(shù)實(shí)驗(yàn)

    迅為電子RK3568開發(fā)板驅(qū)動指南GPIO子系統(tǒng) GPIO操作函數(shù)實(shí)驗(yàn)
    的頭像 發(fā)表于 05-28 15:24 ?1033次閱讀
    迅為RK3568<b class='flag-5'>驅(qū)動</b>指南GPIO子系統(tǒng) GPIO<b class='flag-5'>操作</b>函數(shù)實(shí)驗(yàn)

    迅為RK3568開發(fā)板驅(qū)動指南GPIO子系統(tǒng)三級節(jié)點(diǎn)操作函數(shù)實(shí)驗(yàn)

    迅為RK3568開發(fā)板驅(qū)動指南GPIO子系統(tǒng)三級節(jié)點(diǎn)操作函數(shù)實(shí)驗(yàn)
    的頭像 發(fā)表于 05-26 15:39 ?1258次閱讀
    迅為RK3568開發(fā)板<b class='flag-5'>驅(qū)動</b>指南GPIO子系統(tǒng)三級節(jié)點(diǎn)<b class='flag-5'>操作</b>函數(shù)實(shí)驗(yàn)

    使用 dsPIC30F 實(shí)現(xiàn) BLDC 電機(jī)的正弦電壓驅(qū)動

    簡介 在 BLDC 電機(jī)應(yīng)用中,由于存在噪音和轉(zhuǎn)矩脈動問題,使用三相正弦波電壓代替六拍電壓是一種理想的控制方法。本文檔介紹的應(yīng)用軟件利用 dsPIC30F 數(shù)字信號控制器高效且可靠地實(shí)現(xiàn)了 BLDC
    發(fā)表于 05-14 15:56

    技術(shù)驅(qū)動未來:2QD30A17K-I-xx雙通道IGBT驅(qū)動核深度解析

    技術(shù)驅(qū)動未來:2QD30A17K-I-xx雙通道IGBT驅(qū)動核深度解析 在電力電子領(lǐng)域,IGBT驅(qū)動器的性能直接決定了系統(tǒng)效率、可靠性與安全性。基本半導(dǎo)體子公司-深圳青銅劍技術(shù)有限公司
    的頭像 發(fā)表于 05-03 10:29 ?543次閱讀
    技術(shù)<b class='flag-5'>驅(qū)動</b>未來:2QD<b class='flag-5'>30</b>A17K-I-xx雙通道IGBT<b class='flag-5'>驅(qū)動</b>核深度解析

    一款內(nèi)置4個(gè)穩(wěn)壓環(huán)節(jié)的交流直接驅(qū)動LED芯片-WD15-S30T

    WD15-S30T是一款內(nèi)置4個(gè)穩(wěn)壓環(huán)節(jié)的交流直接驅(qū)動LED芯片,可從整流后的交流電壓驅(qū)動多個(gè)串聯(lián)LED,由于其外部元器件數(shù)量少,給設(shè)計(jì)帶來極大的便利。WD15-S30T具有較高的LE
    的頭像 發(fā)表于 04-15 09:38 ?796次閱讀
    一款內(nèi)置4個(gè)穩(wěn)壓環(huán)節(jié)的交流直接<b class='flag-5'>驅(qū)動</b>LED芯片-WD15-S<b class='flag-5'>30</b>T

    一款內(nèi)部有4個(gè)步驟交流直接LED驅(qū)動IC-WD15-S30A

    LED驅(qū)動芯片 - WD15-S30A是一款交流直接LED驅(qū)動IC,內(nèi)部有4個(gè)步驟。它可以從整流的交流電壓下驅(qū)動幾個(gè)系列的led。它將提供很大的方便的設(shè)計(jì),因?yàn)樗枰倭康耐獠拷M件。
    的頭像 發(fā)表于 03-12 09:35 ?537次閱讀
    一款內(nèi)部有4個(gè)步驟交流直接LED<b class='flag-5'>驅(qū)動</b>IC-WD15-S<b class='flag-5'>30</b>A

    請問有沒有關(guān)于SN74HC1G14的替代品?

    請問有沒有關(guān)于SN74HC1G14的替代品?要求驅(qū)動能力大些,最好是能夠達(dá)到輸出電流30mA這樣的芯片?謝謝
    發(fā)表于 02-14 08:38

    30V-2A高效同步LED降壓驅(qū)動

    說明:PC1902是1MHz的高效率,30V同步降壓LED驅(qū)動器最大輸入電壓。PC1902集成主RDS極低的開關(guān)和同步開關(guān)(ON)以最小化傳導(dǎo)損耗。最高可達(dá)2A具有出色的負(fù)載和連續(xù)輸出電流線路調(diào)節(jié)
    發(fā)表于 02-08 17:51

    PZT驅(qū)動開關(guān)電路

    關(guān)于PZT的驅(qū)動開關(guān)電路參考
    發(fā)表于 01-17 16:37 ?1次下載

    GY/T 318-2018 地面數(shù)字電視廣播單頻網(wǎng)系統(tǒng)實(shí)施指南

    電子發(fā)燒友網(wǎng)站提供《GY/T 318-2018 地面數(shù)字電視廣播單頻網(wǎng)系統(tǒng)實(shí)施指南.pdf》資料免費(fèi)下載
    發(fā)表于 01-13 13:57 ?0次下載