精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

顏色傳感器DIY圖解

454398 ? 來源:wv ? 2019-08-30 10:57 ? 次閱讀

第1步:BoM

Arduino

RGB LED

光敏電阻

10kΩ電阻

3x100Ω電阻器

跳線

面包板電線

步驟2:連接RGB LED

這將是我們電路的發射器部分發出不同的顏色,這些顏色將從物體反彈,通過光學定律將被檢測到我們的光傳感器。

*將引腳2,最長引腳連接到Arduino上的GND引腳。

*連接引腳1, R GB的紅色LED LED指向Arduino上的引腳5。

*將引腳3,R G B LED的貪婪色LED連接到Arduino上的引腳6。

*將引腳4,RG B LED的藍色LED連接到Arduino上的引腳9。

您會注意到所有這些都插入標有tilda符號“?”的PWM引腳,這樣我們就可以獨立控制每個LED的亮度。

步驟3:連接光電傳感器

來自發射器(RGB)LED的反射光從中彈回光傳感器將讀取任何物體,光電傳感器將使用校準值來找到特定顏色的各個RGB顏色值。

確保將光傳感器移近發射器。

*將其中一個引腳(稱為光纖傳感器的引腳1)連接到Arduino上的GND引腳

*將光電傳感器的引腳2連接到上面的3.3V引腳Arduino的。

*將光電傳感器的引腳2連接到Arduino上的A0引腳。

你會注意到最后兩條接線都是平行的。這是因為我們正在制作一個分壓器,以便在反射光強度發生變化時獲得變化的電壓讀數。

步驟4:代碼

// Define colour sensor LED pins int ledArray[] = {5,6,9}; // boolean to know if the balance has been set

boolean balanceSet = false; //place holders for colour detected

int red = 0;

int green = 0;

int blue = 0; //floats to hold colour arrays

float colourArray[] = {0,0,0};

float whiteArray[] = {0,0,0};

float blackArray[] = {0,0,0}; //place holder for average

int avgRead; void setup(){

//setup the outputs for the colour sensor

pinMode(2,OUTPUT);

pinMode(3,OUTPUT);

pinMode(4,OUTPUT);

//begin serial communication

Serial.begin(9600); }

void loop(){ checkBalance();

checkColour();

printColour();

}

void checkBalance(){

//check if the balance has been set, if not, set it

if(balanceSet == false){

setBalance();

}

}

void setBalance(){

//set white balance

delay(5000); //delay for five seconds, this gives us time to get a white sample in front of our sensor

//scan the white sample.

//go through each light, get a reading, set the base reading for each colour red, green, and blue to the white array

for(int i = 0;i《=2;i++){

digitalWrite(ledArray[i],HIGH);

delay(100);

getReading(5); //number is the number of scans to take for average, this whole function is redundant, one reading works just as well.

whiteArray[i] = avgRead;

digitalWrite(ledArray[i],LOW);

delay(100);

}

//done scanning white, now it will pulse blue to tell you that it is time for the black (or grey) sample.

//set black balance

delay(5000); //wait for five seconds so we can position our black sample

//go ahead and scan, sets the colour values for red, green, and blue when exposed to black

for(int i = 0;i《=2;i++){

digitalWrite(ledArray[i],HIGH);

delay(100);

getReading(5);

blackArray[i] = avgRead;

//blackArray[i] = analogRead(2);

digitalWrite(ledArray[i],LOW);

delay(100);

}

//set boolean value so we know that balance is set

balanceSet = true;

delay(5000); //delay another 5 seconds to let us catch up

} void checkColour(){

for(int i = 0;i《=2;i++){

digitalWrite(ledArray[i],HIGH); //turn or the LED, red, green or blue depending which iteration

delay(100); //delay to allow CdS to stabalize, they are slow

getReading(5); //take a reading however many times

colourArray[i] = avgRead; //set the current colour in the array to the average reading

float greyDiff = whiteArray[i] - blackArray[i]; //the highest possible return minus the lowest returns the area for values in between

colourArray[i] = (colourArray[i] - blackArray[i])/(greyDiff)*255; //the reading returned minus the lowest value divided by the possible range multiplied by 255 will give us a value roughly between 0-255 representing the value for the current reflectivity(for the colour it is exposed to) of what is being scanned

digitalWrite(ledArray[i],LOW); //turn off the current LED

delay(100);

}

}

void getReading(int times){

int reading;

int tally=0;

//take the reading however many times was requested and add them up

for(int i = 0;i 《 times;i++){

reading = analogRead(0);

tally = reading + tally;

delay(10);

}

//calculate the average and set it

avgRead = (tally)/times;

}

//prints the colour in the colour array, in the next step, we will send this to processing to see how good the sensor works.

void printColour(){

Serial.print(“R = ”);

Serial.println(int(colourArray[0]));

Serial.print(“G = ”);

Serial.println(int(colourArray[1]));

Serial.print(“B = ”);

Serial.println(int(colourArray[2]));

//delay(2000);

}

步驟5:校準

首先準備一張黑白紙上傳代碼。

上傳代碼后,您會注意到在程序運行的前5秒內,RGB LED會發出各種顏色。在前5秒鐘,在LED和光電傳感器上放置一張黑紙。然后在接下來的5秒鐘內將紙張切換到白紙上。

編寫代碼,使前10秒為校準周期。

第6步:測試并享受!

取出不同顏色的紙張并進行測試。它會將各個R,G,B值打印到屏幕上。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 顏色傳感器
    +關注

    關注

    2

    文章

    95

    瀏覽量

    18171
