99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

怎樣在Arduino上使用BH1750環(huán)境光傳感器

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-12-05 17:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

何時(shí)您將手機(jī)放在陽(yáng)光下或強(qiáng)光下,然后會(huì)根據(jù)照明條件自動(dòng)調(diào)節(jié)亮度。如今,無(wú)論是電視還是移動(dòng)電話,如今大多數(shù)顯示設(shè)備都內(nèi)置有環(huán)境光傳感器,可以自動(dòng)調(diào)節(jié)亮度。今天,在本教程中,我們將使用一個(gè)這樣的傳感器 BH1750光傳感器模塊并將其與Arduino 連接,并在16x2 LCD上顯示Lux值。

BH1750數(shù)字光傳感器模塊的介紹

BH1750 是數(shù)字環(huán)境光傳感器或光強(qiáng)度傳感器,可用于根據(jù)室外照明條件自動(dòng)調(diào)整手機(jī),LCD顯示屏的亮度,或打開/關(guān)閉汽車前燈。

該傳感器使用I 2 C串行通信協(xié)議,這使得它更易于與微控制器一起使用。對(duì)于I2C通信,它具有SDISDA引腳。 BH1750環(huán)境光傳感器的引腳排列如下所示:

怎樣在Arduino上使用BH1750環(huán)境光傳感器

此傳感器的輸出位于 LUX (lx)中,因此不需要任何進(jìn)一步的計(jì)算。勒克斯是測(cè)量光強(qiáng)度的單位。它根據(jù)照射到特定區(qū)域的光量來測(cè)量強(qiáng)度。 1 lux等于每平方米1流明。

傳感器的工作電壓范圍為 2.4V至3.6V (通常為3.0V),消耗的電流為 0.12mA 。該傳感器具有寬范圍和高分辨率(1-65535lx),此外,測(cè)量偏差也很?。s+/- 20%)。它也可以獨(dú)立工作,而無(wú)需任何外部組件。

盡管LDR傳感器也可以用于基于照明條件來控制設(shè)備,但其準(zhǔn)確性不高。我們已經(jīng)使用LDR傳感器構(gòu)建了許多光控應(yīng)用程序:

使用LDR的Arduino光傳感器電路

使用LDR和555定時(shí)器IC的黑暗檢測(cè)器

簡(jiǎn)單的LDR電路使用RGB LED和LDR來檢測(cè)光

Arduino混色燈

Arduino BH1750環(huán)境光傳感器電路圖

將BH1750光傳感器與Arduino連接的電路圖如下所示。

BH1750的I2C通信引腳SDA和SCL分別連接到Arduino引腳A4和A5,用于I 2 C通信。我們知道傳感器的工作電壓為3.3v,因此BH1750的VCC和GND連接到Arduino的3.3V和GND。對(duì)于LCD,數(shù)據(jù)引腳(D4-D7)連接到Arduino的數(shù)字引腳D2-D5,RS和EN引腳連接到Arduino的D6和D7。 LCD的V0連接到電位器,并使用一個(gè)10k電位器來控制LCD的亮度。

編程Arduino以連接BH1750光傳感器

使用此 LUX傳感器與Arduino 的編程部分非常簡(jiǎn)單。盡管此傳感器有一個(gè)庫(kù),但我們也可以不使用它。

首先,我們包含用于LCD和I 2 C協(xié)議。

#include

#include

在設(shè)置功能中,我們已經(jīng)初始化了LCD和傳感器,并在屏幕上打印了打開消息LCD。

void setup()

{

Wire.begin();

lcd.begin(16,2);

lcd.print(“ BH1750 Light ”);

lcd.setCursor(0,1);

lcd.print(“Intensity Sensor”);

delay(2000);

}

此處 BH1750_Read 和 BH1750_Init 功能用于分別讀取和寫入Lux值。 Wire.beginTransmission()函數(shù)用于開始傳輸,而 Wire.requestFrom(address,2)函數(shù)用于讀取寄存器,其中2表示寄存器數(shù)。

進(jìn)一步的 Wire.endTransmission()用于結(jié)束傳輸,并且 Wire.write()函數(shù)用于通過輸入以下內(nèi)容轉(zhuǎn)到所需的寄存器

int BH1750_Read(int address)

{

int i=0;

Wire.beginTransmission(address);

Wire.requestFrom(address, 2);

while(Wire.available())

{

buff[i] = Wire.read();

i++;

}

Wire.endTransmission();

return i;

}

void BH1750_Init(int address)

{

Wire.beginTransmission(address);

Wire.write(0x10);

Wire.endTransmission();

}

