Kulay Detector Circuit na may Arduino Code

Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema





Sa post na ito magtatayo kami ng isang circuit na makakakita ng kulay at mag-uudyok ng kani-kanilang nakatalagang relay. Ang proyektong ito ay nagagawa gamit ang TCS3200 color sensor at Arduino board.

Color Sensing ng TCS3200

Kung hindi mo pa nabasa ang nakaraang artikulo, mangyaring dumaan ito kung saan tinalakay ang tungkol dito mga pangunahing kaalaman sa pag-sensing ng kulay gamit ang TCS3200



Ang iminungkahing proyekto ay maaaring maging kapaki-pakinabang, kung nais mo ang isang circuit na gumawa ng pagkilos batay sa mga kulay. Mayroong mga karagatan ng mga aplikasyon batay sa pagtuklas ng kulay sa iba't ibang mga larangan ng industriya.

Ang proyektong ito ay magbibigay ng isang pananaw sa kung paano namin mai-program ang color sensor upang makita ang iba't ibang mga kulay at ma-trigger ang mga relay.



Isasaalang-alang namin ang pangunahing mga kulay: PULA, GREEN at BLUE para sa proyektong ito. Ang proyekto na ito ay maaaring makapag-iba sa pagitan ng tatlong mga kulay na ito at ma-trigger ang mga relay, bawat relay para sa bawat kulay.

Maaaring makita ng TCS3200 ang anumang bilang ng mga kulay, ngunit upang maiintindihan ang proyekto at panatilihing simple ang code ng programa, nakatuon lamang kami sa mga pangunahing kulay.

Diagram ng Circuit:

interface ng Arduino at TCS3200 na kulay na sensor

Ang skematikong nasa itaas ay para sa interfacing ng Arduino at TCS3200 color sensor.

Mga koneksyon ng relay:

relay koneksyon ang Arduino at TCS3200 kulay sensor

Lakasin ang Arduino na may 9V adapter na may hindi bababa sa 500mA. Ang transistor ay gumaganap bilang amplifier para sa relay dahil ang mga pin ng GPIO ng Arduino ay hindi maaaring magbigay ng sapat na kasalukuyang upang i-relay.

Ang diode 1N4007 ay sumisipsip ng mga spike ng mataas na boltahe mula sa relay coil, na pinoprotektahan ang natitirang bahagi ng semiconductor.

Tinapos nito ang hardware.

Tingnan natin ngayon kung paano i-upload ang code at i-calibrate ang sensor para sa iyong mga kinakailangan.
Ang pagkasensitibo ng kulay ay maaaring magkakaiba mula sa module hanggang sa module at ang ambient light na maaaring baguhin ang pagkasensitibo ng kulay nang husto.

Ang lahat ng mga sensor ng TCS3200 ay may ilang pagkakaiba-iba habang gawa-gawa, kailangan mong sukatin ang mga parameter ng kulay para sa sensor na kasalukuyan mong pagmamay-ari, upang ang mga parameter na iyon ay maaaring magamit sa code upang tuklasin ang kulay nang mas tumpak.

Upang i-calibrate at i-optimize ang mga pagbabasa para sa iyong sensor na sundin, tumpak ang mga hakbang:

Hakbang 1: I-upload ang sumusunod na code na may kumpletong pag-setup ng hardware.

//-----Program Developed by R.GIRISH-----// const int Red_relay = 9 const int Green_relay = 10 const int Blue_relay = 11 const int s0 = 4 const int s1 = 5 const int s2 = 6 const int s3 = 7 const int out = 8 int var = 25 int red = 0 int green = 0 int blue = 0 int state = LOW int state1 = LOW int state2 = HIGH //-----------Enter Values--------// //For RED Colour: int Rx1 = 92 int Gx1 = 240 int Bx1 = 53 //For GREEN Colour: int Rx2 = 228 int Gx2 = 163 int Bx2 = 64 //For BLUE Colour: int Rx3 = 300 int Gx3 = 144 int Bx3 = 45 //----------------------------// void setup() { Serial.begin(9600) pinMode(Red_relay, OUTPUT) pinMode(Green_relay, OUTPUT) pinMode(Blue_relay, OUTPUT) digitalWrite(Red_relay, LOW) digitalWrite(Green_relay, LOW) digitalWrite(Blue_relay, LOW) pinMode(s0, OUTPUT) pinMode(s1, OUTPUT) pinMode(s2, OUTPUT) pinMode(s3, OUTPUT) pinMode(out, INPUT) //----Scaling Frequency 20%-----// digitalWrite(s0, state2) digitalWrite(s1, state1) //-----------------------------// } void loop() { int redH1 = Rx1 + var int redL1 = Rx1 - var int redH2 = Rx2 + var int redL2 = Rx2 - var int redH3 = Rx3 + var int redL3 = Rx3 - var int blueH1 = Bx1 + var int blueL1 = Bx1 - var int blueH2 = Bx2 + var int blueL2 = Bx2 - var int blueH3 = Bx3 + var int blueL3 = Bx3 - var int greenH1 = Gx1 + var int greenL1 = Gx1 - var int greenH2 = Gx2 + var int greenL2 = Gx2 - var int greenH3 = Gx3 + var int greenL3 = Gx3 - var //-----Sensing RED colour-----// digitalWrite(s2, state1) digitalWrite(s3, state1) red = pulseIn(out, state) delay(100) //------Sensing Green colour----// digitalWrite(s2, state2) digitalWrite(s3, state2) green = pulseIn(out, state) delay(100) //------Sensing Blue colour----// digitalWrite(s2, state1) digitalWrite(s3, state2) blue = pulseIn(out, state) delay(400) if(red = redL1) { if(green = greenL1) { if(blue = blueL1) { Serial.println('Detected Colour: RED') Serial.println('') digitalWrite(Red_relay, HIGH) delay(1000) } } } if(red = redL2) { if(green = greenL2) { if(blue = blueL2) { Serial.println('Detected Colour: Green') Serial.println('') digitalWrite(Green_relay, HIGH) delay(1000) } } } if(red = redL3) { if(green = greenL3) { if(blue = blueL3) { Serial.println('Detected Colour: Blue') Serial.println('') digitalWrite(Blue_relay, HIGH) delay(1000) } } } } //------Program Developed by R.GIRISH--------//

