在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

基于STM32CUBEMX驅(qū)動TOF模塊VL6180與VL6180X(4)----測量環(huán)境光

嵌入式單片機MCU開發(fā) ? 來源:嵌入式單片機MCU開發(fā) ? 作者:嵌入式單片機MCU開 ? 2023-12-01 14:34 ? 次閱讀

概述

在本章中,我們將介紹如何配置VL6180X傳感器以測量環(huán)境光,并獲取環(huán)境光的強度值。VL6180X是一種多功能、高性能的接近和環(huán)境光傳感器,其環(huán)境光測量功能可以用于檢測周圍環(huán)境的亮度水平。
最近在弄ST和瑞薩RA的課程,需要樣片的可以加群申請:6_15061293 。
在這里插入圖片描述
查看VL6180X手冊可得知,VL6180X模塊是內(nèi)置了環(huán)境光感應(yīng)(Ambient Light Sensing,ALS)功能的。ALS功能使得VL6180X不僅能夠測量物體與傳感器之間的距離,還能夠檢測周圍環(huán)境的光照強度。
在這里插入圖片描述

樣品申請

https://www.wjx.top/vm/OhcKxJk.aspx#

視頻教程

https://www.bilibili.com/video/BV1vM4y1x74M/

video(video-xBRvtoF6-1689419585615)(type-bilibili)(url-https://player.bilibili.com/player.html?aid=913388199)(image-https://img-blog.csdnimg.cn/img_convert/24f308bcc28d55fb5395548d0a23231c.jpeg)(title-基于STM32CUBEMX驅(qū)動TOF模塊VL6180與VL6180X(4)----測量環(huán)境光)

完整代碼下載

https://download.csdn.net/download/qq_24312945/88051751

VL6180X傳感器的測量流程

下圖給出了vl6180x測量距離和環(huán)境光的驅(qū)動流程圖,可以得知他們的測量方式是大同小異的。
需要注意的是,雖然距離測量和環(huán)境光測量的流程圖在基本原理和操作步驟上是相似的,但在具體的配置和參數(shù)設(shè)置上可能存在差異。因此,在使用VL6180X進行距離測量和環(huán)境光測量時,需要根據(jù)具體的需求和應(yīng)用場景,相應(yīng)地配置和調(diào)整傳感器的設(shè)置。
在這里插入圖片描述

ALS動態(tài)范圍

ALS動態(tài)范圍是指VL6180X傳感器在不同增益設(shè)置下可以測量的光線范圍。在VL6180X手冊的表中,展示了在有和無玻璃情況下的各個增益下可測量的光線范圍。
選擇適當(dāng)?shù)脑鲆嬖O(shè)置對于獲得準確的環(huán)境光測量結(jié)果至關(guān)重要。在大多數(shù)應(yīng)用中,可以使用單個增益設(shè)置來進行操作,而無需在不同的增益之間切換。這樣可以簡化配置和使用過程,提高系統(tǒng)的穩(wěn)定性和可靠性。
根據(jù)實際應(yīng)用的需求,可以根據(jù)表中的數(shù)據(jù)選擇最合適的增益設(shè)置。根據(jù)是否使用玻璃覆蓋物,以及環(huán)境光的強度范圍,可以確定在哪個增益下獲得最佳的測量精度和范圍。
在這里插入圖片描述

ALS動態(tài)范圍

ALS動態(tài)范圍是指VL6180X傳感器在不同增益設(shè)置下可以測量的光線范圍。在VL6180X手冊的表中,展示了在有和無玻璃情況下的各個增益下可測量的光線范圍。
選擇適當(dāng)?shù)脑鲆嬖O(shè)置對于獲得準確的環(huán)境光測量結(jié)果至關(guān)重要。在大多數(shù)應(yīng)用中,可以使用單個增益設(shè)置來進行操作,而無需在不同的增益之間切換。這樣可以簡化配置和使用過程,提高系統(tǒng)的穩(wěn)定性和可靠性。
根據(jù)實際應(yīng)用的需求,可以根據(jù)表中的數(shù)據(jù)選擇最合適的增益設(shè)置。根據(jù)是否使用玻璃覆蓋物,以及環(huán)境光的強度范圍,可以確定在哪個增益下獲得最佳的測量精度和范圍。
在這里插入圖片描述

