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