В этом проекте мы собираемся соединить датчик цвета TCS3200 с Arduino UNO. TCS3200 - это датчик цвета, который может определять любое количество цветов при правильном программировании. TCS3200 содержит массивы RGB (красный, зеленый, синий). Как показано на рисунке на микроскопическом уровне, внутри глазного датчика можно увидеть квадратные прямоугольники. Эти квадратные прямоугольники представляют собой массивы матрицы RGB. Каждый из этих ящиков содержит три датчика: один для измерения интенсивности КРАСНОГО света, один для определения интенсивности зеленого света и последний для определения интенсивности синего света.
Каждая из групп датчиков в этих трех массивах выбирается отдельно в зависимости от требований. Следовательно, он известен как программируемый датчик. Модуль может быть настроен так, чтобы определять один цвет и оставлять другие. Он содержит фильтры для этой цели выбора. Есть четвертый режим без фильтра. В режиме без фильтра датчик обнаруживает белый свет.
Необходимые компоненты
Аппаратное обеспечение: ARDUINO UNO, блок питания (5В), светодиод, JHD_162ALCD (16 * 2LCD), датчик цвета TCS3200.
Программное обеспечение: ARDUINO IDE (ARDUINO nightly).
Принципиальная схема и объяснение работы
В ЖК-дисплее 16x2 всего 16 контактов, если есть подсветка, если нет подсветки, будет 14 контактов. Можно включить или оставить контакты подсветки. Теперь на 14 контактах 8 контактов данных (7-14 или D0-D7), 2 контакта источника питания (1 и 2 или VSS и VDD или GND и + 5 В), 3- й контакт для контроля контрастности (VEE-контролирует толщину символов. показаны) и 3 управляющих контакта (RS, RW и E)
В схеме, как вы можете заметить, я взял только два контрольных контакта. Бит контраста и READ / WRITE используются нечасто, поэтому их можно замкнуть на массу. Это переводит ЖК-дисплей в режим максимальной контрастности и чтения. Нам просто нужно управлять контактами ENABLE и RS, чтобы отправлять символы и данные соответственно.
Подключения, которые выполняются для ЖК-дисплея, приведены ниже:
PIN1 или VSS на землю
PIN2 или VDD или VCC на питание +5 В
PIN3 или VEE на землю (дает максимальный контраст для новичков)
PIN4 или RS (выбор регистра) на PIN8 ARDUINO UNO
PIN5 или RW (чтение / запись) на землю (перевод ЖК-дисплея в режим чтения упрощает взаимодействие для пользователя)
PIN6 или E (включить) к PIN9 ARDUINO UNO
PIN11 или D4 - PIN7 в ARDUINO UNO
PIN12 или D5 - PIN11 ARDUINO UNO
PIN13 или D6 - PIN12 ARDUINO UNO
PIN14 или D7 - PIN13 ARDUINO UNO
Подключения, которые выполняются для датчика цвета, приведены ниже:
VDD до + 5В
GND на ЗЕМЛЮ
OE (выход разрешен) на GND
S0 к контакту 2 UNO
S1 к контакту 3 UNO
S2 к контакту 4 UNO
S3 к контакту 5 UNO
OUT к контакту UNO 10
Цвет, который должен распознаваться датчиком цвета, выбирается двумя контактами S2 и S3. С помощью этих двух выводов логического управления мы можем сообщить датчику, какая интенсивность цветного света должна быть измерена.
Скажем, нам нужно ощутить интенсивность КРАСНОГО цвета, нам нужно установить оба контакта на НИЗКИЙ. Как только это будет сделано, датчик определяет интенсивность и отправляет значение в систему управления внутри модуля.
S2 |
S3 |
Тип фотодиода |
L |
L |
Красный |
L |
ЧАС |
Синий |
ЧАС |
L |
Очистить (без фильтра) |
ЧАС |
ЧАС |
Зеленый |
Система управления внутри модуля показана на рисунке. Интенсивность света, измеренная массивом, отправляется на преобразователь тока в частоту. Что он делает, так это то, что он излучает прямоугольную волну, частота которой зависит от тока, посылаемого ARRAY.
Итак, у нас есть система, которая излучает прямоугольную волну, частота которой зависит от интенсивности света цвета, который выбирается S2 и S3.
Частота сигнала, отправляемого модулем, может модулироваться в зависимости от использования. Мы можем изменить полосу частот выходного сигнала.
S0 |
S1 |
Масштабирование выходной частоты (f 0) |
L |
L |
Выключить |
L |
ЧАС |
2% |
ЧАС |
L |
20% |
ЧАС |
ЧАС |
100% |
Масштабирование частоты выполняется двумя битами S0 и S1. Для удобства мы ограничим масштабирование частоты до 20%. Это делается путем установки S0 на высокий, а S1 на низкий. Эта функция пригодится, когда мы используем модуль в системе с низкой тактовой частотой.
Чувствительность массива к цвету показана на рисунке ниже.
Хотя разные цвета имеют разную чувствительность, для обычного использования это не будет иметь большого значения.
UNO здесь отправляет сигнал модулю для обнаружения цветов, и данные, полученные модулем, отображаются на ЖК-дисплее 16 * 2, подключенном к нему.
UNO определяет три интенсивности цвета отдельно и отображает их на ЖК-дисплее.
Uno может определять длительность импульса сигнала, по которой мы можем получить частоту прямоугольной волны, отправляемой модулем. Имея под рукой частоту, мы можем сопоставить ее с цветом на датчике.
|
Согласно вышеуказанному условию, UNO считывает длительность импульса на 10- м выводе UNO и сохраняет ее значение в виде целого числа «частота».
Мы собираемся сделать это для всех трех цветов для распознавания цвета. Все три интенсивности цвета отображаются частотами на ЖК-дисплее 16x2.