Подключение датчика цвета к Ардуино

Подключение датчика цвета к Ардуино

Датчик оттенка цвета TCS230 для Ардуино способен распознавать 4 цвета и преобразует интенсивность цветового спектра в выходной сигнал различной частоты. Рассмотрим устройство датчика цвета, схему подключения к Arduino UNO и представим несколько скетчей с примерами использования датчика и вывода информации о цветовом спектре (цвет предмета) на монитор порта компьютера.

Характеристики датчика TCS230, описание

В цветовой палитре RGB, любой цвет можно представить в виде комбинации трех основных цветов: красный (R), зеленый (G) и синий (B). Поэтому для определения цвета необходимо измерять красный, синий и зелёный спектр. В качестве чувствительного элемента в датчике используется микросхема TCS230, состоящая из массива фотодиодов 8×8 — по 16 фотодиодов на три цвета и 16 фотодиодов без фильтра.

Датчик цвета TCS230 схема
Датчик цвета TCS230 схема, описание, характеристики

Технические характеристики:

— напряжение питания от 2,7 до 5,5 В;
— программируемые цвета и выходная частота сигнала;
— функция автоматического отключения питания;
— малая погрешность выходной частоты — 0,2%.

Датчик используется для определения оттенка цвета объекта на расстоянии до 10 мм, для подсветки места измерения на датчике имеется четыре светодиода. С обратной стороны датчика имеется две колодки с четырьмя контактами. Через эти контакты датчик TCS230 подключается к микроконтроллеру Arduino. Контакты «S0» и «S1» служат для масштабирования частоты импульсов на выходе «OUT» датчика оттенка цвета.

Как подключить датчик TCS230 к Ардуино

Для занятия нам понадобятся следующие детали:

  • Плата Arduino Uno;
  • Макетная плата;
  • USB-кабель;
  • Датчик оттенка цвета TCS230;
  • 3 светодиода;
  • 3 резистора 220 Ом;
  • Провода «папка-мамка» и «папка-папка».
Схема подключения датчика цвета TCS230 к Ардуино
Схема подключения датчика цвета TCS230 к Ардуино

После сборки схемы, загрузите скетч, размещенный далее. Готовый скетч можно скачать здесь

// назначаем имена для портов
#define s2  2
#define s3  3
#define out 4
// освобождаем память для переменных
byte red = 0;
byte green = 0;
byte blue = 0;

void setup() // процедура setup
{
 pinMode(s2, OUTPUT);
 pinMode(s3, OUTPUT);
 pinMode(out, INPUT);
 Serial.begin(9600);
} 
 
void loop() // процедура loop
{ 
 color();
 // выводим значения цветов
 Serial.print(" RED :" + String(red));
 Serial.print(" GREEN : " + String(green));
 Serial.println(" BLUE : " + String(blue));
 delay(500);
}
 
void color() // процедура color
{
 // если 2 и 3 порты отключить, то получим значение красного цвета
 digitalWrite(s2, LOW);
 digitalWrite(s3, LOW);
 red = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);

 // если 3 порт включить, а 2 отключить, то получим синий цвет
 digitalWrite(s3, HIGH);
 blue = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);

 // если 2 включить, а 3 отключить, то получим зеленый цвет
 digitalWrite(s2, HIGH);
 green = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH); 
}

Пояснения к коду:

  1. Процедура void color() используется для опроса датчика цвета;
  2. В процедуре void loop() выводим данные на монитор порта, как на фото ниже.
Вывод информации с датчика TCS2300
Вывод информации с датчика TCS2300 на монитор порта

Калибровка датчика TCS230

Калибровка должна выполняться при хорошем освещении и на одинаковом расстоянии до предмета. При изменении освещенности в помещении или расстояния до предмета — все настройки могут сбиться. Обратите внимание на то, что датчик легко определяет красный цвет, но плохо различает синий от зеленого. Для вывода информации о цвете предмета на монитор порта, добавьте в процедуру void loop() следующие строчки:

if(red < 20 && blue < 20 && green < 20) {Serial.println("WHITE");}

if(red > 60 && blue > 90 && green > 90) {Serial.println("BLACK");}

Задание для самостоятельного выполнения:

  1. Измените скетч так, чтобы датчик мог определять синий, зеленый и красный цвет;
  2. Сделайте вывод информации о цвете на монитор порта компьютера;
  3. Сделайте вывод информации о цвете предмета на LCD-дисплей.

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *