Датчик цвета TCS230 	 	Датчик TCS230 используется для определения цвета объекта на расстоянии до 10 мм.
 	Датчик умеет распознавать 4 цвета: 	
 	- Красный
 	- Синий
 	- Зеленый
 	- Белый 	
 	В качестве чувствительного элемента используется микросхема TCS230, которая преобразует интенсивность цветового спектра в выходной меандр (50% ) различной частоты. Чем выше частота выходного сигнала, тем ниже интенсивность цветового спектра. 	  	
 	 	В цветовой модели RGB, каждый цвет можно представить в виде комбинации трех цветов: R (красный), G (зеленый) , B (синий).  Поэтому для определения цвета  объекта  необходимо измерять три спектра: красный, синий, зелёный. Микросхема TCS230 состоит из массива фотодиодов 8x8, 16 фотодиодов имеют голубой фильтр, 16 фотодиодов – зеленый фильтр, 16 фотодиодов –  красный фильтр и 16 фотодиодов без фильтра.  Датчик позволяет устанавливать фильтр (подачей комбинации цифровых сигналов) для измерения каждого компонента спектра R, G, B.
 	На корпусе датчика расположено четыре светодиода – они используются для подсветки места измерения. Чтобы измерения были корректны, датчик нужно ставить на светодиоды параллельно к объекту измерения. 	 	
Характеристики.   	  	Для определения цвета объекта, датчик TCS230 необходимо подключить к микроконтроллеру. Подачей сигналов на контакты S0, S1 устанавливаем масштабирование частоты импульсов на выходе OUT датчика: 	  	
  	  	Подачей сигналов на контакты S2, S3 устанавливаем фильтр измерения спектра: 	 	
 	  	Схема подключения датчика к плате Arduino: 	  	
 	  	И скетч для определения компонентов цвета R, G, B для измеряемого объекта: 	 
 	//Перечисление Colours – RED,GREEN,BLUE and ClEAR
 	enum Colours {RED,GREEN,BLUE,CLEAR};
 	// пины Arduino для подключения контактов s2, s3, OUT датчика
 	#define s2Pin 2
 	#define s3Pin 3
 	#define outPin 4  	  	 
 	void setup()
 	{
 	  // запуск последовательного порта
 	  Serial.begin(9600);
 	  // настройка контактов s2, s3, OUT в режим OUTPUT
 	  pinMode(s2Pin, OUTPUT); //Pin Mode s2Pin as Output
 	  pinMode(s3Pin, OUTPUT); //Pin Mode s2Pin as Output
 	  pinMode(outPin, INPUT); //Pin Mode s2Pin as Input
 	}
 	void loop()
 	{ 	 
 	  Serial.print(ReadColour(RED));
 	  // Вывод данных R, G, B в последовательный порт 
 	  Serial.print(" : ");
 	  Serial.print(ReadColour(GREEN));
 	  Serial.print(" : ");
 	  Serial.print(ReadColour(BLUE));
 	  Serial.print(" : ");
 	  Serial.println(ReadColour(CLEAR));
 	} 	 
 	// Функция определения интенсивности выбранногот фильтра
 	byte ReadColour(byte Colour)
 	{  
 	  switch(Colour)
 	  {
 	    case RED:
 	      digitalWrite(s2Pin, LOW);
 	      digitalWrite(s3Pin, LOW);
 	      break; 	    
 	    case GREEN:
 	      digitalWrite(s2Pin, HIGH);
 	      digitalWrite(s3Pin, HIGH);
 	      break;     	      
 	    case BLUE:
 	      digitalWrite(s2Pin, LOW);
 	      digitalWrite(s3Pin, HIGH);
 	      break; 	      
 	    case CLEAR:
 	      digitalWrite(s2Pin, HIGH);
 	      digitalWrite(s3Pin, LOW);
 	      break;
 	  }
 	  // масштабирование к интервалу 0 - 255  
 	  return map(pulseIn(outPin, HIGH), 30, 2500, 255, 0); 	  	
Описание датчика цвета TCS230  PDF