??這是前幾天收到了顏色傳感器。它采用主動式檢測原理對物體表面的 顏色進行測量。也就是通過 RGB 三種LED主動發送輻射光,利用同一光電管來接收物體反射光的強度來反映物體反射光的顏色。但不能夠測量物體本身發射的顏色。生產廠家給出了詳細的使用說明。適合電子初學愛好者使用。在模塊上使用了 ST 的八位單片機完成顏色檢測并通過 I2C 總線輸出測量結果。下面對于它的基本功能進行測試一下。

??根據模塊手冊給出的接口定義,使用了一個六芯插座連接 I2C 總線,ERROR狀態、按鍵KEY、以及電源接口。按鍵接口可以外接機械按鈕,后面將其直接接入單片機來模擬按鍵。使用手邊比較多的F103單片機設計測試電路。在最小系統上,連接有一個 OLED 顯示測量結果。通過一個六芯接口連接測量模塊。其中包括I2C總線,狀態、按鍵和電源。

??繪制單面PCB,利用一分鐘制板方法,一分鐘之后得到了測試PCB。電路板制作的非常完美。下面進行焊接測試。

??先對電路板進行上錫,這樣就便于后面的焊接。焊接電路,其中有兩顆跳線使用 0 歐姆完成。對電路進行清洗,便于后面的測試。

??使用CubeMX 生成程序框架,在此基礎上開發應用程序。使用 彈簧夾子將 ST-LINK 接入電路板。下載初步測試程序。可以看到 MCU 開始工作了。

??加入 OLED 接口軟件模塊。可以在OLED上顯示字符。這樣可以方便后面讀取數據的調試。

??將傳感器通過六芯扁平電纜接入測試電路。上電之后,可以看到電路板上的六個LED都點亮了。接口上的5V指示LED點亮。

??下面通過MCU編程,模擬按鍵動作,將KEY端口置低電平,便可以將模塊設置為矯正模式。根據數據手冊,首先,長按按鈕,超過四秒鐘,按鍵指示燈通過快閃到慢閃的變化,進入白色矯正。?然后將白紙放在顏色模塊前,再按動按鈕,進行白色矯正。?接下來矯正黑色。完成之后便顏色模塊放回到正常測量狀態了。

??矯正前,模塊中間的 按鈕LED熄滅。單片機在 按鈕引線發出超過 5秒鐘的低電平,模塊中的 按鈕指示燈快閃之后轉為慢閃,現在進入矯正狀態。在模塊前放置一個白色紙張,進行白色矯正。單片機發送一個 0.5秒鐘的低電平,模塊便開始采集矯正。接下來,在模塊前放置一個黑色物品,或者沒有放置物品。再對按鈕管腳發送一個低電平脈沖,完成黑色矯正。程序中,長按按鈕,時間為 5秒鐘。短按按鈕,時間為 500毫秒。這樣便可以完成模塊的顏色矯正,矯正參數存儲在單片機中。

??根據顏色檢測模塊數據手冊,編寫對應的數據讀取命令。首先測試一個模塊握手命令。也就是發送?0xaa?命令,可以接收到?0x66?返回數據。這樣便可以證明模塊 I2C 訪問正常。通過發送握手命令,驗證模塊正常。下面測試讀取對應的顏色數據命令。

??編寫讀寫RGB命令,在 OLED顯示讀取的數據。現在顯示測量模塊前面沒有物體情況下的數據。三個通道的數據很小,將手掌放置在模塊前面,讀取的數據很快增加,直到飽和。由此驗證了這個模塊的基本功能是正常的。

??本文測試了帶有 I2C總線的 顏色傳感器。它采用三色 LED 主動發送光線,根據反射光強來檢測物體表面顏色。關于該模塊的其他功能之后再進行測試。

顏色傳感器官方資料鏈接:?https://ganv.com.cn/color_sensor.html
[2]?顏色傳感器顏色識別模塊購買連接:?https://item.taobao.com/item.htm?app=chrome&bxsign=scd8L53e5cEg4v-CLs9R0Wuw1yPXlETD3WClfh-OAPkRVX6v9QMwG49o-8jzLPoW3K8VAp3Zn7NtBYfrf7ITQ-6poS8WLJcQzCt1ZaCO6lhRUsuKl6kGxo5t0ds-dUJvC00&cpp=1&id=748574717746&price=49.8&shareUniqueId=31127806363&share_crt_v=1&shareurl=true&short_name=h.6TfajkIrN1oqC0K&sourceType=item&sp_tk=RFRqSWVBZUNGV1U%3D&spm=a2159r.13376460.0.0&suid=2f5281dd-fb3b-4066-8d62-70a141b56428&tbSocialPopKey=shareItem&tk=DTjIeAeCFWU%20MF287&un=76168c70fe5c8094d9378eee1c005948&un_site=0&ut_sk=1.Z6Kgq6N3CpcDAGLsDXZ%2Fz7m4_21646297_1744189403508.Copy.1&wxsign=tbw8bPOVlG1Z7KKm-AMGCX3DElS5xIpfJQjGgf7SvDnIYNLoInsmSk2V4WBZpfxKHKOtc77vmgebFcfxzAd2F4Bi9zLJW1ORSTm9IOHMb3WLGOQtDELZyjf7aYcnrQe2jhc&sku_properties=-1%3A-1