在 loop 函數(shù)中,我們是通過LCD打印實(shí)時(shí)照度值。首先將 BH1750_Read 函數(shù)的返回值與2進(jìn)行比較,然后如果等于2,則開始打印Lux值。此處將這些值與2進(jìn)行比較,因?yàn)?BH1750_Read 函數(shù)返回寄存器計(jì)數(shù)的值,我們只讀取2個(gè)寄存器。因此,當(dāng)達(dá)到2時(shí),程序開始打印光強(qiáng)度的LUX值。

然后使用公式從兩個(gè)寄存器獲取值并將它們除以1.2

void loop()

{

int i;

uint16_t value=0;

BH1750_Init(BH1750address);

delay(200);

if(2==BH1750_Read(BH1750address))

{

value=((buff[0]《《8)|buff[1])/1.2;

lcd.clear();

lcd.print(“Intensity in LUX”);

lcd.setCursor(6,1);

lcd.print(value);

}

delay(150);

}

最后打開Arduino的電源,然后將程序上傳到Arduino。程序一旦上傳,LCD便開始以LUX單位顯示光強(qiáng)度。您還可以通過更改傳感器周圍的光強(qiáng)度來更改值,如下面的視頻所示。

代碼

#include

#include

int BH1750address = 0x23;

byte buff [2];

LiquidCrystal LCD(7,6,5,4,3,2);//RS,E,D4,D5,D6,D7

void setup()

{

Wire.begin();

//Serial.begin(9600);

lcd.begin(16,2);

lcd.print(“ BH1750 Light”);

lcd.setCursor(0,1);

lcd.print(“ Intensity Sensor”);

delay(2000);

}

void loop()

{

int i;

uint16_t value = 0;

BH1750_Init(BH1750address);

delay(200);

if(2 == BH1750_Read(BH1750address))

{

value =((buff [0] 《《8)| buff [1])/1.2;

lcd.clear();

lcd.print(“強(qiáng)度(LUX)”);

lcd.setCursor(6,1);

lcd.print(value);

//Serial.print(val);

//Serial.println(“[lux]“);

}

delay(150);

}

int BH1750_Read(int address)

{

int i = 0;

Wire.beginTransmission(地址);

Wire.requestFrom(地址,2);

while(Wire.available())

{

buff [i] = Wire.read();

i ++;

}

Wire.endTransmission();

返回i;

}

void BH1750_Init(int address)

{

Wire.beginTransmission(地址);

Wire.write(0x10);

Wire.endTransmission();

}

