Въведение в RGB цветен сензор TCS3200

Опитайте Нашия Инструмент За Премахване На Проблемите





TCS3200 е цветен чип за преобразувател на светлина в честота, който може да бъде програмиран чрез микроконтролер. Модулът може да се използва за откриване на всичките 7 цвята бяла светлина с помощта на интегриран микроконтролер като Arduino.

В тази публикация ще разгледаме цветния сензор RGB TCS3200, ще разберем как работи цветният сензор и ще тестваме практически сензора TCS3200 с Arduino и ще извлечем някои полезни данни.



Значение на разпознаването на цветовете

Виждаме света всеки ден, изпълнен с богати цветове, замисляли ли сте се какви всъщност цветове са освен визуално усещането му. Е, цветовете са електромагнитни вълни с различни дължини на вълната. Червеното, зеленото, синьото имат различни дължини на вълните, човешките очи са настроени да улавят тези RGB цветове, което е тясна лента от електромагнитния спектър.

Но виждаме повече от червено, синьо и зелено, защото мозъкът ни може да смеси два или повече цвята и да даде нов цвят.



Способността да вижда различни цветове помогна на древната човешка цивилизация да избяга от животозастрашаващи опасности като животни, а също така спомогна за идентифицирането на годни за консумация предмети като плодове при правилния й растеж, които ще бъдат приятни за консумация.

Жените са по-добри в разпознаването на различни нюанси на цвета (по-чувствителни на цветовете) от мъжете, но мъжете са по-добри в проследяването на бързо движещи се обекти и реагират съответно.

Много изследвания показват, че това се дължи на това, че през древността мъжете ходят на лов поради физическата си сила, която е по-добра от жените.

Жените са удостоени с по-малко рискована задача като събиране на плодове и други годни за консумация предмети от растения и дървета.

Събирането на годни за консумация продукти от растенията при правилния им растеж (цветът на плодовете играе огромна роля) е много важно за доброто храносмилане, което помага на хората от здравословни проблеми в залива.

Тези разлики във визуалните способности при мъжете и жените продължават да съществуват дори и в съвремието.

Добре, защо горните обяснения за електронен цветен сензор? Е, защото цветните сензори са произведени въз основа на цветовия модел на човешкото око, а не на модела на цветните очи на други животни.

Например, двойните камери в смартфоните една от камерите е специално създадена за разпознаване на RGB цветове и друга камера за заснемане на нормални изображения. Смесването на тези две изображения / информация с някакъв внимателен алгоритъм ще възпроизведе точни цветове на реалния обект на екрана само това, което хората могат да възприемат.

Забележка: Не всички двойни камери работят по същия начин, както е споменато по-горе, някои се използват за оптично мащабиране, други се използват за произвеждане на задълбочен ефект на полето и т.н.

Сега да видим как се произвеждат цветни сензори TCS3200.

Илюстрация на сензор TCS3200:

TCS3200 сензор

Той има 4 вградени бели светодиода за осветяване на обекта. Той има 10 пина, два Vcc и GND щифта (използвайте всеки два от тях). Функцията на S0, S1, S2, S3, S4 и изходния щифт ще бъде обяснена скоро.

Ако погледнете отблизо сензора, можем да видим нещо, както е илюстрирано по-долу:

Той има 8 x 8 масива цветни сензори, които са общо 64. Блокът с фотосензори има сензори Red, Blue, Green. Различните цветови сензори се формират чрез прилагане на различни цветни филтри върху сензора. От 64, той има 16 сини, 16 зелени, 16 червени сензора и има 16 фотосензора без никакъв цветен филтър.

Синият цветен филтър ще позволи само синьо оцветена светлина да попадне в сензора и да отхвърли останалите дължини на вълните (Цветове), това е същото за другите два цветни сензора.

Ако осветявате синя светлина върху червен филтър или зелен филтър, по-малко интензивната светлина ще премине през зеления или червения филтър в сравнение със синия филтър. Така че синият филтриран сензор ще получи повече светлина в сравнение с другите два.

Така че, можем да поставим цветните сензори с RGB филтри в блок и да осветяваме всяка цветна светлина, а съответният цветен сензор ще получи повече светлина от другите два.

Чрез измерване на интензивността на светлината, получена от датчик, може да разкрие цвета, който светлината свети.

За да се свърже сигналът от сензор към микроконтролер се извършва с интензитет на светлината към честотен преобразувател.

Схема на блок-схема

Пинът “out” е изходът. Честотата на изходния щифт е 50% работен цикъл. Пиновете S2 и S3 са избрани линии за фотосензор.

Разбирате по-добре, като разгледате таблицата:

Пиновете S2 и S3 са избрани линии за фотосензор.

Чрез прилагане на ниски сигнали към щифтове S2 и S3 ще изберете сензора за червен цвят и ще измерите интензивността на дължината на червената вълна.

По същия начин следвайте горната таблица за останалите цветове.

Като цяло се измерват червените, сините и зелените сензори, като сензорите остават един без филтри.

S0 и S1 са щифтовете за мащабиране на честотата:

S0 и S1 са щифтовете за мащабиране на честотата

S0 и S1 са щифтове за мащабиране на честотата за мащабиране на изходната честота. Честотното мащабиране се използва за избор на оптималната изходна честота от сензора към микроконтролера. В случай на Arduino се препоръчват 20%, S0 ‘HIGH’ и S1 ‘LOW’.

Изходната честота става висока, ако интензивността на светлината на съответния сензор е висока. За простота на програмния код честотата не се измерва, но се измерва продължителността на импулса, по-висока честотата намалява продължителността на импулса.

Така че този, който на показанията на серийния монитор показва най-малко, трябва да бъде цветът, който е поставен пред сензора.

Извличане на данни от сензора за цвят

Сега нека практически опитаме да извлечем данни от сензора:

как да извлечете данни от цветния сензор с помощта на веригата Arduino

Код на програмата:

//--------------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--------------//

ИЗХОД на сериен монитор:

Четенето, което показва най-ниско, е цветът, поставен пред сензора. Можете също така да напишете код за разпознаване на всеки цвят, например жълт. Жълтото е резултат от смесването на зелено и червено, така че ако пред сензора е поставен жълт цвят, трябва да вземете предвид показанията на червения и зеления сензор, подобно на всички други цветове.

Ако имате някакви въпроси относно този RGB цветен сензор TCS3200, използвайки статия от Arduino, моля, изразете в раздела за коментари. Може да получите бърз отговор.

Обясненият по-горе цветен сензор може да се използва и за задействане на външна притурка чрез реле за изпълнение на желана операция.




Предишен: Превключвател за включване / изключване на променливотоковото захранване с контролирана парола Напред: Използване на сензори TSOP17XX с персонализирани честоти