TCS3200D - czujnik koloru

TCS3200D - czujnik koloru

Opis TCS3200D

TCS3200D - Moduł umożliwia pomiar koloru (składowych RGB - Red, Green, Blue), którego wyjściem jest częstotliwość zależna od natężenia światła wybranej barwy. 

Obsługiwany przy pomocy dowolnego mikrokontrolera lub zestawu uruchomieniowego, w tym Arduino.

Wyjściem jest sygnał, którego częstotliwość zależna jest od natężenia światła, wybranej za pomocą wyprowadzeń S2 i S3, barwy.

Specyfikacja:

  • Napięcie zasilania: 2,7 V do 5,5 V
  • Programowalny wybór koloru
  • Programowalna częstotliwość wyjściowa:
    • 500 - 600 kHz
    • 100 - 120 kHz
    • 10 - 12 kHz
  • Błąd nieliniowości na poziome 0,2% przy 50kHz
  • Wyprowadzenia: goldpin
  • Prosta komunikacja z mikrokontrolerem (odczyt częstotliwości)
  • Zintegrowane 4 diody LED oświetlające badany przedmiot
  • Wymiary: 32 x 25 mm

Wyprowadzenia

Czujnik posiada cztery wyprowadzenia typu goldpin - raster 2,54 mm, co umożliwia bezpośrednie wpięcie w płytkę stykową.

Nazwa Opis
VCC Napięcie zasilania modułu w zakresie 2.7 -5.5V.
GND Masa układu.
OE Aktywacja wyjścia częstotliwościowego OUT. Aktywowane stanem niskim.
OUT Wyjście częstotliwościowe
S0, S1 Wejście służące do skalowania częstotliwości wyjściowej.
S2, S3 Wejście służące do wyboru typu fotodiody.

 

PDF Dokumentacja czujnika TCS3200D.

 

TCS3200D + Arduino czujnik kolorów

Za pomocą wejść konfiguracyjnych S0 i S1 wybierany jest preskaler (dzielnik) wyjściowego sygnału częstotliwościowego, dzięki któremu możemy dobrać odpowiedni zakres częstotliwości dla wykorzystywanego mikrokontrolera. Wejścia S2 i S3 służą do wyboru rodzaju fotodiody pomiarowej: czerwonej, zielonej, niebieskiej lub opcji clear czyli bez filtracji (mierzone będą wszystkie składowe RGB jednocześnie).

 

Wybór dzielnika częstotliwości wyjściowej

S0

S1

Skala częstotliwości wyjściowej 
w stosunku do fo

L

  Czujnik wyłączony

L

H

2 %

10-12 kHz 

H

L

20 %

100-120 kHz 

H

 H 100 % 
500-600 kHz

 

 

Wybór typu fotodiody (filtracji)

S0

S1

Rodzaj fotodiody

L

L czerwona (R)

L

H niebieska (B)

H

L clear (RGB)
(bez filtracji) 

H

H zielona (G)

L (Low) - stan niski
H (High) - stan niski

 

Schemat podłączenia TCS3200d do Arduino

Fritzing Schemat podłączenia TCS3200d (fritzing)

 

int s0 = 3, s1 = 4, s2 = 5, s3 = 6; 	//piny modułu połączone z Arduino
int out = 2;                      	//pin 2 Arduino i OUT od czujnika
int flag = 0;
byte counter = 0;
byte countR = 0, countG = 0, countB = 0;

void setup() {
  Serial.begin(9600);             //inicjalizacja monitora szeregowego
  pinMode(s0, OUTPUT);            //ustawienie pinów jako wyjścia
  pinMode(s1, OUTPUT);
  pinMode(s2, OUTPUT);
  pinMode(s3, OUTPUT);
}

void TCS() {
  flag = 0;
  digitalWrite(s1, HIGH);
  digitalWrite(s0, HIGH);
  digitalWrite(s2, LOW);
  digitalWrite(s3, LOW);
  attachInterrupt(0, ISR_INTO, LOW);
  timer0_init();
}

void ISR_INTO() {
  counter++;
}

void timer0_init(void) {
  TCCR2A = 0x00;
  TCCR2B = 0x07; //częstotliwość zegara - 1024
  TCNT2 = 100;   //przepełnienie 10 ms
  TIMSK2 = 0x01; //pozwolenie na przerwanie
}

int i = 0;

ISR(TIMER2_OVF_vect) {          //timer 2, 10ms przepełnienie 10ms. funkcja przerwanie wewnętrzengo przepełnienia
  TCNT2 = 100;
  flag++;

  if (flag == 1) {              //pobranie i wyświetlenie na ekranie składowych RGB
    countR = counter;
    Serial.print("red=");
    Serial.print(countR, DEC);
    Serial.print("tt");
    digitalWrite(s2, HIGH);
    digitalWrite(s3, HIGH);
  } else if (flag == 2) {
    countG = counter;
    Serial.print("green=");
    Serial.print(countG, DEC);
    Serial.print("t");
    digitalWrite(s2, LOW);
    digitalWrite(s3, HIGH);
  } else if (flag == 3) {
    countB = counter;
    Serial.print("blue=");
    Serial.print(countB, DEC);
    Serial.print("t");
    Serial.println("n");
    digitalWrite(s2, LOW);
    digitalWrite(s3, LOW);
  } else if (flag == 4) {
    flag = 0;
  }
  counter = 0;
}

void loop() {                  //główna pętla programu
  TCS();
  delay(500);
  while (1);
}

 

Przykładowe działanie czujnika w programie Arduino Studio

Działanie czujnika w Arduino Studio

 

Opracowano na podstawie:
https://botland.com.pl/czujniki-swiatla-i-koloru/1477-modul-z-czujnikiem-koloru-tcs3200d.html

 

 

Zbudowano na Drupalu