自制颜色传感器教程

电子说

1.3w人已加入

描述

耗材:

1x面包板

1x RGB LED(适用于12V RGB灯条的LED)

1x SFH 320光电晶体管

2x 470欧姆电阻

1x 240欧姆电阻

1x 10 Kohm电阻器

电线

Arduino(任何5V型号都可以工作)

步骤1:制作电路

颜色传感器

颜色传感器

颜色传感器

颜色传感器

接线图非常简单。

你可以在面包板上制作电路,或者如果你可以蚀刻或铣削电路板空白,当然,这将是更好的选择。

绿色和蓝色LED需要470欧姆,红色LED需要240欧姆。这是因为LED的工作电压不同。 LED必须全部以相同的亮度发光。

光电晶体管配有一个10k欧姆的下拉电阻。

就是这样。

唯一要记住的是晶体管直接放在LED旁边

步骤2:它是如何工作的?

设置简单,操作非常简单。 LED的颜色交替切换。首先是红色然后是绿色然后是蓝对于每种颜色,测量反射强度。例如,对于红色物体,红色的反射比其他两种颜色的反射强。对于紫色物体,红色和蓝色比绿色更强烈。剩下要做的就是通过Arduino的ADC读取模拟值,这样就可以得到物体的RGB值。

在正常光线下查看填充动物的例子,所有颜色都很正常。在红光的情况下,毛皮反射一点,绿色几乎是黑色,蓝色反射很多,这意味着紫罗兰具有高蓝色含量

为什么传感器如此快?光电晶体管的每种颜色的响应时间为14μs,这意味着所有颜色的响应时间为42μs。

如果计算f = 1/t,则得到23.8 KHz。这意味着在一秒钟内进行了23800次测量。

你的ADC从来没有这么快,他的性能达到了极限。

然而,通过给传感器更多的时间进行调整可以获得最佳效果,所以大约1 ms每种颜色,仍然意味着166赫兹。

为了最大限度地降低传感器的噪音,您应该进行大约5次测量并计算这些测量的算术平均值。

步骤3:将其连接到您的Arduino和Use It

颜色传感器

要将传感器连接到Arduino,你应该有四个空闲引脚。

gnd - 》 gnd

5V - 》 5V

输出 - 》 A0

r - 》 2

b - 》 3

g - 》 4

现在将代码复制到Arduino IDE中并进行编译。

这是一个没有降噪的极简代码(步骤2中描述)。

#include

int sensor = A0;

int red = 2;

int blue = 3;

int green = 4;

int colour[] = {0,0,0};

char text[20];

int n =0;

void setup() {

// put your setup code here, to run once:

pinMode(red,OUTPUT);

pinMode(blue,OUTPUT);

pinMode(green,OUTPUT);

Serial.begin(9600);

} void loop() {

// put your main code here, to run repeatedly:

detect();

n=sprintf(text,“r %d g %d b %d ” ,colour[1],colour[2],colour[3]);

Serial.write(text,n);

delay(1000);

} void detect() {

digitalWrite(red, HIGH);

delay(1);

colour[1]=analogRead(sensor);

digitalWrite(red, LOW);

delay(1);

digitalWrite(green, HIGH);

delay(1);

colour[2]=analogRead(sensor);

digitalWrite(green, LOW);

delay(1);

digitalWrite(blue, HIGH);

delay(1);

colour[3]=analogRead(sensor);

digitalWrite(blue, LOW);

delay(1);

colour[1]=colour[1]/4;

colour[2]=colour[2]/4;

colour[3]=colour[3]/4;

}

上传到您的arduino后,您必须启动串行监视器才能看到RGB值。

传感器最佳工作距离在0.5到1厘米之间。在更远的距离,颜色变得更暗。该传感器是色彩检测任务和寻线仪的理想选择。您可以将PCB和部件涂成哑光黑色,以减少反射。不要忘记让组件的窗口自由。

这个传感器不是原型。该传感器用于德国南符腾堡州学生研究中心的Robocup德国救援队。为此,我构建了一个带有综合评估的8倍传感器。他将已经完成并校准的RGB值发送到中央处理器。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分