Введение в датчик цвета RGB TCS3200

Попробуйте наш инструмент устранения неполадок





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

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



Важность распознавания цвета

Мы видим мир каждый день, наполненный яркими красками, задумывались ли вы, что на самом деле есть цвета, помимо визуального восприятия. Что ж, цвета - это электромагнитные волны с разными длинами волн. Красный, зеленый, синий имеют разные длины волн, человеческие глаза настроены на улавливание этих цветов RGB, которые представляют собой узкую полосу электромагнитного спектра.

Но мы видим больше, чем красный, синий и зеленый, потому что наш мозг может смешивать два или более цветов и выдает новый цвет.



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

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

Многие исследования предполагают, что это происходит из-за того, что в древние времена мужчины ходили на охоту из-за своей физической силы, которая превосходила женщин.

Женщины удостоены менее рискованной задачи, такой как сбор фруктов и других съедобных предметов с растений и деревьев.

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

Эти различия в зрительных способностях мужчин и женщин сохраняются даже в наше время.

Хорошо, а почему вышеупомянутые объяснения для электронного датчика цвета? Ну, потому что датчики цвета созданы на основе цветовой модели человеческого глаза, а не на основе цветовой модели глаз других животных.

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

Примечание: не все двойные камеры работают так же, как упомянуто выше, некоторые используются для оптического масштабирования, некоторые используются для создания эффекта глубины резкости и т. Д.

Теперь давайте посмотрим, как изготовлены датчики цвета TCS3200.

Изображение датчика TCS3200:

Датчик TCS3200

Он имеет 4 встроенных белых светодиода для освещения объекта. Он имеет 10 контактов, два контакта Vcc и GND (используйте любые два из них). Вскоре будут объяснены функции S0, S1, S2, S3, S4 и вывода «out».

Если внимательно присмотреться к датчику, мы можем увидеть что-то, как показано ниже:

Он имеет матрицу 8 x 8 цветных датчиков, всего 64. Блок фотодатчиков имеет красный, синий и зеленый датчики. Различные датчики цвета формируются путем применения на датчике разных цветных фильтров. Из 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 с настраиваемыми частотами