概述
環(huán)境光傳感器是一種光電探測器,能夠?qū)⒐廪D(zhuǎn)換為電壓或者電流,使用多光譜環(huán)境光傳感器為了測量光譜上特定波長或特定帶鋸波長的強度,該傳感器的目標(biāo)是改善視覺體驗并最終使用戶感到舒適的照明視覺體驗。
最近在弄ST的課程,需要樣片的可以加群申請:615061293 。
視頻教學(xué)
https://www.bilibili.com/video/BV1du411u7Uz/
樣品申請
https://www.wjx.top/vm/OhcKxJk.aspx#
源碼下載
https://download.csdn.net/download/qq_24312945/88391797
模塊參數(shù)
VD6283 是 ST 的一款微型光學(xué)模塊,尺寸為 1.83 x 1.0 x 0.55 mm,具有6個獨立的環(huán)境光傳感通道,包括紅、綠、藍(lán)、紅外、透明和可見通道。它使用高級混合濾波器并能在7 mLux 到 30 kLux 的范圍內(nèi)運行。此傳感器具有獨特的讀出架構(gòu),可以提取從100 Hz 到 2 kHz 頻率的交流燈光閃爍信號。VD6283 還配備了 I2C 接口,工作電壓為1.8 V,并具有低功耗特性。它可以在 -30 到 85 °C 的溫度范圍內(nèi)運行。主要應(yīng)用包括屏幕亮度調(diào)整的真實色調(diào)色感測定、光亮度和相關(guān)色溫測量以及閃爍校正輔助的光頻提取。通過專利架構(gòu)和高性能的光電二極管設(shè)計,VD6283 可以提取燈光閃爍頻率,避免視頻上的“條紋效果”,或檢查它們對人眼是否安全。此外,VD6283 是唯一能夠同時進(jìn)行閃爍操作和環(huán)境光傳感操作的傳感器。
IIC接線方式
IIC接線方式如下所示,需要注意的是供電和上拉都是1.8V。
開發(fā)板接線方式如下所示。
設(shè)備ID
我們可以通過查詢0x00和0x01獲取模塊ID和模塊版本號。
手冊給出的取模塊ID和模塊版本號分別是0x70和0xBD。
生成STM32CUBEMX
串口配置
查看原理圖,PA1和PA0設(shè)置為開發(fā)板的串口。
配置串口。
IIC配置
在這個應(yīng)用中,VD6283TX模塊通過I2C(IIC)接口與主控器通信。具體來說,VD6283TX模塊的I2C引腳連接到主控器的PB6(引腳B6)和PB7(引腳B7)兩個IO口。
配置IIC為普通模式,速度為100k。
串口重定向
打開魔術(shù)棒,勾選MicroLIB
在main.c中,添加頭文件,若不添加會出現(xiàn) identifier "FILE" is undefined報錯。
/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */
函數(shù)聲明和串口重定向:
/* USER CODE BEGIN PFP */
int fputc(int ch, FILE *f){
HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}
/* USER CODE END PFP */
模塊地址
VD6283TX模塊的默認(rèn)設(shè)備地址為0100000(0x20)。設(shè)備地址是用來識別和通信特定設(shè)備的標(biāo)識符。通過將VL6180模塊的設(shè)備地址設(shè)置為0100000(0x20),您可以確保與該模塊進(jìn)行正常的通信和控制。
若添加讀寫位,0x40為寫地址,0x41為讀地址。
獲取ID
讀寫函數(shù)如下所示。
/**
* @brief 讀取數(shù)據(jù)
*
* @param add 模塊地址
* @param reg 寄存器地址
* @param data buffer 緩沖區(qū)
* @param len 讀取長度
* @retval ret 正常返回HAL_OK
*
*/
uint8_t VD6283TX_read_reg(uint8_t add,uint8_t reg, uint8_t * data, uint8_t len)
{
uint8_t ret;
ret=HAL_I2C_Mem_Read(&hi2c1 ,(add< < 1)|1,reg,I2C_MEMADD_SIZE_8BIT,data,len,0xffff);
return ret;
}
/**
* @brief 寫入數(shù)據(jù)
*
* @param add 模塊地址
* @param reg 寄存器地址
* @param data buffer 緩沖區(qū)
* @param len 寫入長度
* @retval ret 正常返回HAL_OK
*
*/
uint8_t VD6283TX_write_reg(uint8_t add,uint8_t reg, uint8_t * data, uint8_t len)
{
uint8_t ret;
ret=HAL_I2C_Mem_Write(&hi2c1 ,(add< < 1)|0,reg,I2C_MEMADD_SIZE_8BIT,data,len,0xffff);
return ret;
}
獲取ID以及版本號代碼如下所示。
/**
* @brief 獲取設(shè)備ID
*
* @param add 設(shè)備地址
* @param val 設(shè)備ID.
* @retval ret 正常返回HAL_OK
*
*/
uint8_t VD6283TX_getChipID(uint8_t add)
{
uint8_t temp[1]={0};
VD6283TX_read_reg(add,VD6283TX_DEVICE_ID,temp,1);
return temp[0];
}
/**
* @brief 獲取VD6283硅芯片的修訂版本
*
* @param add 設(shè)備地址
* @retval 硅芯片修訂版本
*
*/
uint8_t VD6283TX_getSiliconRevision(uint8_t add)
{
uint8_t revision[1] = {0};
VD6283TX_read_reg(add, VD6283TX_REVISION_ID, revision, 1);
return revision[0];
}
主函數(shù)
/* USER CODE BEGIN 2 */
HAL_Delay(200);
printf("123n");
//獲取設(shè)備IDHAL_I2C_Mem_Write(&hi2c1 ,(add< < 1)|0,reg,I2C_MEMADD_SIZE_8BIT,data,len,0xffff);
uint8_t VD6283_ID =VD6283TX_getChipID(VD6283TX_ID);
printf("VD6283TX_ID=0x%xn",VD6283_ID);
//獲取VD6283硅芯片的修訂版本
uint8_t VD6283_Revision =VD6283TX_getSiliconRevision(VD6283TX_ID);
printf("getSiliconRevision=0x%xn",VD6283_Revision);
/* USER CODE END 2 */
結(jié)果演示
審核編輯:湯梓紅
-
環(huán)境光傳感器
+關(guān)注
關(guān)注
3文章
108瀏覽量
21912 -
驅(qū)動開發(fā)
+關(guān)注
關(guān)注
0文章
130瀏覽量
12077 -
光電探測器
+關(guān)注
關(guān)注
4文章
266瀏覽量
20498
發(fā)布評論請先 登錄
相關(guān)推薦
評論