可以通過設(shè)置SYSALS__ANALOGUE_GAIN(0x03F)來配置模擬增益。根據(jù)實際需求和環(huán)境條件,選擇適當(dāng)?shù)脑鲆嬷捣浅V匾=ㄗh在調(diào)整增益時進行實際測試,以找到最佳的平衡點,以獲得所需的性能和圖像質(zhì)量。記住,過高的增益可能會引入噪聲,對測量產(chǎn)生不利影響。
在這里插入圖片描述

測量流程

具體流程如下所示:

  1. 開始單次環(huán)境光測量:應(yīng)用調(diào)諧設(shè)置后,將值0b100寫入寄存器的位[5:3](寄存器0x0014),以啟動單次環(huán)境光測量。
  2. 等待測量完成:等待測量完成。您可以根據(jù)實際需求決定等待的時間。
  3. 從寄存器0x0040讀取數(shù)據(jù),并清除位[0],然后將值0x31寫入寄存器0x0041。
  4. 將值0b1(二進制)寫入寄存器0x0038的位[0]。
  5. 從寄存器0x004F的位[5:3]中讀取數(shù)值,并且該數(shù)值為0b100跳出循環(huán),否則等待。
  6. 從寄存器0x0050讀取2個字節(jié)的數(shù)值,這個數(shù)值代表環(huán)境光強度的測量結(jié)果。
  7. 將值0b111(二進制)寫入寄存器0x0015的位[2:0]。
    以上是獲取光強的簡要概述,根據(jù)您的實際需求,可能需要更詳細的代碼和配置。請參考VL6180X傳感器的相關(guān)文檔和手冊,以獲取更多詳細的信息和編程指南。
    在這里插入圖片描述

光強計算公式

"ALS count to lux conversion" 指的是將環(huán)境光傳感器的輸出值(一個16位計數(shù)值)轉(zhuǎn)換為光照強度(單位為勒克斯)的過程,由上一步的流程進行獲取。
工廠校準的ALS光照分辨率是0.32(lux/count),適用于模擬增益為1且積分時間為100毫秒的情況(在無玻璃覆蓋的條件下進行校準)。計算公式如下所示。
在這里插入圖片描述
讀取lux代碼參考如下所示。

float VL6180X_Read_Lux(uint8_t add,uint8_t Gain)
{
	float lux;
	static uint8_t reg;
	reg = VL6180X_ReadByte(add,VL6180X_REG_SYSTEM_INTERRUPT_CONFIG);
	reg &= ~0x38;		//[5:3]清0
	reg |= (0x4< < 3);	//開啟轉(zhuǎn)換New sample ready	開啟轉(zhuǎn)換
	
	VL6180X_WriteByte(add,VL6180X_REG_SYSALS_INTEGRATION_PERIOD_HI,0);
	VL6180X_WriteByte(add,VL6180X_REG_SYSALS_INTEGRATION_PERIOD_LO,100);	//101ms
	if (Gain > VL6180X_ALS_GAIN_40)
	{
		Gain = VL6180X_ALS_GAIN_40;
	}
	VL6180X_WriteByte(add,VL6180X_REG_SYSALS_ANALOGUE_GAIN, 0x40 | Gain);
	VL6180X_WriteByte(add,VL6180X_REG_SYSALS_START, 0x1);	//連續(xù)模式
	// New Sample Ready threshold event 新樣本就緒
	while (4 != ((VL6180X_ReadByte(add,VL6180X_REG_RESULT_INTERRUPT_STATUS_GPIO) > > 3) & 0x7));
	
	lux = VL6180X_Read_HalfWold(add,VL6180X_REG_RESULT_ALS_VAL);
	VL6180X_WriteByte(add,VL6180X_REG_SYSTEM_INTERRUPT_CLEAR,0x07);	//0111b 清除了三種中斷標志
	//矯正增益算法
	lux *= 0.32f; // calibrated count/lux
	switch(Gain) { 
	case VL6180X_ALS_GAIN_1: 
	break;
	case VL6180X_ALS_GAIN_1_25: 
	lux /= 1.25f;
	break;
	case VL6180X_ALS_GAIN_1_67: 
	lux /= 1.67f;
	break;
	case VL6180X_ALS_GAIN_2_5: 
	lux /= 2.5f;
	break;
	case VL6180X_ALS_GAIN_5: 
	lux /= 5;
	break;
	case VL6180X_ALS_GAIN_10: 
	lux /= 10;
	break;
	case VL6180X_ALS_GAIN_20: 
	lux /= 20;
	break;
	case VL6180X_ALS_GAIN_40: 
	lux /= 40;
	break;
	}
	lux *= 100;
	lux /= 100; // integration time in ms
	return lux;
}

