找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3397|回復: 0
收起左側

STM32CubeMX配置的顏色識別模塊源程序

[復制鏈接]
ID:336427 發(fā)表于 2019-4-10 22:24 | 顯示全部樓層 |閱讀模式
用oled屏幕顯示,具體接線方案程序中都有,經(jīng)過調試確實可用的

  H指hue(色相)、S指saturation(飽和度)、L指lightness(亮度)、V指value(色調)、B指brightness(明度)。


  色相(H)是色彩的基本屬性,就是平常所說的顏色名稱,如紅色、黃色等。
  飽和度(S)是指色彩的純度,越高色彩越純,低則逐漸變灰,取0-100%的數(shù)值。
  明度(V),亮度(B),取0-100%。         

   0度: 紅色,RGB:(255, 0, 0), 255:R, 0:B,G+  
   60度: 黃色,RGB:(255,255, 0),255:G, 0:B, R-  
   120度: 綠色,RGB:( 0,255, 0),255:G, 0:R,B+  
   180度: 青色,RGB:( 0,255,255),255:B, 0:R,G-  
   240度: 藍色,RGB:( 0, 0,255),255:B, 0:G,R+  
   300度: 紫色,RGB:(255, 0,255),255:R, 0:G,B-  
   360度: 紅色,RGB:(255, 0, 0),255:R, 0:B,G+        


  RGB轉化到HSV的算法                                                
    max=max(R,G,B)
    min=min(R,G,B)
     if R = max, H = (G-B)/(max-min)
    if G = max, H = 2 + (B-R)/(max-min)
    if B = max, H = 4 + (R-G)/(max-min)
    H = H * 60
    if H < 0, H = H + 360
    V=max(R,G,B)
    S=(max-min)/max
/接線方法
/VCC 接3.3
/GND 接GND
/LED 接3.3
#define S0 PCout(6)
#define S1 PCout(7)
#define S2 PCout(8)
#define S3 PCout(9)
#define OUT PAin(8)
******************************************************************************/
//oled的接線方法
//////////////////////////////////////////////////////////////////////////////////         
//本程序只供學習使用,未經(jīng)作者許可,不得用于其它任何用途
//中景園電子
//
//  文 件 名   : main.c
//  版 本 號   : v2.0
//  作    者   : HuangKai
//  生成日期   : 2014-0101
//  最近修改   :
//  功能描述   : OLED 4接口演示例程(51系列)
//              說明:
//              ----------------------------------------------------------------
//              GND    電源地
//              VCC  接5V或3.3v電源
//              D0   接PA5(SCL)
//              D1   接PA7(SDA)
//              RES  接PB0
//              DC   接PB1
//              CS   接PA4               
//              ----------------------------------------------------------------
// 修改歷史   :
// 日    期   :
// 作    者   : HuangKai
// 修改內容   : 創(chuàng)建文件
//版權所有,盜版必究。
//Copyright(C) 中景園電子2014/3/16
/* USER CODE END 0 */

        tcs3200_init(0,1);
        whitebalance();//開機的時候最好模塊測量的顏色是不反光的白色,推薦使用白紙
        
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
                        t=' ';
  while (1)
  {

  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */
//=================================================================================
                R = tcs3200_RED();
                G = tcs3200_GREEN();        //取RGB值
                B = tcs3200_BLUE();         
//================================================================================
                OLED_Clear();
//顯示漢字
/*void OLED_ShowCHinese(u8 x,u8 y,u8 no)
  x,y分別代表要顯示的漢字在屏上的坐標位置,最后一位是漢字在漢字數(shù)組的位數(shù)        
*/               
                /*占空比顯示是調試時為了證明頻率采集成功才顯示的,具體使用時可以去掉*/
                /*以下三個分別是對R,G,B的數(shù)值顯示*/
                sprintf(str,":%d Duty: %d",R,duty);
                OLED_ShowString(0,0,"R");/*顯示ASCII字符R*/          OLED_ShowString(18,0,str);
               
                /*頻率:10000Hz*/
                sprintf(str,":%d",G);
                OLED_ShowString(0,2,"G");/*顯示ASCII字符G*/                OLED_ShowString(18,2,str);
               
                sprintf(str,":%d",B);
                OLED_ShowString(0,4,"B");/*顯示ASCII字符B*/          OLED_ShowString(18,4,str);
               
                /*頻率顯示*/
                sprintf(str,": %.dHz",freq);
                OLED_ShowCHinese(0,6,13); OLED_ShowCHinese(18,6,14);        OLED_ShowString(36,6,str);
               
                delay_ms(2000);

  }
0.png

全部資料51hei下載地址:
顏色識別模塊.7z (684.63 KB, 下載次數(shù): 43)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表