也读过!
首页 / 工具 / 阿尔杜伊诺 / 颜色传感器 TCS3200D 镜头为 Arduino

颜色传感器 TCS3200D 镜头为 Arduino

这个小的传感器 透镜 TCS3200D 是能够感知颜色,并寄给 Arduino. 虽然不是很可靠, 它看起来很酷. 它也有 没有镜头的版本.

570feb7116d85_IMG_20160414_160510

有 4 指示灯安装在船上.

570feb730cecc_IMG_20160414_160516

连接器: S0, S1, S2, S3, 吉安达, VCC, 出和 LED.

570feb751d7d3_IMG_20160414_160524

还有保护镜头盖.

570feb771e264_IMG_20160414_160536

看看如何用 Arduino 链接.

570feb653fa95_IMG_20160414_160107

用于 Arduino 的 3.3 V 电压连接指示灯. 这是很好的亮度.

570feb66707a2_IMG_20160414_160139

在这张照片我想读我的订书机的蓝色.

570feb67a23fd_IMG_20160414_160153

蓝色的结果不是很好, 但我可以看到蓝色的水平稍大.

570feb6879495_IMG_20160414_160203

说到这, 将留给那些想要使用的程序在这里:

int s2Pin = 7;
int s3Pin = 8;
int outPin = 4;

无效的安装程序() {
  pinMode(s2Pin, 输出);
  pinMode(s3Pin, 输出);
  pinMode(outPin, 输入);
  开始串行。(9600);
}

int readOutputPulse(int 引脚) {
  int count = 0;
  虽然 ((digitalRead(PIN) == 1) & (计数 < 32640)) {
    计数    ;
  }
  如果 (计数 = = 32640) 返回计数   2;
  计数 = 0;  虽然 ((digitalRead(PIN) == 0) & (计数 < 32640)) {
    计数    ;
  }
  返回计数;
}

int readRed() {
  int 脉宽 = 0;
  int colorStrength = 0;
  digitalWrite(s2Pin, 低); 
  digitalWrite(s3Pin, 低);
  延迟(100);
  脉宽 = readOutputPulse(outPin);
  colorStrength = (脉宽/128);
  colorStrength = (255 - colorStrength);
  返回 colorStrength;
}

int readGreen() {
  int 脉宽 = 0;
  int colorStrength = 0;
  digitalWrite(s2Pin, 高); 
  digitalWrite(s3Pin, 高);
  延迟(100);
  脉宽 = readOutputPulse(outPin);
  colorStrength = (脉宽/128);
  colorStrength = (255 - colorStrength);
  返回 colorStrength;
}

int readBlue() {
  int 脉宽 = 0;
  int colorStrength = 0;
  digitalWrite(s2Pin, 低); 
  digitalWrite(s3Pin, 高);
  延迟(100);
  脉宽 = readOutputPulse(outPin);
  colorStrength = (脉宽/128);
  colorStrength = (256 - colorStrength);
  返回 colorStrength;
}

无效的循环() {
  串行.print("R:");
  Out.println 串行(readRed());
  串行.print("G:");
  Out.println 串行(readGreen());
  串行.print("(B):");
  Out.println 串行(readBlue());
  Out.println 串行("");
  延迟(500);
}

现在我正在读的计算机上的一个白色的屏幕.

570feb6f21b80_IMG_20160414_160356

红色的屏幕. 检查传感器是对那种颜色比任何其他更敏感.

570feb6a1b811_IMG_20160414_160226

一个绿色的屏幕:

570feb6d3fb12_IMG_20160414_160318

最后蓝.

570feb6bbce1c_IMG_20160414_160245

虽然对红色的蓝色或绿色比更敏感, 传感器的工作原理. 也许一些校准有必要更好地工作. 我离开下面的链接与镜头的版本 (易趣) 和没有镜头 (DX):

用透镜 – http://www.ebay.com/sch/i.html?_nkw=tcs3200d+lens&_sacat=0

没有镜头 – http://www.dx.com/p/gy-31-tcs230-tcs3200-color-sensor-recognition-module-blue-black-216,448

关于阿德里亚诺

教授, 工程师和疯狂的中国产品买家.

一条评论

  1. 格特 - 扬

    您好阿德里亚诺,

    感谢您的帮助的文章.
    关于代码. 它似乎缺少一些字符?

    而 ((digitalRead(销) == 1) & (计数 < 32640)) {
    计数 ;

    Should this be "count++;"?

    而关于这件作品是什么: 如果 (计数 = = 32640) 返回计数 2;
    What's between "count" and "2"?

留言

您的电子邮件地址将不会发布. 标记必填的字段 *

*