配置vl6180x

在對應(yīng)的demo板子中,使用U6進行光強讀取。
在這里插入圖片描述

初始化配置如下所示。

/* USER CODE BEGIN 2 */

	HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET);	
	HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_RESET);	

	HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_RESET);	
	HAL_GPIO_WritePin(GPIOB, GPIO_PIN_9, GPIO_PIN_RESET);	

	HAL_GPIO_WritePin(GPIOB, GPIO_PIN_13, GPIO_PIN_RESET);	
	HAL_GPIO_WritePin(GPIOB, GPIO_PIN_14, GPIO_PIN_RESET);	
	
	
//VL6180_4
	HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4, GPIO_PIN_SET);	
	HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_SET);
uint8_t ii;
uint8_t id;
	HAL_Delay(1);

/************修改VL6180_4地址為VL6180X_DEFAULT_I2C_ADDR4(0x2C)*********************/
	VL6180X_Init(VL6180X_DEFAULT_I2C_ADDR1);
	VL6180X_WriteByte(VL6180X_DEFAULT_I2C_ADDR1,0x0212,VL6180X_DEFAULT_I2C_ADDR4);
//	HAL_Delay(100);
	ii=VL6180X_ReadByte(VL6180X_DEFAULT_I2C_ADDR4,0x0212);	
	printf("VL6180_4地址為=0x%Xn",ii);		
	VL6180x_UpscaleSetScaling(VL6180X_DEFAULT_I2C_ADDR4,3);//縮放x3
	id=VL6180X_Read_ID(VL6180X_DEFAULT_I2C_ADDR4);
	printf("VL6180_4 id=%dn",id);	

/************修改VL6180_3地址為VL6180X_DEFAULT_I2C_ADDR3(0x2B)*********************/
//VL6180_3
	HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_SET);	
	HAL_GPIO_WritePin(GPIOB, GPIO_PIN_9, GPIO_PIN_SET);
	HAL_Delay(1);
	VL6180X_Init(VL6180X_DEFAULT_I2C_ADDR1);
	VL6180X_WriteByte(VL6180X_DEFAULT_I2C_ADDR1,0x0212,VL6180X_DEFAULT_I2C_ADDR3);
	ii=VL6180X_ReadByte(VL6180X_DEFAULT_I2C_ADDR3,0x0212);	
	printf("VL6180_3地址為=0x%Xn",ii);		
	VL6180x_UpscaleSetScaling(VL6180X_DEFAULT_I2C_ADDR3,3);//縮放x3
	id=VL6180X_Read_ID(VL6180X_DEFAULT_I2C_ADDR3);
	printf("VL6180_3 id=%dn",id);

  /* USER CODE END 2 */

循環(huán)讀取代碼如下所示。

/* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
		VL6180_L4=VL6180X_Read_Range(VL6180X_DEFAULT_I2C_ADDR4);
		printf("VL6180_L4=%dmmn",VL6180_L4*3);
			
		lux_L3=VL6180X_Read_Lux(VL6180X_DEFAULT_I2C_ADDR3,VL6180X_ALS_GAIN_40);
		printf("lux=%lfn",lux_L3);				
		VL6180_L3=VL6180X_Read_Range(VL6180X_DEFAULT_I2C_ADDR3);
		printf("VL6180_L3=%dmmn",VL6180_L3*3);			
		
		HAL_Delay(1000);			

    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */

測試結(jié)果

測試距離和光強結(jié)果如下所示。
在這里插入圖片描述

