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值。