收藏 人收藏

    評論

    相關推薦

    如何用SS1系列顏色傳感器設置目標顏色?

    基于白色LED光源的特性,深視智能SS1系列顏色傳感器突破了傳統單色RGB、融合光RGB的波長限制,將發射波長的范圍覆蓋到整個可見光譜,最大支持檢測16種顏色。那么,我們如何利用顏色
    的頭像 發表于 11-19 01:04 ?103次閱讀
    如何用SS1系列<b class='flag-5'>顏色</b><b class='flag-5'>傳感器</b>設置目標<b class='flag-5'>顏色</b>?

    強色來襲!深視智能全新產品線——顏色傳感器SS1系列新品上市!

    全新產品線·顏色傳感器依托深視智能10年研發能力,向通用傳感器之路邁進!深視智能正式推出全新產品線——顏色傳感器SS系列!新一代
    的頭像 發表于 11-05 08:05 ?265次閱讀
    強色來襲!深視智能全新產品線——<b class='flag-5'>顏色</b><b class='flag-5'>傳感器</b>SS1系列新品上市!

    低功耗4G模組:tcs3472顏色傳感器示例

    ?今天我們學習合宙低功耗4G模組Air780EP的LuatOS開發tcs3472示例。 一、簡介 tcs3472顏色傳感器能夠讀取照射到的物體的RGB三種數值,從而識別顏色 關聯文檔和使用工
    的頭像 發表于 10-21 07:07 ?189次閱讀
    低功耗4G模組:tcs3472<b class='flag-5'>顏色</b><b class='flag-5'>傳感器</b>示例

    光電式傳感器的功能有哪些

    能夠檢測光的存在或變化,這是其最基本的功能。 光強度測量 :通過測量光的強度,光電傳感器可以用于光照度測量。 顏色識別 :某些光電傳感器能夠區分不同顏色的光,用于
    的頭像 發表于 09-23 09:12 ?468次閱讀

    在RGB和XYZ顏色傳感器之間進行選擇,以實現自適應照明調節

    電子發燒友網站提供《在RGB和XYZ顏色傳感器之間進行選擇,以實現自適應照明調節.pdf》資料免費下載
    發表于 08-26 09:30 ?0次下載
    在RGB和XYZ<b class='flag-5'>顏色</b><b class='flag-5'>傳感器</b>之間進行選擇,以實現自適應照明調節

    OPT4048 高速高精度三色 XYZ 顏色傳感器數據表

    電子發燒友網站提供《OPT4048 高速高精度三色 XYZ 顏色傳感器數據表.pdf》資料免費下載
    發表于 08-12 10:46 ?0次下載
    OPT4048 高速高精度三色 XYZ <b class='flag-5'>顏色</b><b class='flag-5'>傳感器</b>數據表

    OPT4060高速高靈敏度RGBW顏色傳感器數據表

    電子發燒友網站提供《OPT4060高速高靈敏度RGBW顏色傳感器數據表.pdf》資料免費下載
    發表于 08-09 10:23 ?0次下載
    OPT4060高速高靈敏度RGBW<b class='flag-5'>顏色</b><b class='flag-5'>傳感器</b>數據表

    顏色識別傳感器:精準捕捉世界的每一抹色彩

    ?顏色識別傳感器作為現代工業、機器視覺、自動化控制等領域的重要設備,其技術的發展和應用對于提升生產效率、保障產品質量具有重要意義。本文將從顏色識別傳感器的原理、結構組成、應用以及選型等
    的頭像 發表于 07-21 16:03 ?641次閱讀
    <b class='flag-5'>顏色</b>識別<b class='flag-5'>傳感器</b>:精準捕捉世界的每一抹色彩

    傳感器電路圖解

    傳感器,英文名稱為Transducer或Sensor,是一種能夠檢測物理量并將其轉換為可測量信號的裝置。從廣義上講,傳感器能夠感知外界信息,如溫度、壓力、光、聲音、磁場等,并將這些信息按照一定
    的頭像 發表于 07-02 18:10 ?1432次閱讀
    <b class='flag-5'>傳感器</b>電路<b class='flag-5'>圖解</b>析

    阿童木顏色傳感器在車身顏色識別中的應用

    傳感器
    阿童木(廣州)智能科技有限公司
    發布于 :2024年03月12日 15:16:16

    數字RGBW-IR顏色傳感器WH3620規格書

    電子發燒友網站提供《數字RGBW-IR顏色傳感器WH3620規格書.pdf》資料免費下載
    發表于 03-06 15:24 ?2次下載

    顏色傳感器實時檢測轉動軸轉向

    摘要 本案例描述了如何利用顏色傳感器來檢測轉動軸的轉向。河北省客戶提出了一個問題,希望能夠判斷他們的轉向軸是正轉還是反轉,轉速并不快。阿童木工程師提供解決方案,通過在圓柱體上貼上三種不同顏色的標記
    的頭像 發表于 02-26 13:52 ?328次閱讀
    <b class='flag-5'>顏色</b><b class='flag-5'>傳感器</b>實時檢測轉動軸轉向

    阿童木顏色傳感器應用:汽車車身顏色識別

    引言 隨著科技的不斷進步,汽車制造業也在不斷迭代升級,全自動化生產技術成為現代汽車生產的主流。本文將深入探討某大型汽車生產企業在其全國生產基地中,采用阿童木顏色傳感器(CL2)對車身顏色進行識別
    的頭像 發表于 01-26 14:45 ?430次閱讀
    阿童木<b class='flag-5'>顏色</b><b class='flag-5'>傳感器</b>應用:汽車車身<b class='flag-5'>顏色</b>識別

    阿童木顏色傳感器應用汽車車漆顏色判斷

    傳感器應用
    阿童木(廣州)智能科技有限公司
    發布于 :2024年01月26日 14:32:03