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