你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F091 Nucleo+tcs34725 colour sensor

[复制链接]
leo121_3006061 发布时间:2018-1-17 13:10
收到社区寄来的板子,也不枉参加了一次活动,正好从爱板拍了一个颜色传感器,研究了几天,晓有心得分享一下。此帖在爱板也发了,转发到这里赚点币。传感器的资料请去官网下载(DFrobot)
1. 硬件准备
开发板
tcs34725 color sensor
导线 4根
2连接方式(兼容ardunio的pin)

传感器===》Nucleo
SDA==>SDA/D14
SCL==》SCL/D15
注意不是A4,A5

2. 软件开发环境 mbed 在线编译
修改一下频率为(100000)原来是200000会报错


2018-01-16 23-19-27屏幕截图.png

2018-01-16 23-18-58屏幕截图.png
附上代码,非常简单

  1. // Example program connecting to the TCS34725 Color Sensor to the K64F using I2C

  2. #include "mbed.h"

  3. I2C i2c(I2C_SDA, I2C_SCL); //pins for I2C communication (SDA, SCL)
  4. Serial pc(USBTX, USBRX);

  5. int sensor_addr = 41 << 1;

  6. DigitalOut green(LED1);

  7. int main() {
  8.     pc.baud(9600);
  9.     green = 1; // off
  10.    
  11.     // Connect to the Color sensor and verify whether we connected to the correct sensor.
  12.    
  13.     i2c.frequency(100000);//修改为100000,否则报错
  14.    
  15.     char id_regval[1] = {146};
  16.     char data[1] = {0};
  17.     i2c.write(sensor_addr,id_regval,1, true);
  18.     i2c.read(sensor_addr,data,1,false);
  19.    
  20.     if (data[0]==68) {
  21.         green = 0;
  22.         wait (2);
  23.         green = 1;
  24.         } else {
  25.         green = 1;
  26.     }
  27.    
  28.     // Initialize color sensor
  29.    
  30.     char timing_register[2] = {129,0};
  31.     i2c.write(sensor_addr,timing_register,2,false);
  32.    
  33.     char control_register[2] = {143,0};
  34.     i2c.write(sensor_addr,control_register,2,false);
  35.    
  36.     char enable_register[2] = {128,3};
  37.     i2c.write(sensor_addr,enable_register,2,false);
  38.    
  39.     // Read data from color sensor (Clear/Red/Green/Blue)
  40.    
  41.     while (true) {
  42.         char clear_reg[1] = {148};
  43.         char clear_data[2] = {0,0};
  44.         i2c.write(sensor_addr,clear_reg,1, true);
  45.         i2c.read(sensor_addr,clear_data,2, false);
  46.         
  47.         int clear_value = ((int)clear_data[1] << 8) | clear_data[0];
  48.         
  49.         char red_reg[1] = {150};
  50.         char red_data[2] = {0,0};
  51.         i2c.write(sensor_addr,red_reg,1, true);
  52.         i2c.read(sensor_addr,red_data,2, false);
  53.         
  54.         int red_value = ((int)red_data[1] << 8) | red_data[0];
  55.         
  56.         char green_reg[1] = {152};
  57.         char green_data[2] = {0,0};
  58.         i2c.write(sensor_addr,green_reg,1, true);
  59.         i2c.read(sensor_addr,green_data,2, false);
  60.         
  61.         int green_value = ((int)green_data[1] << 8) | green_data[0];
  62.         
  63.         char blue_reg[1] = {154};
  64.         char blue_data[2] = {0,0};
  65.         i2c.write(sensor_addr,blue_reg,1, true);
  66.         i2c.read(sensor_addr,blue_data,2, false);
  67.         
  68.         int blue_value = ((int)blue_data[1] << 8) | blue_data[0];
  69.         
  70.         // print sensor readings
  71.         
  72.         pc.printf("Clear (%d), Red (%d), Green (%d), Blue (%d)\r\n", clear_value, red_value, green_value, blue_value);
  73.         wait(0.5);
  74.     }
  75.    
  76. }
复制代码


下载编译结果,打开串口助手之类的,使用三种颜色来实验,结果如下(传感器不能离的太近,否则数值飙升)

2018-01-16 23-27-39屏幕截图.png

2018-01-16 23-15-54屏幕截图.png

2018-01-16 23-14-42屏幕截图.png

使用红色的时候,红色值偏大,使用蓝色,蓝色值偏大,另外两个值基本固定在100多不到200.



最后来张合影


001502tg4xpx8mud4gfumx.jpg

评分

参与人数 1 ST金币 +1 收起 理由
Inc_brza + 1

查看全部评分

收藏 1 评论5 发布时间:2018-1-17 13:10

举报

5个回答
zero99 回答时间:2018-1-17 13:41:15
谢谢分享了~
anywill 回答时间:2018-1-17 13:44:01
tcs34725有点贵没舍得买,,
高手都在玩Linux了,
leo121_3006061 回答时间:2018-1-17 14:14:02
anywill 发表于 2018-1-17 13:44
tcs34725有点贵没舍得买,,
高手都在玩Linux了,

过奖了,我也是初学者刚刚入门,这个传感器确实贵,我是拿金币拍的,拍完就回到解放前了
leo121_3006061 回答时间:2018-1-17 14:15:30

感谢破总捧场
xudongqiang 回答时间:2020-6-14 17:01:00
666666666666

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版