HS-S63-L TCS3472顏色感應器

1、介紹

TCS3472感應器模組,使用IIC或UART通訊,可直接輸出RGB值。有功耗小,體積小,安裝方便的優勢。其工作原理是,通過照明LED發光,照射到被測物體後,返回光經過鏡頭檢測RGB的比例值,根據RGB的比例值識別出顏色。模組具有兩種方式讀取資料,即串口UART(TTL電平)或者IIC(2線),串口的波特率有9600bps與115200bps可配置,有連續、詢問輸出兩種方式還能掉電保存設定。還可以進行簡單的7種顏色識別,不需要計算RGB值。能適應不同的工作環境,與單片機及電腦連接。模組另外可以設定獨立感測器晶片工作模式,作為簡單感測器模組,MCU不參與數據處理工作。
電子指南針羅盤模塊是基於磁传感與姿態解算技術的高精度感知組件,核心功能為精準輸出航向角(精度士0.5°~士2)與設備姿態數據,廣泛適配消費電子、智能穿戴、無人機、車載設備等場景。模組集成本高靈敏度感應器與抗干擾校準算法,支援I2C/SPI等主流通訊協議,具備寬電壓適應、高溫低溫穩定工作(-40°C~85°C)及低功耗特性,可快速與各類智能設備集成,為其提供可靠的方向定位與姿態反饋能力,是實現設備「空間感知」的核心組件。

2、原理圖

3、模組參數

引腳名稱

描述

G

GND(電源輸入負極)

V

VCC(電源輸入正極)

SDA

數據引腳

SCL

時鐘引腳

  • 供電電壓: 3.3V-5V

  • 連接方式:PH2.0 4P端子線

  • 安裝方式:樂高搭建

4、電路板尺寸

5、添加Arduino庫文件

不會使用庫文件的參考這裡:庫文件安裝使用

庫文件下載:點擊下載

米思齊庫文件下載步驟(使用代碼前請先下載米思齊庫文件):

第一步:找到庫文件

點擊設置,再點擊管理庫

第二步:找到對應的庫並勾選上

第三步:點擊導入

最後一步:檢查是否添加成功,如果成功如下圖所示,沒有則檢查以上步驟是否出錯。

6、加入MicroPython環境庫檔案

不會安裝庫文件的請點擊這裡:參考連結

7、Arduino IDE範例程式

示例程式(UNO開發板):點擊下載

#include <Wire.h>
#include "Adafruit_TCS34725.h"

Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_50MS, TCS34725_GAIN_1X);

void printColor() {
  uint16_t clearcol = 0;
    uint16_t red = 0;
    uint16_t green = 0;
    uint16_t blue = 0;
  float r = 0;
  float g = 0;
  float b = 0;
  float average = 0;
  delay(100);
  tcs.getRawData(&red, &green, &blue, &clearcol);
  //加权平均值算法
  average = (red + (green + blue)) / 3;
  r = red / average;
  g = green / average;
  b = blue / average;
  Serial.println(String("r ") + String(r) + String(" g ") + String(g) + String(" b ") + String(b));
  if ((r > 1.2 && r < 1.9) && (g < 1 && (b > 0.45 && b < 0.9))) {
    Serial.print(" 红");

  } else if (r < 1.1 && (g > 1.3 && b < 0.7)) {
    Serial.print(" 绿");
  } else if ((r > 1 && r < 1.5) && ((g > 1.1 && g < 1.4) && (b > 0.35 && b < 0.75))) {
    Serial.print(" 黄");
  } else if ((r > 0.7 && r < 1) && (g < 1.2 && b > 1)) {
    Serial.print(" 蓝");
  } else if (false) {
  } else {
    Serial.print(" 不是匹配的颜色");

  }
  delay(10);
}

void setup(){
  Serial.begin(9600);
  if (tcs.begin(0x29)) {
    Serial.println("搜索到TCS34725");

  } else {
    Serial.println("没有搜索到TCS34725");
    while (true) {
      delay(1);
    }

  }
}

void loop(){
  printColor();

}

示例程式(ESP32開發板):

import machine
import time


from machine import Pin,I2C
from tcs34725 import TCS34725
import time

# 创建I2C对象
i2cObj = I2C(1,scl = Pin(22),sda = Pin(21),freq = 400000)
# 打印扫描出的I2C对象
print("I2C Bus Scan: ", i2cObj .scan(), "\n")
# 创建tcs34725颜色识别模块对象
tcs = TCS34725(i2cObj ,0x29)
# 创建RGB颜色计算函数
def Colour():
    try:
        red,green,blue,colour = tcs.read(True)  # 读取颜色值

        if colour != 0:  # 如果colour不等于0
            Red   = int((red / colour) * 32)  # 计算红色的值
            Green = int((green / colour) * 32)  # 计算绿色的值
            Blue  = int((blue / colour) * 32)  # 计算蓝色的值
            return Red,Green,Blue
        else:
            return 0,0,0
    except :
        print("数据异常!")
        RuntimeError
RGB = [0, 0, 0]
while True:
    print('(r,g,b)对应是',end ="")
    # 获取颜色R,G,B函数
    print(Colour())
    time.sleep_ms(10)

8、米思齊 Mixly 示例程式(圖形化語言)

示例程式(UNO開發板):點擊下載

示例程序(ESP32開發板):點擊下載

9、測試環境搭建

Arduino UNO 測試環境搭建

準備配件:

  • UNO-R3 開發板 *1

  • UNO-R3 EXP 開放板 *1

  • USB type-c 資料線 *1

  • TCS3472顏色感應器*1

  • PH2.0 4P雙頭端子線 *1

電路接線圖:

ESP32 Python 測試環境搭建

10、視頻教學

Arduino UNO視頻教學:按鈕查看

ESP32 Python視頻教學:

11、測試結論

Arduino UNO測試結論:

下入代碼,之後將模組對準顏色板。

對準不同的顏色,可以觀察到電腦串口印出不同的r,g,b值。