STM32CubeMX | | 使用小熊派玩轉顏色識別傳感器(純手工打造E53傳感器模塊)
關注、星標嵌入式云IOT技術圈,精彩及時送達
我買來做顏色識別傳感器的模塊是TCS34725,如下圖所示(相關資料和本文demo請滑到文末通過clone我的碼云倉庫鏈接獲取):我買的是如上圖所示的方形版本。1、顏色識別傳感器TCS34725概述
本模塊是基于 AMS 的 TCS3472XFN 彩色光數(shù)字轉換器為核心的顏色傳感器,傳感器提供紅色,綠色,藍色(RGB)和清晰光感應值的數(shù)字輸出。集成紅外阻擋濾光片可最大限度地減少入射光的紅外光譜成分,并可精確地進行顏色測量。具有高靈敏度,寬動態(tài)范圍和紅外阻隔濾波器。最小化 IR 和 UV 光譜分量效應,以產生準確的顏色測量。并且?guī)в协h(huán)境光強檢測和可屏蔽中斷。通過 I2C 接口通信。(摘自說明手冊)顏色傳感器的應用:顏色分類分揀系統(tǒng)、多顏色噴頭的3D打印機、醫(yī)療方面等。2、原理圖與通信接口
淺談總線通信機制(通信基礎 串口 I2C)
詳述I2C總線協(xié)議、時序,入門不再是難事
3、顏色傳感器E53小板純手工打造
4、STM32CubeMX配置
由于我手焊的這塊E53直接用的就是I2C1接口,所以就在以往帶LCD的工程上再配置一路I2C即可:以往文章有關小熊派的SPI OLED的demo參考:讓傳感器數(shù)據(jù)更直觀之LCD曲線顯示自己動手擼個簡單的LCD驅動框架吧!
基于小熊派光強傳感器BH1750狀態(tài)機驅動項目升級(帶LCD屏顯示)
接下來直接生成工程即可。
5、移植例程
官方已經為我們提供了STM32的例程代碼,所以我們直接移植過來然后修改成我們想要的效果就行了,白嫖毫無費功夫:當然,如果你覺得調的參數(shù)有問題,可以修改下面這個函數(shù),將積分時間進行修改:int?begin(void)?
{
??/*?Make?sure?we're?actually?connected?*/
??uint8_t?x?=?read8(TCS34725_ID);
?if(x?!=?0x4D?)
??return?false?;
??_tcs34725Initialised?=?true;
??/*?Set?default?integration?time?and?gain?*/
?/*積分時間,增益值控制*/
??setIntegrationTime(TCS34725_INTEGRATIONTIME_2_4MS);
?//RGB值過大,光強超出檢查范圍,減小增益(TCS34725_GAIN_16X)
??setGain(TCS34725_GAIN_1X);
??/*?Note:?by?default,?the?device?is?in?power?down?mode?on?bootup?*/
??enable();
??return?true;
}
所有的宏定義位于tcs34725.h中,這些宏定義具體的作用是什么,請詳細閱讀該模塊的數(shù)據(jù)手冊:6、實驗效果
經過測試結果,我個人感覺這個傳感器的識別效果誤差還是挺大的,可能會受環(huán)境、距離等因素影響,不過,用來簡單做些DIY問題不大。7、項目開源地址
本節(jié)代碼已同步到碼云的代碼倉庫中,獲取方法如下:碼云倉庫:https://gitee.com/morixinguan/bear-pi/tree/master/25.TCS34725_Color_Sensor
獲取項目方法:git?clone?https://gitee.com/morixinguan/bear-pi.git
我還將之前做的一些項目以及練習例程在近期內全部上傳完畢,與大家一起分享交流,如果有任何問題或者對該項目感興趣,歡迎加我微信:morixinguan一起交流學習。往期精彩
都說軟件架構要分層、分模塊,具體應該怎么做(二)開源:智能寵物彈射喂食器連載貼之步進電機控制(二)
U盤容量大小造假技術手段實現(xiàn)之8M變4G(以STM32 SPI_FLASH為例)
手把手教你在STM32上實現(xiàn)OLED視頻播放(很簡單也很硬很肝!)
一些值得被定義為常用C語言頭文件庫的漂亮宏定義(值得收藏,以備使用參考)
覺得本次分享的文章對您有幫助,隨手點
[在看]
并轉發(fā)分享,也是對我的支持。