設(shè)置VL6180X_ALS_GAIN_40讀取,給強光情況下讀數(shù)如下所示。

在這里插入圖片描述

是符合手冊給出的范圍的。

在這里插入圖片描述

審核編輯:湯梓紅

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

    關(guān)注

    2564

    文章

    52696

    瀏覽量

    764517
  • 模塊
    +關(guān)注

    關(guān)注

    7

    文章

    2785

    瀏覽量

    49813
  • TOF
    TOF
    +關(guān)注

    關(guān)注

    9

    文章

    498

    瀏覽量

    37157
  • stm32cubemx
    +關(guān)注

    關(guān)注

    5

    文章

    286

    瀏覽量

    16028
收藏 人收藏

    評論

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

    基于STM32CUBEMX驅(qū)動TOF模塊VL6180VL6180X(2)----修改測量范圍

    當(dāng)使用VL6180傳感器進行測距時,可以通過修改縮放因子來改變可測量的距離范圍。VL6180是一種基于飛行時間原理的傳感器,通過測量信號的
    的頭像 發(fā)表于 12-01 13:52 ?1202次閱讀
    基于<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>TOF</b><b class='flag-5'>模塊</b><b class='flag-5'>VL6180</b>與<b class='flag-5'>VL6180X</b>(2)----修改<b class='flag-5'>測量</b>范圍

    基于STM32CUBEMX驅(qū)動TOF模塊VL6180VL6180X(3)----修改設(shè)備地址

    本章主要介紹如何修改VL6180X傳感器的I2C地址,并成功驅(qū)動設(shè)備以使用新的地址。VL6180X是一種多功能、高性能的接近和環(huán)境傳感器,
    的頭像 發(fā)表于 12-01 14:30 ?1093次閱讀
    基于<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>TOF</b><b class='flag-5'>模塊</b><b class='flag-5'>VL6180</b>與<b class='flag-5'>VL6180X</b>(3)----修改設(shè)備地址

    基于STM32CUBEMX驅(qū)動TOF模塊VL6180VL6180X(5)----驅(qū)動多個VL6180X

    驅(qū)動多個VL6180X傳感器進行距離測量和光強測量VL6180X傳感器在VL6180的基礎(chǔ)上增
    的頭像 發(fā)表于 12-01 14:36 ?1655次閱讀
    基于<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>TOF</b><b class='flag-5'>模塊</b><b class='flag-5'>VL6180</b>與<b class='flag-5'>VL6180X</b>(5)----<b class='flag-5'>驅(qū)動</b>多個<b class='flag-5'>VL6180X</b>

    VL6180x單次測量范圍測量后的系統(tǒng)錯誤代碼

    我有一個VL6180x傳感器,我已按照數(shù)據(jù)表中的說明焊接引線并進行配置。 在GitHub上使用這個庫,我能夠讀取環(huán)境測量值,但是距離測量
    發(fā)表于 09-21 16:55

    尋找手冊中引用的F401和VL6180板的mbed資源

    我正在尋找手冊中引用的F401和VL6180板的mbed資源。 可以嗎?#vl6180x以上來自于谷歌翻譯以下為原文 I was looking for mbed resources
    發(fā)表于 09-21 16:57

    VL6180X包含多少個傳感器?

    VL6180X包含多少個傳感器? #vl6180x#vl6180x-outline-drawing #sensor以上來自于谷歌翻譯以下為原文 How many sensors does
    發(fā)表于 09-25 17:14

    VL6180X操作如何測量距離

    的問題是:由于VL6180X計算距離作為發(fā)射和接收紅外線之間的時間,它如何測量距離(例如約1cm),其對應(yīng)于皮秒級的飛行時間? 謝謝#vl6180x以上來自于谷歌翻譯以下為原文 I
    發(fā)表于 10-10 10:47

    VL6180X:什么是線性誤差率?

    親, VL6180X的線性誤碼率是多少? Tks和問候。 一個。 #proximity-sensor#vl6180x以上來自于谷歌翻譯以下為原文 Dear, What
    發(fā)表于 10-22 16:29

    VL6180X范圍偏移怎么更改

    大家好我在自定義主板上使用了一些VL6180X設(shè)備。 然后,它們的范圍偏移似乎每次啟動都會改變大約mm5mm,盡管我按應(yīng)用說明中的指示調(diào)整了偏移。什么影響范圍偏移?在正常情況下,只需一次調(diào)整就夠了嗎
    發(fā)表于 10-23 16:52

    VL6180X增加了范圍

    嗨,我想增加VL6180X的范圍,但我不知道我必須修改哪個寄存器。我看到RangingAndALS_NucleoXXX樣本中的代碼,但我不明白VL6180X寄存器是如何被修改的,以便增加測量范圍
    發(fā)表于 04-08 16:02

    近距離測量VL6180X錯誤

    嘿,我正在使用VL6180X衛(wèi)星傳感器進行測距測量。連接后,我收到一些測量值 - 但它們是錯誤的。傳感器不會對0mm和~50mm之間的距離變化做出反應(yīng)。它不斷向我顯示'4 mm'的值。
    發(fā)表于 05-13 07:13

    請問VL6180X的基本功能有哪些?

    VL6180X的基本功能有哪些? #vl6180x #features以上來自于谷歌翻譯以下為原文 What are the basic features of VL6180X ?#vl61
    發(fā)表于 06-05 09:26

    Vl6180x 官方蓋玻片模型的使用

    本帖最后由 yppc 于 2019-12-31 12:09 編輯 我最近在使用Vl6180x芯片,因為應(yīng)用環(huán)境,我準備增加蓋玻片防塵,我在ST官網(wǎng)上查詢到Vl6180芯片的蓋玻片模型,我想咨詢
    發(fā)表于 12-31 11:41

    使用VL6180X ToF傳感器與Particle Argon控制伺服器

    電子發(fā)燒友網(wǎng)站提供《使用VL6180X ToF傳感器與Particle Argon控制伺服器.zip》資料免費下載
    發(fā)表于 10-19 09:52 ?0次下載
    使用<b class='flag-5'>VL6180X</b> <b class='flag-5'>ToF</b>傳感器與Particle Argon控制伺服器

    基于STM32CUBEMX驅(qū)動TOF模塊VL6180VL6180X(1)----單模塊距離獲取的最佳實踐

    VL6180X是基于ST FlightSense?專利技術(shù)的最新產(chǎn)品。作為一項突破性技術(shù),它實現(xiàn)了獨立于目標反射率的絕對距離測量。傳統(tǒng)的測量方法通過測量反射
    的頭像 發(fā)表于 07-27 09:47 ?2494次閱讀
    基于<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>TOF</b><b class='flag-5'>模塊</b><b class='flag-5'>VL6180</b>與<b class='flag-5'>VL6180X</b>(1)----單<b class='flag-5'>模塊</b>距離獲取的最佳實踐
    主站蜘蛛池模板: 国产精品你懂的 | 久久久久久久成人午夜精品福利 | 亚洲人成网站在线 | 国产精品美女视频 | 天天做天天看夜夜爽毛片 | 亚洲一区免费视频 | 特黄aa级毛片免费视频播放 | 啪啪免费网站视频观看 | 亚洲男人天堂2020 | 成人爽a毛片在线视频 | 天天爽天天狼久久久综合 | 在线成人aa在线看片 | 女人精69xxxxxx | 夜夜爽夜夜爱 | 一女多夫嗯啊高h | 人人舔人人爱 | 正在播放亚洲一区 | 黄色片视频网 | 夜夜天天操 | 黄 色 毛片免费 | 免费网站看黄 | 天天躁狠狠躁夜夜躁 | 免费特黄视频 | 欧美乱妇高清无乱码 | 在线观看www妖精免费福利视频 | 日本免费在线视频 | 欧美一区a | 丁香六月婷婷精品免费观看 | 日本口工全彩无遮拦漫画大 | 种子 在线播放 | 亚洲艹 | 亚洲一本高清 | 美女网站色黄 | 另类图片综合网 | 亚偷熟乱区视频在线观看 | 久久婷婷激情综合色综合也去 | 天天射日日操 | 夜夜做夜夜爽 | 一级特黄a大片免费 | 午夜精品福利影院 | 四虎影院色 |