責(zé)任編輯:wv

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

    關(guān)注

    2565

    文章

    52982

    瀏覽量

    767276
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6498

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    【沁恒CH585開發(fā)板免費(fèi)試用體驗(yàn)】+光照傳感器及其檢測(cè)

    光照傳感器在對(duì)環(huán)境的光線情況的檢測(cè)中起著重要的作用,這里所采用的是數(shù)字式光照傳感器BH1750,它具有集成度高和檢測(cè)精度高的特點(diǎn)。 該傳感器
    發(fā)表于 07-06 00:08

    迅為RK3576開發(fā)板NPUrknn-toolkit2環(huán)境搭建和使用docker環(huán)境安裝

    迅為RK3576開發(fā)板NPUrknn-toolkit2環(huán)境搭建和使用docker環(huán)境安裝
    的頭像 發(fā)表于 06-18 15:22 ?476次閱讀
    迅為RK3576開發(fā)板NPUrknn-toolkit2<b class='flag-5'>環(huán)境</b>搭建和使用docker<b class='flag-5'>環(huán)境</b>安裝

    如何為您的應(yīng)用選擇傳感器

    ,到向安全系統(tǒng)發(fā)送可能的入侵警報(bào)。 本文討論了常見用例中選擇傳感器所需的功能,例如篡改檢測(cè)、晝夜檢測(cè)、LED 亮度調(diào)節(jié)、顯示屏亮度調(diào)節(jié)和顏色調(diào)節(jié)。 篡改檢測(cè) 篡改檢測(cè)應(yīng)用中的
    的頭像 發(fā)表于 06-11 10:14 ?174次閱讀
    如何為您的應(yīng)用選擇<b class='flag-5'>光</b><b class='flag-5'>傳感器</b>

    急急急在線等

    求一張stm32物聯(lián)網(wǎng)智能家居環(huán)境監(jiān)測(cè)系統(tǒng)總電路圖,含DHT11,BH1750,MQ-2煙霧傳感器,OLED顯示屏,聲光報(bào)警,ESP8266等
    發(fā)表于 04-28 23:20

    如何使用cubeide配置stm32H750環(huán)境?

    如何使用cubeide配置stm32H750環(huán)境,但是SYS中沒有debug選項(xiàng),也就選不了serial wire
    發(fā)表于 04-23 07:55

    Vishay Opto VEML6031X00汽車級(jí)環(huán)境傳感器

    VishayOptoVEML6031X00汽車級(jí)環(huán)境傳感器(ALS)是一款高精度傳感器,設(shè)有I2C接口。該傳感器是一款
    的頭像 發(fā)表于 04-03 10:31 ?526次閱讀
    Vishay Opto VEML6031X00汽車級(jí)<b class='flag-5'>環(huán)境</b><b class='flag-5'>光</b><b class='flag-5'>傳感器</b>

    環(huán)型壓力傳感器的研究和應(yīng)用

    科技日新月異的今天,傳感器技術(shù)作為連接物理世界與數(shù)字世界的橋梁,正引領(lǐng)著眾多領(lǐng)域的深刻變革。其中,環(huán)型壓力傳感器以其獨(dú)特的環(huán)形結(jié)構(gòu)設(shè)計(jì)、卓越的精度和廣泛的應(yīng)用潛力,成為現(xiàn)代工業(yè)與科研
    的頭像 發(fā)表于 03-05 17:30 ?461次閱讀
    <b class='flag-5'>環(huán)</b>型壓力<b class='flag-5'>傳感器</b>的研究和應(yīng)用

    【CW32模塊使用】BH1750光照強(qiáng)度傳感器

    采用ROHM原裝BH1750FVI芯片供電電源:3-5V,光照度范圍:0-65535lx傳感器內(nèi)置16bitAD轉(zhuǎn)換,直接數(shù)字輸出,省略復(fù)雜的計(jì)算,省略標(biāo)定,不區(qū)分環(huán)境光源接近于視覺
    的頭像 發(fā)表于 12-30 11:17 ?1003次閱讀
    【CW32模塊使用】<b class='flag-5'>BH1750</b>光照強(qiáng)度<b class='flag-5'>傳感器</b>

    【RA-Eco-RA4E2-64PIN-V1.0開發(fā)板試用】04、I2C驅(qū)動(dòng)BH1750光照傳感器并在串口打印輸出

    0 前言 本次實(shí)驗(yàn)將使用板子的I2C功能。瑞薩R7FA4E2B93CFM支持I3C和I2C,手頭沒有I3C的設(shè)備,但正好有一個(gè)I2C協(xié)議的光照傳感器模塊,型號(hào)為BH1750。 1 硬件部分 從
    發(fā)表于 12-16 16:17

    外設(shè)移植 Ai-WB2+BH1750 光照強(qiáng)度傳感器

    以下作品由安信可社區(qū)用戶 WangChong制作 外設(shè)介紹 BH1750是一種基于光電二極管的數(shù)字光強(qiáng)傳感器,能夠測(cè)量環(huán)境中的光照強(qiáng)度,并將其轉(zhuǎn)換為數(shù)字信號(hào)。它采用 I2C 接口進(jìn)行通信,適合
    的頭像 發(fā)表于 12-05 14:32 ?841次閱讀
    外設(shè)移植 Ai-WB2+<b class='flag-5'>BH1750</b> 光照強(qiáng)度<b class='flag-5'>傳感器</b>

    如何選擇適合的傳感器

    現(xiàn)代科技中,傳感器扮演著越來越重要的角色,從簡(jiǎn)單的環(huán)境檢測(cè)到復(fù)雜的光學(xué)成像系統(tǒng),
    的頭像 發(fā)表于 11-19 15:22 ?808次閱讀

    16位數(shù)字輸出型環(huán)境光強(qiáng)度傳感器集成電路bh1750FVI中文數(shù)據(jù)手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《16位數(shù)字輸出型環(huán)境光強(qiáng)度傳感器集成電路bh1750FVI中文數(shù)據(jù)手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 09-11 14:26 ?6次下載

    環(huán)境監(jiān)測(cè)傳感器怎么安裝的

    。 第一部分:準(zhǔn)備工作 1. 了解傳感器類型和功能 安裝之前,首先需要了解不同類型的環(huán)境監(jiān)測(cè)傳感器及其功能。常見的環(huán)境監(jiān)測(cè)
    的頭像 發(fā)表于 09-10 14:50 ?1170次閱讀

    使用OPT4003-Q1環(huán)境傳感器進(jìn)行光源檢測(cè)

    電子發(fā)燒友網(wǎng)站提供《使用OPT4003-Q1環(huán)境傳感器進(jìn)行光源檢測(cè).pdf》資料免費(fèi)下載
    發(fā)表于 08-28 09:31 ?1次下載
    使用OPT4003-Q1<b class='flag-5'>環(huán)境</b><b class='flag-5'>光</b><b class='flag-5'>傳感器</b>進(jìn)行光源檢測(cè)

    四種常見環(huán)境傳感器及適用場(chǎng)景

    環(huán)境傳感器是一種感應(yīng)周圍環(huán)境光線強(qiáng)度的器件。從自動(dòng)調(diào)節(jié)顯示亮度以優(yōu)化視覺體驗(yàn),到智能節(jié)能,環(huán)境
    的頭像 發(fā)表于 07-18 10:23 ?5452次閱讀