RGB颜色传感器

RGB颜色传感器。传感器芯片不知道是TCS230,或是TCS3200。二者pinout及电气性能一样。左边的模块有8个引脚,LED常亮。S0, S1 默认上拉为高电平,/OE下拉低电平。S2, S3, OUT 三个引脚供单片机接口。如下:

照片中右边的模块有10个引脚,原理与8pin相同,只是多了一个LED控制引脚。默认LED点亮,接低电平熄灭:

S2, S3选择颜色通道,如下表。OUT输出50% duty方波,方波频率与光强成比例,规格书给出的范围为 10-20kHz(周期50-100us):

程序需要us级时钟。分别选择R、G、B通道,测量OUT方波周期/频率,可转换为 RGB三原色。实测方波周期在10-160us范围内,并且受环境光照条件等的影响。如下图,第一行为白色测量值(白平衡),接下来每2行为一种颜色的测量值及RGB转换值,分别为红色、绿色、蓝色、黄色。最后2行为白色测量值及RGB转换值:

转换算法如下。使用了白色校正,即以白色的RGB通道测量值分别为RGB三原色的上限,将测量值规范化到0-255范围内。测量值(原始值)为方波周期,单位为us。注意,频率的比值,等于周期的比值的倒数,因此,下面代码中的宏 _App_GetComponent() 用白色测量值除以待转换的测量值,而不是相反:

typedef struct {
    uint32_t red;
    uint32_t green;
    uint32_t blue;
} _App_Color;

#define _App_GetComponent(t, w) ( (t)>(w) ? (255 * (w) / (t)) : 255 )

void _App_ToRGB(_App_Color *raw, _App_Color *white) {
    raw->red = _App_GetComponent(raw->red, white->red);
    raw->green = _App_GetComponent(raw->green, white->green);
    raw->blue = _App_GetComponent(raw->blue, white->blue);
}

  

原文地址:https://www.cnblogs.com/vinccc/p/8322113.html

时间: 2024-09-30 19:44:58

RGB颜色传感器的相关文章

YL-64 颜色传感器

TCS3200颜色传感器是一款全彩的颜色检测器,包括了一块TAOS TCS3200RGB感应芯片和4个白光LED灯,TCS3200能在一定的范围内检测和测量几乎所有的可见光.它适合于色度计测量应用领域.比如彩色打印.医疗诊断.计算机彩色监视器校准以及油漆.纺织品.化妆品和印刷材料的过程控制. 通常所看到的物体颜色,实际上是物体表面吸收了照射到它上面的白光(日光)中的一部分有色成分,而反射出的另一部分有色光在人眼中的反应.白色是由各种频率的可见光混合在一起构成的,也就是说白光中包含着各种颜色的色光

颜色传感器TCS230及颜色识别电路(转)

摘要 TCS230是美国TAOS公司生产的一种可编程彩色光到频率的传感器.该传感器具有分辨率高.可编程的颜色选择与输出定标.单电源供电等特点:输出为数字量,可直接与微处理器连接.文中主要介绍TCS230的原理和应用,以及色光和白平衡的知识,并用一个实例说明TCS230识别颜色的过程. 关键词 TCS23 0颜色传感器 颜色识别 白平衡调整 引言 随着现代工业生产向高速化.自动化方向的发展,生产过程中长期以来由人眼起主导作用的颜色识别工作将越来越多地被相应的颜色传感器所替代.例如:图书馆使用颜色区

如何将24位RGB颜色转换16位RGB颜色

有许多朋友第一次使用16位彩色显示屏会遇到如何将24位RGB颜色转换为对应的16位RGB颜色的问题,通过查阅相关资料,就写一下其中的转换原理吧,希望对大家会有所帮助. 我们知道24位RGB是分别由8位红色,8位绿色以及8位蓝色组成: RRRRRRRR GGGGGGGG BBBBBBBB 例如:24位RGB红色表示方法为 11111111 00000000 00000000        (十六进制表示为:0xFF0000) 而对应的16位RGB颜色则是由5位红色,6位绿色以及5位红色组成: RR

iOS中RGB颜色转换

iOS中RGB常用的色值,同时可将对颜色的设置定义成宏,方便开发应用,如: // RGB颜色转换(16进制->10进制) #define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue 

关于RGB颜色

RGB色彩模式是工业界的一种颜色标准,通过红(Red).绿(Green).蓝(Blue)三种颜色搭配可以显示出非常丰富的色彩来.目前我们程序中看到的这种 RGB 其实也可以简单的当做 256 色(0~255)来看.总共能搭配出来的颜色有 256*256*256 = 16777216 种. 我们用最简单的方式来看到这个 RGB 颜色,当其值为 0 的时候,就没有该颜色,当其值为 255 的时候即纯色.这样每个颜色有 2 种状态来看的话,可以搭配出 8 个颜色,如下图:

UIColor设置RGB颜色16颜色进制的做法-使用storyboard和代码实现

如何使用代码和storyboard设置 颜色为16进制的? 我们在做真是的项目时常常是美工给我做好 效果图,标尺图我们再来 写UI的,当然这些标尺图中也包括 设置 颜色,一般美工给你的 颜色是 一个  RGB (124,123,124)类似的额 RGB 的颜色或者  FFFFFF  16进制的颜色,我们需要按照美工的要求去设置 这个颜色; 当然 最好的方法是使用storyboard来设置,最简答,最强大,省事! 如何设置? 看图: 如图,给一个label,点击红色框之内的,可以设置任意的 颜色

Android RGB颜色对照表

一  RGB颜色对照表: 注:内容来自http://rgb.phpddt.com/   里面有在线颜色摄取器 #FFFFFF   #FFFFF0   #FFFFE0   #FFFF00   #FFFAFA   #FFFAF0   #FFFACD   #FFF8DC   #FFF68F   #FFF5EE   #FFF0F5   #FFEFDB   #FFEFD5   #FFEC8B   #FFEBCD   #FFE7BA   #FFE4E1   #FFE4C4   #FFE4B5   #FFE1

RGB颜色中的参数是变量的时候,为什么要加上两个+号在左右?

<script> function draw(){ var c=document.getElementById("mycanvas"); var cxt=c.getContext("2d"); for(var i=0;i<12;i++){ for(var j=0;j<24;j++){ cxt.fillStyle="rgb(240,"+Math.floor(255-11.5*i)+","+Math.flo

RGB颜色查询对照表

RGB颜色查询对照表     因为兼容性问题,色阶板功能只能在IE浏览器中运行 RGB颜色对照表   #FFFFFF   #FFFFF0   #FFFFE0   #FFFF00   #FFFAFA   #FFFAF0   #FFFACD   #FFF8DC   #FFF68F   #FFF5EE   #FFF0F5   #FFEFDB   #FFEFD5   #FFEC8B   #FFEBCD   #FFE7BA   #FFE4E1   #FFE4C4   #FFE4B5   #FFE1FF