首页

基于Arduino的颜色检测器

颜色传感器,顾名思义,是一种感知或检测颜色的设备。颜色传感器将使用外部发光方式(如白色led阵列),然后分析来自物体的反射光,以确定其颜色。

(adsense1)

颜色传感器将给出物体的精确颜色。颜色传感器有广泛的应用,如按颜色分类物体,质量控制系统,打印机颜色增强等。

在这个项目中,我们设计了一个简单的Arduino颜色传感器应用程序,它具有检测不同颜色的能力。为此,我们使用了TCS3200颜色传感器。下面是对颜色传感器的介绍,Arduino颜色传感器项目的电路图和工作原理。

线路图

Arduino颜色传感器电路

组件的要求

  • Arduino兆(在这里买
  • TCS3200 (RGB + Clear)颜色传感器模块
  • 案板(原型)
  • 电力供应
  • 连接电线

(adsense2)

请注意:我们用过Arduino兆在这个项目中,它有大量的I/O引脚,我们连接了许多设备,如TCS 3200彩色传感器,16X2液晶显示器和4个led。使用串行通信的简单传感器数据(串行终端上的传感器信息),可以使用简单的Arduino UNO。

颜色传感器简介

从技术上讲,颜色是我们想象出来的。当我们看到一个红苹果时,这意味着它反射了电磁光谱的特定波长(红的波长约为700纳米)。这种能量被眼睛吸收,根据某种化学反应,大脑认为特定波长是红色的。

对于计算机来说,区分不同颜色的传感器将有助于确定物体的颜色。我们将看到一个简单的颜色传感器使用一个光电阻(光依赖电阻- LDR)和两个不同的颜色对象,说红色和蓝色。

当我们把明亮的红光照射在这两个物体上时,红色的物体会反射光,而蓝色的物体会吸收光。因此,当红光同时照射在红色和蓝色物体上时,红色物体在LDR看来是最亮的,因为红色物体反射了大部分红光。

异地恋蓝色

同样,当明亮的蓝光照射在两个物体上时,蓝色的物体对传感器来说是最亮的。这种方法只是为了了解颜色传感器的工作情况,实际的结果可能并不准确。

异地恋红
像TCS3200这样的实用颜色传感器比这要复杂一些。TCS3200颜色传感器是一种可编程颜色传感器,它将色光转换为频率。传感器的输出频率与物体反射的光的强度成正比。

TCS3200颜色传感器模块具有RGB +清晰传感器,同时在板上嵌入4个明亮的白色led。TCS3200有一个8 x 8阵列的照片二极管,每个16用于红色过滤器,蓝色过滤器,绿色过滤器和透明(无过滤器)。

TCS3200颜色传感器的功能框图如下图所示。它由滤光片,光电二极管阵列,电流到频率转换器和最终方波输出组成,可以直接给一个微控制器。

颜色传感器框图 TSC3200颜色传感器IC是一个8引脚集成电路,带有SOC封装。下图为彩色传感器IC的引脚图,其中引脚1和引脚2 (S0和S1)为输出变频引脚。引脚3是输出使能引脚,是一个活跃的低引脚。引脚4为GND。

TCS3200销图

引脚5为VDD引脚,最大供电电压为5.5 V。引脚6是输出引脚,通过它我们可以得到方波输出。引脚7和8 (S2和S3)是光电二极管选择引脚。

引脚1,2 (S0, S1)和7,8 (S3, S4)在TCS3200颜色传感器中特别重要。S0和S1为输出变频管脚。有了这些引脚,输出方波的频率可以根据应用程序或所使用的微控制器进行缩放。

输出频率缩放的原因是不同的微控制器有不同的定时器配置,在微控制器的计数器功能可能有一些限制。下表显示了S0和S1不同组合下的输出缩放百分比。

S0 S1 输出频率缩放(f0) 典型的全面的频率
l l 断电 - - -
l H 2% 10 - 12千赫
H l 20% 100 - 120 KHz
H H 100% 500 - 600 KHz

S3和S4是光电二极管选择引脚。它们被用来选择与不同的滤色器(红,蓝,绿和清)相关联的不同的照片二极管。下表显示了不同类型的光二极管的S3和S4的不同组合。

S3和S4是光电二极管选择引脚。它们被用来选择与不同的滤色器(红,蓝,绿和清)相关联的不同的照片二极管。下表显示了不同类型的光二极管的S3和S4的不同组合。

S3 S4 光电二极管类型
l l 红色的
l H 蓝色的
H l 清晰的(没有过滤器)
H H 绿色

TCS 3200颜色传感器采用模块的形式,除了实际的TCS 3200颜色传感器外,还有所有组件,如头管脚,4个白色led,电阻和电容。下图显示了实时颜色传感器模块。

TCS3200色彩传感器

项目的运作情况

本项目使用Arduino开发了一个简单的颜色传感器。颜色传感器模块感知周围环境的颜色。这里对项目的工作进行了说明。

正如在颜色传感器部分的介绍中提到的,TCS3200颜色传感器有红色,蓝色,绿色和透明的过滤器。每种颜色的强度用频率表示。在Arduino中,我们通过对颜色传感器的S0和S1引脚应用HIGH,将输出频率刻度固定为100%。

我们必须使用颜色传感器上的S2和S3引脚来选择光二极管的类型,即红色,绿色或蓝色。每当选择特定的光电二极管时,Arduino的PULSEIN特性在连接到颜色传感器输出的引脚上被激活。

这将帮助我们计算输出信号的频率。对所有三种光二极管:R、G和b重复相同的过程。在所有情况下,使用PULSEIN特性测量频率,并显示在串行终端上。

此外,这些信息可以用来识别放置在传感器前面的颜色,并在LCD上显示其颜色,也可以点亮相应的LED。

代码

应用程序

  • 颜色传感器在图像处理、数字信号处理、物体检测、颜色识别等领域有着广泛的应用。
  • 在工业中,颜色传感器常用于根据颜色对物体进行分类。

推荐阅读:

12的反应

  1. 先生,我能把arduino mega换成arduino uno吗?你能给我看看代码吗?我需要你的答复,因为我将执行这个项目。

    1. 你好,
      是的。你可以用UNO替换Mega。但是你只能使用LCD显示器(用于显示颜色)或单独的led显示器。
      在代码中,根据不同的UNOs连接修改I/O引脚。

  2. 先生,这是一个非常好的项目!
    但是我想用arduino uno代替arduino mega,因为arduino mega的成本相当高....
    那么我们在电路图和代码中做了哪些改变??
    你能尽快给我代码,因为我正在实施这个项目

    谢谢你!

  3. 我可以把arduino mega换成arduino nano吗?我认为我只能被限制在LED灯作为指示器,这很好,我是新手,Nano是我现在能接触到的

  4. 嗨,先生,你有什么编码,如果传感器检测到红色,电机直流将停止,如果检测到绿色,它将停止

留下一个回复

您的电邮地址将不会公布。

Electronicshub图标
Baidu
map