引言 ........................................................ 3 1 方案选择 ...................................................3
1.1 设计要求 ................................................................ 3 1.2 系统方案设计 ............................................................ 3 1.3 方案论证及确定 .......................................................... 4 1.4 TCS3200D芯片介绍 ....................................................... 5 1.4.1 TCS3200D的主要特点 ...................................................................................................... 5 1.4.2 TCS3200D的引脚功能 ...................................................................................................... 6 1.5 TCS3200D识别颜色原理 ................................................... 6 1.5.1 三原色的感应原理 .............................................................................................................. 6 1.5.2 TCS3200D识别颜色的原理 .............................................................................................. 6 1.5.3 白平衡和颜色识别原理 ...................................................................................................... 7 1.6 TCS3200D应用设计 ....................................................... 7 1.6.1 光电二极管的选择 .............................................................................................................. 7 1.6.2 输出频率分频设定 .............................................................................................................. 8 1.6.3 频率测量 .............................................................................................................................. 8
2 电子线路设计与实现 ........................................ 8
2.1 主控电路部分 ............................................................ 8 2.2 TCS3200D控制电路部分 ................................................... 9 2.3 数码显示部分 ............................................................ 9 2.4 颜色显示部分电路 ....................................................... 10 2.5 滤波、退耦部分电路 ..................................................... 10
3 制作电路板 ............................................... 10 4 软件模块设计 ............................................. 11
4.1 主要源代码分析 ......................................................... 11
5 控制系统调试 ............................................. 12
5.1硬件部分调试 ........................................................... 12 5.2软件部分调试 ........................................................... 12 5.3综合调试 ............................................................... 12
6 总结 ..................................................... 13 谢 辞 ...................................... 错误!未定义书签。 参考文献.................................................... 14 附 录1 .................................................... 15
附 录2 .................................................... 16 附 录3 ..................................... 错误!未定义书签。
引言
传感器(SENSOR)是由敏感元件和转换元件组成的可将电量或非电量转换为可测量的电量的检测装置。如果把计算机比作人的大脑,通讯是神经网络,那么传感器就是人的感觉器官,它所采集的信息对于计算机大脑的思维及处理结果具有决定性的意义。传感器是信息采集系统的首要部件,是实现现代化测量和自动控制的主要环节,是现代信息产业的源头,又是信息社会赖以存在和发展的物质与技术基础。
在信息技术不断发展,人类文明不断进步的时代,越来越多的电子产品开始占们的日常工作和生活。随着现代工业生产向高速化、自动化方向的发展,生产过程中长期以来由人眼起主导作用的颜色识别工作将越来越多地被相应的颜色传感器所替代。例如:图书馆使用颜色区分对文献进行分类,能够极大地提高排架管理和统计等工作;在包装行业,产品包装利用不同的颜色或装磺来表示其不同的性质或用途。目前的颜色传感器通常是在独立的光电二极管上覆盖经过修正的红、绿、篮滤光片,然后对输出信号进行相应的处理,才能将颜色信号识别出来;有的将两者集合起来,但是输出模拟信号,需要一个A/D电路进行采样,对该信号进一步处理,才能进行识别,增加了电路的复杂性,并且存在较大的识别误差,影响了识别的效果。
本次设计的目的就是让我们在理论学习的基础上,通过完成一个传感器件的设计,使我们学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排版调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高。
1 方案选择
1.1 设计要求
本次设计的是基于TCS3200D的颜色传感器,用单片机控制实现一个颜色传感器。能够
识别出红、绿、蓝三种颜色。
发挥部分:通过数码显示三种颜色的占空比。实现红、绿、蓝等多种颜色的识别。 1.2 系统方案设计
系统框图如下1.1所示:
TCS3200D传感器 控制电路 显示电路 AT89S52 图1.2.1 系统框图
识别颜色方法多种多样,颜色传感器是决定技术指标的关键元件,这次实训采用TCS3200D作为颜色传感,通过AT89S52来控制显示电路部分,通过程序来实现颜色的识别,能够识别出红、绿、蓝三种颜色。并通过数码显示出不同的占空比。 1.3 方案论证及确定
用以AT89S52为核心的单片机控制系统方案,AT89S52具有较大程序存储空间和数据存储空间能满足用户的需要易于实现功能拓展,AT89S52内部置有ISP在线编程技术可以应用下载线直接连到计算机的并口相连就可烧写程序,可代替市场上专用的程序烧写器,既经济又实用,从而提高了系统性价比。通过单片机来控制颜色的识别,并由TCS3200D颜色传感器感应到不同的颜色传送到系统,进行区别后识别输出,并通过数码部分显示出不同的占空比,从而实现颜色的识别。
主控电路如图1.3.1所示:
图1.3.1 TCS3200D颜色识别接口电路及软件流程
基于分析,采用AT89S52和TCS3200D设计了一个颜色识别传感器。该装置具有结构简单、识别精度和效率高的特点,并且能够和上位机通信,以将识别的结果实时传送给上位机。实际使用中通过读取AT89S52计数器的值,就可以分别计算出TCS3200D的三种输出频率,进而确定R、G、B值及颜色。传感器TCS3200可以通过调节滤波器的颜色, 使特定的原色通过, 阻止其他原色通过, 从而测出一种光中的红绿蓝三色的成分。例如, 当选择红色
滤波器时, 得到的就是红色光, 而蓝绿光则不能通过, 此时得到的就是红色光在此种颜色中的含量。AT89S52通过控制传感器的使能脚使其中某路传感器工作, 通过P1. 1~ P1. 2,P1. 4~ P1. 5选择需要的光电二极管及相应的输出频率比例系数。MCU 可使用内部振荡器, 从而能够进一步的简化电路。(方案中只是给出选择性的参考,在电路设计中按自己的想法去设计,并用不同的串口连接) 1.4 TCS3200D芯片介绍
图1.4.1 TCS3200芯片管脚图
TCS3200采用8引脚的S0IC表面贴装式封装,在单一芯片上集成有64个光电二极管。这些二极管共分为四种类型。其中l6个光电二极管带有红色滤波器,16个光电二极管带有绿色滤波器,16个光电二极管带有蓝色滤波器,其余16个不带有任何滤波器,可以透过全部的光信息。这些光电二极管在 片内是交叉排列的,能够最大限度地减少入射光幅射的不均匀性,从而增加颜色识别的精确度;另一方面,相同颜色的l6个光电二极管足并联连接的,均匀分布在二极管阵列中,可以消除颜色的位置误差。工作时。通过两个可编程的引脚来动态选择所需要的滤波器。该传感器的典型输出频率范围扶2H~ 500kHz,用户还可以通过两个可编程引脚来选择l00%、2O%或2%的输出比例因子,或电源关断模式。输出比例因子使传感器的输出能够适应不同的测量范围,提高了它的适应能力。例如,当使用低速的频率计数器时,就可以选择小的定标值,使TCS3200的输出频率和计数器相匹配。 1.4.1 TCS3200D的主要特点
可完成高分辨率的光照度/频率转换; 色彩和满度输出频率可编程调整; 可直接与微处理器通讯;
单电源工作,工作电压范围:2.7V~5.5V; 具备掉电恢复功能;
50kHz时非线性误差的典型值为0.2%; 稳定的200ppm/℃的温度系数。
1.4.2 TCS3200D的引脚功能
TCS3200D的引脚排列如图1.4.1所示,各管脚的功能描述见表1所列。
S0、S1用于选择输出比例因子或电源关断模式;S2、S3用于选择滤波器的类型;OE是频率输出使能引脚,可以控制输出的状态,当有多个芯片引脚共用微处理器的输入引脚时,也可以作为片选信号;OUT是频率输出引脚,GND是芯片的接地引脚,VDD为芯片提供工作电压。
表1 TCS3200D管脚功能
引 脚 号 1 2 3 4 5 6 7 8 符 号 S0 S1 OE GND VDD OUT S2 S3 I 类 型 I I I O I 端 功 能 说 明 输出频率分频系数选择输入端 输入频率使能端。低电平有效 电源地 电源电压 输出频率(fo) 光电二极管类型选择输入1.5 TCS3200D识别颜色原理 1.5.1 三原色的感应原理
通常所看到的物体颜色,实际上是物体表面吸收了照射到它上面的白光(日光)中的一部分有色成分,而反射出的另一部分有色光在人眼中的反应。白色是由各种频率的可见光混合在一起构成的,也就是说白光中包含着各种颜色的色光(如红R、黄Y、绿G、青V、蓝B、紫P)。根据德国物理学家赫姆霍兹(Helinholtz)的三原色理论可知,各种颜色是由不同比例的三原色(红、绿、蓝)混合而成的。 1.5.2 TCS3200D识别颜色的原理
由三原色感应原理可知,如果知道构成各种颜色的三原色的值,就能够知道所测试物体的颜色。对于TCS3200D来说,当选定一个颜色滤波器时,它只允许某种特定的原色通过,阻止其他原色的通过。例如:当选择红色滤波器时,入射光中只有红色可以通过,蓝色和绿色都被阻止,这样就可以得到红色光的光强;同时,选择其他的滤波器,就可以得到蓝色光和绿色光的光强。通过这三个值,就可以分析投射到TCS3200D传感器上的光的颜色。
1.5.3 白平衡和颜色识别原理
白平衡就是告诉系统什么是白色。从理论上讲,白色是由等量的红色、绿色和蓝色混合而成的;但实际上,白色中的三原色并不完全相等,并且对于TCS3200D的光传感器来说,它对这三种基本色的敏感性是不相同的,导致TCS3200D的RGB输出并不相等,因此在测试前必须进行白平衡调整,使得TCS3200D对所检测的\"白色\"中的三原色是相等的。进行白平衡调整是为后续的颜色识别作准备。在本装置中,白平衡调整的具体步骤和方法如下:将空的试管放置在传感器的上方,试管的上方放置一个白色的光源,使入射光能够穿过试管照射到TCS3200D上;根据前面所介绍的方法,依次选通红色、绿色和蓝色滤波器,分别测得红色、绿色和蓝色的值,然后就可计算出需要的3个调整参数。
当TCS3200D识别颜色时,就用这3个参数对所测颜色的R、G和B进行调整。这里有两种方法来计算调整参数:1、依次选通三颜色的滤波器,然后对TCS3200D的输出脉冲依次进行计数。当计数到255时停止计数,分别计算每个通道所用的时间,这些时间对应于实际测试时TCS3200D每种滤波器所采用的时间基准,在这段时间内所测得的脉冲数就是所对应的R、G和B的值。2、设置定时器为一固定时间 (例如10ms),然后选通三种颜色的滤波器,计算这段时间内TCS3200D的输出脉冲数,计算出一个比例因子,通过这个比例因子可以把这些脉冲数变为255。在实际测试时,室外同样的时间进行计数,把测得的脉冲数再乘以求得的比例因子,然后就可以得到所对应的R、G和B的值。 1.6 TCS3200D应用设计 1.6.1 光电二极管的选择
光电二极管的类型(蓝色、绿色、红色、清除)选择可通过控制两个逻辑输入S2 和S3来实现,具体方法如表2所列。
表2 光电二极管类型选择
S2 L L H H S3 L H L H 表3 输出频率分频比例选择
S0 L L H S1 L H L
光电二极管类型 红色 蓝色 清除(无滤波器) 绿色 输出频率分频比例 掉电 2% 20% H H 100% 当入射光投射到TCS3200D上时,通过光电二极管控制引脚S2、s3的不同组合,可以选择不同的滤波器;经过电流到频率转换器后输出不同频率的方波(占空比是5O%),不同的颜色和光强对应不同频率的方波;还可以通过输出定标控制引脚S0、S1选择不同的输出比例因子,对输出频率范围进行调整,以适应不同的需求。 1.6.2 输出频率分频设定
输出频率分频比由两个逻辑输入S0和S1控制,如表3所列。内部光/频率转换器产生一个固定脉冲宽度的脉冲串。输出频率的分频通过将转换器脉冲串输出连接到一连串的分频器来实现,从而使输出为占空比50%。
在任一S0、S1、S2、S3和OE线转换之后,输出分频计数寄存器都将在下一个主频率脉冲出现时被清零。随后在主频率脉冲上输出变为高电平,以开始新的有效周期。这样一来将缩小输入线上变换之间的时间延迟,并产生新的输出周期。一个输入编程变化或一个光阶变化的响应时间等于一个新的频率周期加1μs。分频输出通过选定的分频系数来改变满度频率和暗频率。传感器对输出频率的分频功能使输出范围在采用多种测量方法时都可达到最佳。采用小分频系数的输出可用于仅需低频计数的场合(如低成本微处理器)或使用周期测量技术的场合。 1.6.3 频率测量
在设计频率测量电路时,接口和测量技术的选择取决于期望的分辨率和数据采集速率。采用周期测量技术可获得最大的数据采集速率。输出数据以两倍输出频率的速率进行采集,对满量程输出可以每毫秒一个数据点的速率进行采集。周期测量要求使用快速参考时钟,此参考时钟带有与其速率直接相关的可用分辨率。对于特定的时钟速率,输出分频可用于提高分辨率,或在光输入改变时使分辨率最大化。周期测量用于快速测量变化的光电平或进行连续光源的测量。
使用频率测量、脉冲计数或综合技术可获得最大的分辨率和精度。频率测量具有更多的优点,如对平均随机输出和光信号中的噪声与电源噪声导致的高频变化的测量。分辨率主要受可用计数寄存器和允许测量时间的限制。频率测量非常适于缓慢变化或连续的光信息,并且适于读取超过短周期定时的平均光信息。综合技术用于测量暴露物和出现在超过给定定时周期区域的光脉冲的数量。
2 电子线路设计与实现
2.1 主控电路部分
图2.1.1 单片机主控电路
该单片机系统采用AT89S52单片机,使用片内ROM和RAM。如图2.1.1所示连接少量的外围元件即可让单片机正常工作。 2.2 TCS3200D控制电路部分
图2.2.1 TCS3200D控制电路部分
TCS3200D控制电路部分,主要通过三极管(8550)进行开关控制兼驱动,采用TCS3200D芯片可以很方便地实现它与单机的接口,而且占用的I/0口少、控制操作也方便,并通过Q8550来驱动。因为Q8550是低电压、大电流、小信号的PNP型三极管。 2.3 数码显示部分
图2.3.1 数码显示部分
数码显示部分的电路如图2.3.1所示,单片机通过读取TCS3200D颜色传感器识别出来的颜色显示出颜色的RGB值。在电路中使用了6个共阳数码显示。 2.4 颜色显示部分电路
图2.4.1 颜色显示部分
颜色显示部分采用高亮度二极管来完成,当颜色传感器TCS3200D识别出RBG的颜色时,通过单片机控制,发光二极管来显示其感应到的是RBG中的那一种颜色,图中有五种颜色显示。其中电阻的阻值是通过计算得出,流过发光二极管电流2~8mA这样,LED管降0.7v, 通过计算而得出一个范围值。 2.5 滤波、退耦部分电路
图2.5.1 滤波、退耦部分电路
这部分电路是放在电源输入的地方和芯片供电引脚的地方 ,以提高电路的稳定性和抗干扰能力。滤波电容用来滤除干扰频率,退耦电路能够有效的消除电路网络之间的寄生耦合,以有效去除电源上的毛刺的影响并减少在印制板上的电源环路的辐射。
3 制作电路板
画好电路原理图、PCB版图,再进行做电路板的步骤:转印、腐蚀、打孔、焊元件(具体简略)。
4 软件模块设计
对单片机的开发来说软件是必不可少的。只有软硬结合才能发挥出单片机的强大功能。本软件模块根据实际功能需求实现单片机对颜色传感器的控制过程。 4.1 主要源代码分析 数码显示部分程序代码:
void show_num(int show_num,char Color_type) {
P0=0xff;
P0=~shuma[Color_type/10]; //”0” P2=wei[0]; delay(2);
}
char wei[]={0x80,0x40,0x20,0x10,0x08,0x04}; //位选 char i=0;
for(i=5;i>=3;i--) { }
P0=0xff;
P0=~shuma[10]; //---- P2=wei[2]; delay(2);
P0=0xff;
P0=~shuma[Color_type%10]; //0`~9 P2=wei[1]; delay(2);
P0=0xff; P2=wei[i]; delay(2); show_num/=10;
P0=~shuma[show_num%10];
char shuma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};//
此程序段根据数码输出端口的状态,改变P0口的值从而让不同的数码显示不同的部分功能 ,从而实现RGB的值和识别多少种颜色的数码显示。
5 控制系统调试
颜色传感器的控制系统设计与制作好之后就到了最后的调试了,只有通过实践、实际的调测、调试之后才能使电路工作在最佳的状态,下面分三个部份讲述实际的调试过程。 5.1硬件部分调试
所需调试议器:万用表、直流稳压源。
电路板做好后先用万用表检测电源两端是否存在短路。然后先不放芯片进入集成座中,测量各个芯片供电引脚处电压是否正常。这样可以保证芯片的安全。否则接错线或线路板有问题将很容易使芯片烧毁。若线路板一切正常即可把各芯片接入。在调试之前先确定电路是否正确连接,能否正常通电。在确定好后,进行调试测量。在测量时是使用+5V电源,按正确示图接好电源,如果把电源反接,则会把芯片烧坏。
确定好电源后。检测数码部分,看数码管的段和位是否正常显示。不能正常显示,检测看是不是有些线没有连接或者是接反了,我的数码管部分一接上电源,用万用表检测就能正常显示,说明自己的连线和焊工是没有问题的。其次是检测发光二极管,看能否正常发光,可以用万用表检测看它是否正确连接,检查结果显示二极管能正常运行。在整个硬件部分调试是顺利进行的,因为前面做过认真的检查,到硬件调试时就减少了很多工作。所以在硬件部分的调试所遇到的问题不大,都能很快的解决。 5.2软件部分调试
在硬件没做好之前可通过仿真方式对软件进行调试。本此实训使用PROTEUS软件对单片机程序进行了仿真调试,其主要目的是确保软件在逻辑上,及实现上没有错误,或修正软件上的错误。然后通过仿真的按键开关看是否能够改变单片机对控制信号的输出。当一切就绪后即可进入最后的综合调试了。 5.3综合调试
将电源线接入电路板,接好电机,用串口线将单片机与PC连接。打开电源后通过串口向单片机下载对应的软件。然后脱机运行,通过按对应的按键看是否实现了对应的功能:颜色传感器的四个高亮度白光二极管是否正常发光,能说明这部分的软件没有问题。如若不能,则查找对应实现模块的程序代码找出错误所在。然后更新单片机里的程序,再进行测试。当颜色传感器的感应部分功能均实现后。加入RBG部分程序代码,重新生成.HEX文件后下载到单片机中,看那几个发光二极管能否正常发光。若不能或效果不佳则要修改程序,使其达到最优。完成以上步骤后加入数码控制部分的代码。重新生成.HEX文件后下载
到单片机中。当数码能正常显示,则说明这部分的软件是没有问题的。若不能则找出原因所在进行修正。最后通过按键的功能来控制各部分的功能,这部分的代码是用选择的方式来实现。本次调试过程比较顺利,几乎一次通过。但在调试中,刚开始转换时是半自动的,通过后面代码的修改,改为全自动的,但在换颜色板时还是通过按键来实现。
6 总结
在为期两周的传感器实训里,我学到了很多以前没有学到的或学了但没有真正掌握的知识,对有关传感器的知识的理解有了很大的提高,特别是对颜色传感器这一部分的知识的了解并掌握更多了。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才是真正的掌握了知识,从而提高自己的实际动手能力和独立思考的能力。更重要的是在实训过程中所学到知识是平时我们很少去接触的东西,实训中学到的东西,比以往所学多了些,并且有些知识它在书本上是学不来的,一定要自己实际去做了,在实践中才学得到。经过这此实训对我往后的学习有了很大的帮助。
参考文献
[1] 刘修文主编.新编电子控制电路.北京:机械工业出版社,2006 [2] 黄贤武编著.传感器原理与应用.桂林:高等教育出版社,2007 [3] 刘瑄编著.单片机有效值转换器. 机械工业出版社,2008 [4] 刘军编著.单片机原理与接口技术.华东理工大学出版社,2008
[5] 于彤编著. 传感器原理及应用,项目式教学.北京:机械工业出版社,2007.11 [6] (日)松井邦彦著.梁瑞林译. 传感器应用技巧141例.北京:科学出版社,2005 [7] 陈尔绍编著. 传感器实用装置制作集锦.北京:人民邮电出版社,2001.10 [8] 刘少强,张靖编著. 传感器设计与应用实例. 北京:中国电力出版社,2008 [9] 黄贤武,郑筱霞编著. 传感器原理与应用.成都:电子科技大学出版社,2004.3 [10]赵亮,侯国锐编著.单片机C语言编程与实例.北京人民邮电出版社,2003.
[11]胡建民编著.颜色传感器TCS3200及颜色识别电路[J].单片机与嵌入式系统应用2006.
[12]陆徐平,许耀良,李渝曾编著.基于TCS3200的新型双路颜色传感器的研制[J].电子技术应用,2007.
附 录1
颜色传感器设计原理图
附录图1 颜色传感器设计原理图
附 录2
附录图2 程序流程图
程序流程图主要分为系统初始化程序、白平衡子程序、颜色采集子程序、数码显示子程序。在进行颜色采集前,需要进行白平衡调整。所谓白平衡调整就是要使得白色光中的三基色的含量相等。在调整时可以分别选通三种颜色的滤波器, 测得红色、绿色和蓝色的值, 然后就可计算出需要的3个调整参数。在进行数据采集的过程中, 采集的是频率信号, 可以有两种可行的采集方法: 一是对传感器输出的脉冲进行计数, 当计数到一定数量时停止计数, 计算这个过程所用的时间; 二是可以设定一定的时间, 在这个时间段中对传感器输出的脉冲进行计数。通过以上两种方式得到的数据可通过串口传送到上位机, 上位机亦可通过命令的发送控制所需采集的点。
因篇幅问题不能全部显示,请点此查看更多更全内容