Hakbang 2: Buksan ang serial monitor, mahahanap mo ang mga parameter ng kulay tulad nito:

Dalhin ang kulay ng bagay (ginustong kulay ang papel) pula, asul at berde.

Hakbang 3:

• Ilagay ang pulang kulay na papel malapit sa sensor ng TCS3200.
• Itala ang pagbasa ng R, G, B (lahat ng tatlong kulay) habang inilalagay mo ang pulang kulay na papel.
• Gayundin tandaan ang pagbabasa ng R, G, B para sa mga papel na berde at asul na kulay.

• TANDAAN: kapag inilagay mo ang alinman sa 3 mga kulay sa harap ng TCS3200 tandaan ang lahat ng mga pula, asul at berde na pagbabasa para sa bawat papel na kulay, na kailangan mong ipasok sa pangunahing programa ng pagtuklas ng kulay.

Hakbang 4: Basahin ang Hakbang 5 at i-upload ang pangunahing code sa ibaba (programa sa pagtuklas ng kulay)

//-- -- -- -- Enter Values-- -- --// //For RED Colour: int Rx1 = 92 int Gx1 = 240 int Bx1 = 53 //For GREEN Colour: int Rx2 = 228 int Gx2 = 163 int Bx2 = 64 //For BLUE Colour: int Rx3 = 300 int Gx3 = 144 int Bx3 = 45 //-- -- -- -- -- -- -- -- -- -- -- //

Hakbang 5: Sa itaas na code palitan ang mga halaga sa iyong mga halagang napansin mo kamakailan:

//--------Program Developed by R.GIRISH-------// const int s0 = 4 const int s1 = 5 const int s2 = 6 const int s3 = 7 const int out = 8 int frequency1 = 0 int frequency2 = 0 int frequency3 = 0 int state = LOW int state1 = LOW int state2 = HIGH void setup() { Serial.begin(9600) pinMode(s0, OUTPUT) pinMode(s1, OUTPUT) pinMode(s2, OUTPUT) pinMode(s3, OUTPUT) pinMode(out, INPUT) //----Scaling Frequency 20%-----// digitalWrite(s0, state2) digitalWrite(s1, state1) //-----------------------------// } void loop() ') delay(100) //------Sensing Blue colour----// digitalWrite(s2, state1) digitalWrite(s3, state2) frequency3 = pulseIn(out, state) Serial.print(' Blue = ') Serial.println(frequency3) delay(100) Serial.println('-----------------------------') delay(400) //---------Program Developed by R.GIRISH---------//

Kapag inilagay mo ang pulang kulay na papel sa sensor maaari kang makakuha ng tatlong mga pagbasa, halimbawa R = 56 | G = 78 | B = 38.

Ilagay ang mga halagang 56, 78, 38 tulad nito:

// Para sa Kulay ng PULANG:
int Rx1 = 56
int Gx1 = 78
int Bx1 = 38

Katulad nito, para sa iba pang dalawang kulay at i-upload ang code.

Hakbang6:

• Buksan ang serial monitor at ilagay ang anuman sa tatlong mga kulay sa harap ng sensor.
• Makikita mo ang pagtuklas ng mga kulay sa serial monitor nang sabay-sabay ang kaukulang color relay ay naaktibo.

• Mayroon kang pindutang pindutin ang pag-reset sa Arduino board upang i-deactivate ang relay.

TANDAAN 1: Maaaring hindi makita ng circuit ang mga kulay, kung maglagay ka ng bahagyang magkakaibang lilim / kulay ng PULANG, GREEN, BLUE kulay na bagay / papel, pagkatapos ng pagkakalibrate. Sa madaling salita, kailangan mong gumamit ng eksaktong parehong kulay na object / papel upang makita ang mga kulay at upang mag-trigger ng relay.

TANDAAN 2: Ang ilaw sa paligid ay maaaring makaapekto sa pagtuklas ng kulay kaya, mangyaring panatilihin ang isang pare-pareho na ilaw malapit sa sensor habang nagko-calibrate at din habang nakikita ang mga kulay.

Prototype ng may-akda:

Prototype ng sensor ng kulay ng Arduino

Kung mayroon kang anumang mga katanungan tungkol sa proyektong ito, mangyaring ipahayag sa seksyon ng komento, maaari kang makatanggap ng isang mabilis na tugon.




Nakaraan: Paggamit ng TSOP17XX Sensors na may Mga Customized Frequency Susunod: Maramihang Circuit ng Charger ng Baterya gamit ang Dump Capacitor