標題: TCS3200顏色傳感器配套資料,含調(diào)試程序原理圖,結(jié)構(gòu)圖 [打印本頁]

作者: 菜鳥YGC    時間: 2017-4-7 11:01
標題: TCS3200顏色傳感器配套資料,含調(diào)試程序原理圖,結(jié)構(gòu)圖
這次課程設(shè)計主要用的TCS3200顏色傳感器,附件里面有傳感器的原理,結(jié)構(gòu)圖,調(diào)試例程

TCS3200顏色傳感器簡介:


TCS3200顏色傳感模塊電路及實驗電路圖:





控制板是通用型的,可以控制語音模塊 、超聲波模塊、AD模塊等,如果只是顏色傳感器用,AT24C01部分、按鍵部分可以不焊接;
超聲波控制板電路原理圖:


51單片機源程序:
  1. /*模塊的使用方法:把板距離白紙2CM處開機,使輸出的數(shù)據(jù)位FFFFFFF(白平衡),接下來就可以正常使用
  2. 實現(xiàn)功能:對顏色傳感器輸出RGB
  3. 使用芯片:AT89S52 或者 STC89C52 或AT89S51 STC89C51
  4. 晶振:12MHZ
  5. 編譯環(huán)境:Keil
  6. 作者:zhengzhongxign39*/
  7. #include <reg52.h>
  8. #define uchar unsigned char
  9. #define uint  unsigned int
  10. //==============LCD1602接口連接方法=====================
  11. /*-----------------------------------------------------
  12.        |DB0-----P0.0 | DB4-----P0.4 | RW-------P2.3    |
  13.        |DB1-----P0.1 | DB5-----P0.5 | RS-------P2.4    |
  14.        |DB2-----P0.2 | DB6-----P0.6 | E--------P2.2    |
  15.        |DB3-----P0.3 | DB7-----P0.7 |
  16.     ---------------------------------------------------*/
  17. //================================================*/              
  18. #define LCM_Data     P0    //LCD1602數(shù)據(jù)接口
  19. #define Busy         0x80   //用于檢測LCM狀態(tài)字中的Busy標識
  20. sbit    LCM_RW     = P2^3;  //讀寫控制輸入端,LCD1602的第五腳
  21. sbit    LCM_RS     = P2^4;  //寄存器選擇輸入端,LCD1602的第四腳
  22. sbit    LCM_E      = P2^2;  //使能信號輸入端,LCD1602的第6腳

  23. //=================顏色傳感模塊連接=====================
  24. /*-----------------------------------------------------
  25.        |EO-----GND
  26.        |S0-----VCC | S2-----P2.0 | OUT-------P3.5
  27.        |S1-----VCC | S3-----P2.1 |
  28.   ---------------------------------------------------*/
  29. sbit    tcs230_s2=P2^0;//TCS230 S2接單片機P2.0
  30. sbit    tcs230_s3=P2^1;//TCS230 S3接單片機P2.1
  31. sbit    tcs230_en=P3^0; //TCS230 EN(E0)接GND
  32. //**************函數(shù)聲明***************************************
  33. void    WriteDataLCM                (uchar WDLCM);//LCD模塊寫數(shù)據(jù)
  34. void    WriteCommandLCM        (uchar WCLCM,BuysC); //LCD模塊寫指令
  35. uchar   ReadStatusLCM(void);//讀LCD模塊的忙標
  36. void    DisplayOneChar(uchar X,uchar Y,uchar ASCII);//在第X+1行的第Y+1位置顯示一個字符
  37. void    LCMInit(void);//LCD初始
  38. void    DelayMs(uint Ms);//1MS基準延時程序
  39. void    baipingheng();//白平衡子程序
  40. void    celiang();//實際顏色程序
  41. uint    ryz,gyz,byz;//分別定義紅色因子 綠色因子 藍色因子
  42. uint    rb,gb,bb;//RGB值
  43. uchar   tab1[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
  44. //***********************主程序******************************
  45. main()   
  46. {   
  47.    TMOD=0x51;//設(shè)定T0以工作方式1定時10毫秒
  48.    LCMInit();//LCD初始
  49.    baipingheng();//上電時先白平衡一次
  50.    while(1)
  51.    {
  52.        celiang();//顏色測試
  53.        DisplayOneChar(0, 0,'R');//以十進制顯示RGB中紅色的分值
  54.        DisplayOneChar(0, 1, rb/100+0x30); //顯示百位數(shù)據(jù)
  55.        DisplayOneChar(0, 2, rb/10%10+0x30);//顯示十位數(shù)據(jù)
  56.        DisplayOneChar(0, 3, rb%10+0x30);//顯示個位數(shù)據(jù)
  57.        DisplayOneChar(0, 5,'G');//以十進制顯示RGB中綠色的分值
  58.        DisplayOneChar(0, 6, gb/100+0x30); //顯示百位數(shù)據(jù)
  59.        DisplayOneChar(0, 7, gb/10%10+0x30);
  60.        DisplayOneChar(0, 8, gb%10+0x30);
  61.        DisplayOneChar(0, 10,'B');//以十進制顯示RGB中藍色的分值
  62.        DisplayOneChar(0, 11, bb/100+0x30);
  63.        DisplayOneChar(0, 12, bb/10%10+0x30);
  64.        DisplayOneChar(0, 13, bb%10+0x30);
  65.        //*****在LCD1602的第二行以16進制顯示RGB*******************
  66.        DisplayOneChar(1, 1, tab1[rb/16]);
  67.        DisplayOneChar(1, 2, tab1[rb%16]);
  68.        DisplayOneChar(1, 3, 'H');
  69.        DisplayOneChar(1, 6, tab1[gb/16]);
  70.        DisplayOneChar(1, 7, tab1[rb%16]);
  71.        DisplayOneChar(1, 8, 'H');
  72.        DisplayOneChar(1, 11,tab1[bb/16]);
  73.        DisplayOneChar(1, 12,tab1[bb%16]);
  74.        DisplayOneChar(1, 13,'H');
  75.        DelayMs(250);//每隔0.25秒測試一次顏色
  76.    }
  77. }
  78. //******************************************************
  79. //白平衡子程序
  80. void   celiang()
  81. {
  82.      //*********求R值************************************
  83.      TH0=(65536-10000)/256;
  84.            TL0=(65536-10000)%256;
  85.      TH1=0;
  86.      TL1=0;
  87.      tcs230_s2=0;
  88.      tcs230_s3=0;//選擇紅色濾光器
  89.      tcs230_en=0;
  90.      TR0=1;//10毫秒開始計時
  91.      TR1=1;//開始計數(shù)
  92.      while(TF0==0);//等待定時器溢出
  93.      TF0=0;//清楚定時器0溢出標志
  94.      TR0=0;//關(guān)閉定時0
  95.      TR1=0;
  96.      rb=(unsigned long)(TH1*256+TL1)*255/ryz;
  97.      if(rb>255)rb=255;//判斷RGB值是否合法
  98.      //***********求B值**************************************
  99.      TH0=(65536-10000)/256;
  100.            TL0=(65536-10000)%256;
  101.      TH1=0;
  102.      TL1=0;
  103.      tcs230_s2=0;
  104.      tcs230_s3=1;//選擇藍色濾光器
  105.      TR0=1;//10毫秒開始計時
  106.      TR1=1;//開始計數(shù)
  107.      while(TF0==0);//等待定時器溢出
  108.      TF0=0;//清楚定時器0溢出標志
  109.      TR0=0;//關(guān)閉定時0
  110.      TR1=0;
  111.      bb=(unsigned long)(TH1*256+TL1)*255/byz;
  112.      if(bb>255)bb=255;//判斷RGB值是否合法     
  113.      //***********求G值**************************************   
  114.      TH0=(65536-10000)/256;
  115.            TL0=(65536-10000)%256;
  116.      TH1=0;
  117.      TL1=0;
  118.      tcs230_s2=1;
  119.      tcs230_s3=1;//選擇綠色濾光器
  120.      TR0=1;//10毫秒開始計時
  121.      TR1=1;//開始計數(shù)
  122.      while(TF0==0);//等待定時器溢出
  123.      TF0=0;//清楚定時器0溢出標志
  124.      TR0=0;//關(guān)閉定時0
  125.      TR1=0;
  126.      tcs230_en=1;
  127.      gb=(unsigned long)(TH1*256+TL1)*255/gyz;
  128.      if(gb>255)gb=255;//判斷RGB值是否合法  
  129. }
  130. //******************************************************
  131. //白平衡子程序
  132. void    baipingheng()
  133. {
  134.      //**************求取紅色因子***********************
  135.      TH0=(65536-10000)/256;
  136.            TL0=(65536-10000)%256;
  137.      TH1=0;
  138.      TL1=0;
  139.      tcs230_s2=0;
  140.      tcs230_s3=0;//選擇紅色濾光器
  141.      tcs230_en=0;
  142.      TR0=1;//10毫秒開始計時
  143.      TR1=1;//開始計數(shù)
  144.      while(TF0==0);//等待定時器溢出
  145.      TF0=0;//清楚定時器0溢出標志
  146.      TR0=0;//關(guān)閉定時0
  147.      TR1=0;
  148.      ryz=TH1*256+TL1;//其實這里的比例因子應(yīng)該為255/(TH1*256+TL1)
  149.      //**************求取藍色因子***********************
  150.      TH0=(65536-10000)/256;
  151.            TL0=(65536-10000)%256;
  152.      TH1=0;
  153.      TL1=0;
  154.      tcs230_s2=0;
  155.      tcs230_s3=1;//選擇藍色濾光器
  156.      TR0=1;//10毫秒開始計時
  157.      TR1=1;//開始計數(shù)
  158.      while(TF0==0);//等待定時器溢出
  159.      TF0=0;//清楚定時器0溢出標志
  160.      TR0=0;//關(guān)閉定時0
  161.      TR1=0;
  162.      byz=TH1*256+TL1;//其實這里的比例因子應(yīng)該為255/(TH1*256+TL1)
  163.      //**************求綠紅色因子***********************
  164.      TH0=(65536-10000)/256;
  165.            TL0=(65536-10000)%256;
  166.      TH1=0;
  167.      TL1=0;
  168.      tcs230_s2=1;
  169.      tcs230_s3=1;//選擇綠色濾光器
  170.      TR0=1;//10毫秒開始計時
  171.      TR1=1;//開始計數(shù)
  172.      while(TF0==0);//等待定時器溢出
  173.      TF0=0;//清楚定時器0溢出標志
  174.      TR0=0;//關(guān)閉定時0
  175.      TR1=0;
  176.      tcs230_en=1;
  177.      gyz=TH1*256+TL1;//其實這里的比例因子應(yīng)該為255/(TH1*256+TL1)
  178. }
  179. /*======================================================================
  180. LCM初始化

  181. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼



下載:
TCS3200顏色傳感器配套資料.rar (603.14 KB, 下載次數(shù): 504)

作者: 寂寞之雨3    時間: 2017-5-10 20:15
急需TCS3200測試,求資料,謝謝,發(fā)到郵箱758759506@qq.com
作者: jessen    時間: 2017-7-2 18:25
不錯的。
作者: 1231231434    時間: 2017-8-17 15:22
厲害了
作者: jansui008    時間: 2017-11-14 13:17
不錯的。GOOD
作者: my210    時間: 2017-12-27 20:50
非常不錯!
作者: liufeng180840    時間: 2018-1-3 13:48
我沒有黑筆的,下載不來呀

作者: lingjianjie    時間: 2018-1-7 16:17
學習了
作者: 咖啡加冰    時間: 2018-1-8 18:25
學習了   下次用到了再來下載
作者: 布萊克泰戈    時間: 2018-1-8 18:33
學習了
作者: 舊時    時間: 2018-1-10 23:22
急  需
作者: Lanceden    時間: 2018-1-22 15:33
啊很想要資料,但是沒有黑筆很難受了
作者: EVOLVINGINS    時間: 2018-2-26 11:12
好全面呀。!下載的趕緊
作者: qjzyx    時間: 2018-2-26 11:58
有用,收藏,謝謝分享
作者: Jandia    時間: 2018-3-6 20:20
jessen 發(fā)表于 2017-7-2 18:25
不錯的。

可不可以給我發(fā)一下?我沒有黑幣 2207442805@qq.com
作者: Jandia    時間: 2018-3-22 16:03
感謝!!
作者: Jandia    時間: 2018-3-22 16:24
如果我只是想要用傳感器識別紅 綠藍三種顏色 通過三個LED燈的顯示識別出顏色 那程序應(yīng)該怎么寫呢?
作者: jimfan    時間: 2018-3-23 10:27
謝謝,正好需要這個?上Ш趲挪粔
作者: AMXAZ    時間: 2018-3-23 15:05
沒有黑筆,跪求資料929464561@qq.com  謝謝!
作者: baobao5225    時間: 2018-3-29 20:10
樓主,小白一個可不可以發(fā)一下學習資料,萬分感謝,2570319687@qq.com
作者: 吾問無為謂1    時間: 2018-4-13 10:32
樓主有資料了嗎,求分享
作者: 1782808675    時間: 2018-4-14 10:09
厲害了我的哥
作者: 未發(fā)生    時間: 2018-4-28 10:38
我的傳感器stm32數(shù)據(jù)測的有問題,下載這個代碼來測試是不是傳感器tcs3200的問題
作者: dengyifenzhong    時間: 2018-5-2 15:49
好東西,但是發(fā)現(xiàn)顏色識別不是很準確的
作者: dengyifenzhong    時間: 2018-5-2 15:50
很不錯,識別能力不強,誤差較大
作者: yan960812    時間: 2018-5-8 08:20
很不錯,給力的文字
作者: 公路小江湖    時間: 2018-5-10 17:04
缺黑筆, 樓主可否可以郵箱發(fā)一份2028388623@qq.com  不勝感激 !。!
作者: zycs    時間: 2018-5-11 17:54
感謝樓主,注釋很詳細
作者: 4819142    時間: 2018-5-24 09:45
感謝樓主,注釋很詳細

作者: jiyione    時間: 2018-5-29 23:35
很不錯的東西,謝謝
作者: a100670433    時間: 2018-7-8 22:52
沒黑幣啊
作者: 唯柚子茶爾    時間: 2018-7-21 17:07
學習了,謝謝
作者: 唯柚子茶爾    時間: 2018-7-21 17:09
好詳細,贊一個
作者: li1263321    時間: 2018-8-5 09:25
學習了   下次用到了再來下載
作者: jojoisthebad    時間: 2018-8-12 22:03
多謝分享
作者: _jiapi    時間: 2018-8-14 16:40
借鑒學習,謝謝樓主
作者: 孔言88    時間: 2018-8-24 18:01
挺好的!。!
作者: acp1234567    時間: 2018-9-4 13:48
非常感謝。
作者: 黃源富    時間: 2018-10-22 15:19
很給力
作者: labview學習    時間: 2018-10-23 23:37
大佬哦。。。。。。。。。。
作者: 大智若缺    時間: 2018-10-24 00:35
大佬牛逼      
作者: 大智若缺    時間: 2018-10-24 00:36
厲害了。。。。。
作者: wmmmmm1996    時間: 2018-10-25 09:17
很棒的資料
作者: Tristan    時間: 2018-10-25 15:28
很強啊。學習學習
作者: urbane1    時間: 2019-1-18 19:38
發(fā)我謝謝````799310568qq@.com
作者: kongdada    時間: 2019-2-16 17:00
EVOLVINGINS 發(fā)表于 2018-2-26 11:12
好全面呀。!下載的趕緊

你有TCS3200的資料嗎?能發(fā)給我一份嗎?十分感謝  2264584107@qq.com
作者: shelter    時間: 2019-2-24 09:44
贊一個
作者: dengyifenzhong    時間: 2019-3-5 17:17

謝謝,正好需要這個?上Ш趲挪粔
作者: Strongest丶星空    時間: 2019-7-21 14:47
代碼好像不全

作者: JIANGJUN888    時間: 2019-7-28 11:07
很給力!
作者: AKAJUNHAO    時間: 2019-7-28 11:12
很厲害啊
作者: 13542142729    時間: 2019-12-21 12:57
很給力
作者: zxcvzxcvzxcv    時間: 2020-3-15 17:21
(TH1*256+TL1)*255/gyz,這句語句中,為什么用到了255呢,不明白,求大神解釋一下。
作者: zxcvzxcvzxcv    時間: 2020-3-25 20:25
Jandia 發(fā)表于 2018-3-22 16:24
**** 作者被禁止或刪除 內(nèi)容自動屏蔽 ****

你好,請問你的思路成功了嗎,我也遇到了同樣的問題,在顏色識別時不清楚
作者: buyuangudan1    時間: 2020-11-20 10:14

學習了   下次用到了再來下載
作者: wifingtta    時間: 2023-3-24 11:54
實測,程序沒問題,測量還是比較準確,感謝樓主分享。學習了。注意:TCS3200受環(huán)境光照影響還是很大的,不同距離角度的光照都會造成測量值變化很大。
作者: wkman    時間: 2023-3-24 14:16
TCS230 是RGB發(fā)光色判讀到,有沒有類似是  CMYK色判讀到傳感器?




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1