当前位置:
文档之家› 创意智能垃圾分类机器人(颜色传感器)
创意智能垃圾分类机器人(颜色传感器)
颜色传感器
序号
1 2 3 4 5 6 7 8
引脚定义
GND LED S0 S1 VCC OUT S2 S3
引脚说明
接地 白光LED灯引脚 比例因子选择输入脚 比例因子选择输入脚
5伏电源 输出端 输出频率选择输入脚 输出频率选择输入脚
红蓝绿滤波器选通对应表 比例因子设置对应表
颜色传感器
颜色传感器模块安装示意图
颜色传感器白平衡调整示意图
白平衡颜色传感器R、G、B值示意图
(1)在颜色传感器前放置一个色块, 以蓝色色块为例:
(2)通过串口监视器,显示数值如右图
• 说明: 如果传感器正常工作,将来发现 蓝色数值明显大于其他两个值(红、绿)
重复步骤三
• 当传感器前是绿色色块时:
• 当传感器前是红色色块时:
绿色对应的G数值 比红色、蓝色两种 颜色的值大
Serial.print("G");
//在串口上输出字符“G”
Serial.println(mysensor.g_array[2]); //输出颜色传感器感应到的色块对应的绿色的值
Serial.println("END"); 的输出
//R、G、B三个数值输出完成后,输出END表示结束一组数据
delay(1000);
mysensor.Test(); //test()函数为库里的一个函数,其作用是计算出RGB的比例因子
}
颜色传感器测试程序
颜色传感器测试程序
void loop(){
mysensor.Get();
//获取颜色传感器所识别的RGB的三个参数
Serial.print("Rl.println(mysensor.g_array[0]); // 输出颜色传感器感应到的色块对应的红色的值
Serial.print("B");
//在串口上输出字符“B”
Serial.println(mysensor.g_array[1]); //输出颜色传感器感应到的色块对应的蓝色的值
• 通常所看到的物体颜色,实际上是物体表面吸收了照射到它上面 的白光(日光)中的一部分有色成分,而反射出的另一部分有色光 在人眼中的反应。
• 白色是由各种频率的可见光混合在一起构成的,也就是说白光中 包含着各种颜色的色光(如红R、黄Y、绿G、青V、蓝B、紫P)。
• 根据德国物理学家赫姆霍兹(Helinholtz)的三原色理论可知,各 种颜色是由不同比例的三原色(红、绿、蓝)混合而成的。
颜色传感器测试
颜色传感器
• 利用三原色感应原理
(1)当知道构成各种颜色的三原色的值,就能够知道所测 试物体的颜色;
(2)当选定一个颜色滤波器时,它只允许某种特定的原色 通过,阻止其它原色的通过。
• 举例说明:例如当选择红色滤波器时,入射光中只有红色 可以通过,蓝色和绿色都被阻止,这样就可以得到红色光 的光强;同理,选择其它的滤波器,就可以得到蓝色光和 绿色光的光强。通过这三个光强值,就可以分析出反射到 颜色传感器上的光的颜色。
红色对应的G数值 比绿色、蓝色两种 颜色的值大
• 如果三种色块在测试时,对应色块的颜色值明显大于其他两种 颜色值的话,说明颜色传感器能正常工作了。
如果采用以上方法对颜色传感器测试没有成功,那么可从 以下几方面来查找原因:
• 第一步:检查硬件连接,即检查颜色传感器与机器人接 口板和控制板的连线是否正确,并确保正常供电;
• 第二步:检查程序代码,即检查颜色传感器的测试代码 是否正确,特别注意颜色传感器的引脚定义;
• 第三步:检查测试程序是否成功下载到arduino板上; • 第四步:如果前面的测试都没有问题,那么可以初步判
颜色传感器模块安装完成图
序号 arduino UNO 颜色传感器模块
引脚
引脚
1
0
S0
2
1
S1
3
2
OUT
4
3
S2
5
4
S3
颜色传感器模块与控制板连线图
注意:只需接一组VCC和GND即可, 另一组可以不接。LED可以不接。
6
GND
GND
a7rduino UNOV控CC制板与颜色传感V器CC连线表
从理论上讲,白色是由等量的红色、绿 色和蓝色混合构成,但在实际应用中,白 色中的三原色并不完全相等,并且对 TCS3200的光传感器来说,它对红、绿、 蓝这三种基本色的敏感性并不相同,从而 导致TCS3200的RGB输出并不相等,因此 在测试前必须对颜色传感器进行白平衡校 正,通过白平衡校正得到RGB比例因子, 使得TCS2300对所检测的“白色”中的三 原色相等。
//延时1秒
}
• 单独设计一个测试颜色传感器 的程序,将该程序复制到 arduino工作区间;
• 程序上传到arduino板后,打开 串口监视器,如右图。
(1)将1张A4白纸(如没有白纸,可尝试用手 掌代替)放到机器人颜色传感器前面,如左图。
( 2 ) 从 arduino 串 口 监 视 器 获 得 R ( 红 ) 、 G (绿)、B(蓝)值,其中3种颜色的值相近,且 数值都在255附近,如右图。
程序下载到机器人后,启动机器人。 方法一:用一张白色的A4纸放在颜 色传感器前端,当颜色传感器识别到 后,拿走该A4纸; 方法二:用手遮挡在颜色传感器前 端,当颜色传感器识别到手后,拿开 手。
导入库:
把右图中的5个库函数文件 夹复制到对应arduino目录 下的libraries目录下。
#include "ColSensor.h"
}
在颜色传感器测试过程中,机器人
void setup(){ Serial.begin(9600); //设置波特率为9600
arduino板的下载线要一直与电脑相连。
mysensor.Mode(); //初始化颜色传感器的引脚口
attachInterrupt(0,Counter,RISING); // (外部中断函数)0;对应的0号引脚;counter:中断时要 执行的函数;RISING:表示电平由低电平变为高电平时触发;
ColSensor mysensor(0, 1, 3, 4, 2, 10); //颜色传感器在板上所对应的引脚口
void Counter(){
mysensor.g_count++; // 计算1s内的脉冲数,因为对于TCS3200颜色传感器来说,其对颜色的识别 其实就是通过计算1S内传感器输出的脉冲数的比较、计算