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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

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

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

概述

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

樣品申請

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驅動TOF模塊VL6180與VL6180X(4)----測量環境光)

完整代碼下載

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

VL6180X傳感器的測量流程

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

ALS動態范圍

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

ALS動態范圍

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

可以通過設置SYSALS__ANALOGUE_GAIN(0x03F)來配置模擬增益。根據實際需求和環境條件,選擇適當的增益值非常重要。建議在調整增益時進行實際測試,以找到最佳的平衡點,以獲得所需的性能和圖像質量。記住,過高的增益可能會引入噪聲,對測量產生不利影響。
在這里插入圖片描述

測量流程

具體流程如下所示:

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

光強計算公式

"ALS count to lux conversion" 指的是將環境光傳感器的輸出值(一個16位計數值)轉換為光照強度(單位為勒克斯)的過程,由上一步的流程進行獲取。
工廠校準的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);	//開啟轉換New sample ready	開啟轉換
	
	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);	//連續模式
	// 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

在對應的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 */

循環讀取代碼如下所示。

/* 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 */

測試結果

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

設置VL6180X_ALS_GAIN_40讀取,給強光情況下讀數如下所示。

在這里插入圖片描述

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

在這里插入圖片描述

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2561

    文章

    52198

    瀏覽量

    761678
  • 模塊
    +關注

    關注

    7

    文章

    2771

    瀏覽量

    49040
  • TOF
    TOF
    +關注

    關注

    9

    文章

    493

    瀏覽量

    36977
  • stm32cubemx
    +關注

    關注

    5

    文章

    286

    瀏覽量

    15850
收藏 人收藏

    評論

    相關推薦

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

    當使用VL6180傳感器進行測距時,可以通過修改縮放因子來改變可測量的距離范圍。VL6180是一種基于飛行時間原理的傳感器,通過測量信號的
    的頭像 發表于 12-01 13:52 ?1028次閱讀
    基于<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>驅動</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驅動TOF模塊VL6180VL6180X(3)----修改設備地址

    本章主要介紹如何修改VL6180X傳感器的I2C地址,并成功驅動設備以使用新的地址。VL6180X是一種多功能、高性能的接近和環境傳感器,
    的頭像 發表于 12-01 14:30 ?947次閱讀
    基于<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>驅動</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)----修改設備地址

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

    驅動多個VL6180X傳感器進行距離測量和光強測量VL6180X傳感器在VL6180的基礎上增
    的頭像 發表于 12-01 14:36 ?1482次閱讀
    基于<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>驅動</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'>驅動</b>多個<b class='flag-5'>VL6180X</b>

    VL6180x單次測量范圍測量后的系統錯誤代碼

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

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

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

    VL6180X包含多少個傳感器?

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

    VL6180X操作如何測量距離

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

    VL6180X:什么是線性誤差率?

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

    VL6180X范圍偏移怎么更改

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

    VL6180X增加了范圍

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

    近距離測量VL6180X錯誤

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

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

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

    Vl6180x 官方蓋玻片模型的使用

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

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

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

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

    VL6180X是基于ST FlightSense?專利技術的最新產品。作為一項突破性技術,它實現了獨立于目標反射率的絕對距離測量。傳統的測量方法通過測量反射
    的頭像 發表于 07-27 09:47 ?2356次閱讀
    基于<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>驅動</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>距離獲取的最佳實踐
    主站蜘蛛池模板: 天天视频天天爽 | 亚洲日本精品 | 天天爱天天做天天爽天天躁 | 天天操好逼 | 真人午夜a一级毛片 | 99久久久久国产精品免费 | 欧美日韩国产成人精品 | 最近2018中文字幕免费看在线 | 亚洲人成网站色7799在线播放 | 亚1州区2区3区4区产品乱码 | 久久亚洲国产午夜精品理论片 | 好吊色37pao在线观看 | 亚洲狠狠97婷婷综合久久久久 | 天天操国产 | 在线观看精品国产福利片100 | 调教双性学霸美人 | 亚洲啪啪网站 | 天堂网www最新版在线资源 | 天天爱天天爽 | 色综网 | 失禁h啪肉尿出来高h | 新版天堂中文网 | 毛片毛多 | 日本久久综合视频 | 国产精品1区2区3区在线播放 | 亚洲精品成人a在线观看 | 国产成人毛片视频不卡在线 | 特级片网站 | 天堂在线最新版www中文 | 夜恋秀场欧美成人影院 | 久久精品2020| 西西人体大胆高清啪啪欧洲 | 99成人在线 | 四虎在线最新地址公告 | 欧美tube最新的69hd | 天堂社区在线视频 | 亚洲成人99 | 成人午夜视频免费看欧美 | 性free中国美女hd | 天天干夜夜躁 | 国产精品国产主播在线观看 |