Kumpulan Tutorial, Referensi dan Project Arduino Open Source
Minggu, 18 Desember 2016
Tutorial Penggunaan Sensor Warna TCS230 / TCS3200
Tutorial dan contoh sketch coding Cara penggunaan Sersor Warna TCS230 / TCS3200
TCS230 adalah sebuah Programmable Converter 'Color Light' menjadi Frekuensi (Programmable Color-Light to Frequency Converter).
TCS230 adalah penggabungan dari Silicon Photodiode dan 'Current to Frequency Converter' pada sebuah IC CMOS single monolithic.Output sensor ini adalah 'Gelombang Persegi' (siklus 50%) dengan frekuensi yang berbanding lurus dengan intensitas cahaya (radiasi).
Converter cahaya ke frekuensi membaca sebuah array 8 x 8 foto dioda. Enam belas dioda memiliki filter biru, 16
dioda memiliki filter hijau, 16 dioda memiliki filter merah, dan 16 dioda jelas tanpa filter.
Empat jenis (warna) dari dioda yang interdigitated untuk meminimalkan efek non-keseragaman insiden
radiasi. Semua 16 dioda dengan warna yang sama terhubung dalam rangkaian paralel yang mana dioda
ini digunakan selama mode aktif pin terpilih (S0,S1,S2,S3).
Berikut adalah Wiring sensor Warna TCS230/TCS3200 ke Arduino :
TCS230 <--> Arduino
------------------------------
S0 <--> D3
S1 <--> D4
OE <--> Tidak Digunakan
GND <--> Pin GND
S2 <--> D5
S3 <--> D6
OUT <--> D7
VCC <--> Pin 5V
---------------------------------
Penggunaan Pin bisa menggunakan pin selain diatas karena penggunaan sensor in tidak membutuhkan pin khusus dan juga tidak perlu menggunakan library khusus.
Berikut adalah Contoh Sourche Code untuk melakukan test pembacaan warna oleh sensor warna TCS230/3200 dan hasil pembacaan (berupa komposisi RGB) dapat kita tampilkan di serial monitor/lcd dan juga hasil pembacaan komposisi RGB kita gunakan untuk Generate Warna pada RGB LED untuk menampilkan Warna LED sesuai warna yang terbaca sensor.
Silahkan rangkai sensor dan Led sesuai contoh wiring diatas kemudian Upload sketch coding dibawah ini dan anda bisa melihat hasil pembacaan warna pada 'Serial Monitor' Arduino IDE dan hasil warnanya dapat ditampilkan pada RGB LED yang ada di rangkaian.
//-------- www.belajarduino.com ------------//--------- support by www.tokopedia.com/rajacell ---------//---------- write by dani-Rajacell ---------//Wiring PIN Sensor TCS3200 / TCS230ints0=3;//Pin S0 ke Pin D3 Arduinoints1=4;//Pin S1 ke Pin D3 Arduinoints2=5;//Pin S2 ke Pin D3 Arduinoints3=6;//Pin S3 ke Pin D3 Arduinointout=7;//Pin OUT ke Pin D3 Arduino// LED Pin sebagai indikator Warna Object terdeteksiconstintLED=13;voidTCS3200setup(){pinMode(LED,OUTPUT);pinMode(s2,OUTPUT);pinMode(s3,OUTPUT);pinMode(s0,OUTPUT);pinMode(s1,OUTPUT);return;}voidsetup(){//Set Color SensorTCS3200setup();//Setting OUT COlor LED//RGB LED Common Cathode (Diffused RGB LED)pinMode(9,OUTPUT);//Red LedpinMode(10,OUTPUT);//Green LedpinMode(11,OUTPUT);//Blue Led//Memulai koneksi Serial dengan Serial Monitor Arduino IDESerial.begin(115200);delay(100);//delay set to loop}voidloop(){//Looping Color DetectionSerial.print(detectColor(out));//Delay Color Scannerdelay(100);}unsignedintdetectColor(inttaosOutPin){//Tolerance adalah nilai minimal sebuah OUT sensor yang di anggap sebagai 'WARNA TERDETEKSI'//Fungsinya untuk menghindari Noise hasil baca sensor dan Iddle Time Sensor (saat tidak ada object)//Nilai Tolerance 1-10 doubleisPresentTolerance=1;doubleisPresent=colorRead(taosOutPin,0,0)/colorRead(taosOutPin,0,1);Serial.print("isPresent:");Serial.println(isPresent,2);Serial.print("isPresentTolerance curently set to:");Serial.println(isPresentTolerance,2);if(isPresent<isPresentTolerance){Serial.println("nothing is in front of sensor");return0;}doublered,blue,green;doublewhite=colorRead(taosOutPin,0,1);unsignedintmaxColor=white;unsignedintred2,blue2,green2;//Red Color Detection modered=white/colorRead(taosOutPin,1,1);red2=red*255/maxColor;//Green Color Detection modegreen=white/colorRead(taosOutPin,3,1);green2=green*255/maxColor;//Blue Color Detection modeblue=white/colorRead(taosOutPin,2,1);blue2=blue*255/maxColor;Serial.print("red :");Serial.println(red2);//Generate RED Color to RGB LEDif(red2>20){analogWrite(9,red2);}else{analogWrite(9,0);}Serial.print("green :");Serial.println(green2);//Generate GREEN Color to RGB LEDif(green2>20){analogWrite(10,green2);}else{analogWrite(10,0);}Serial.print("blue :");Serial.println(blue2);//Generate BLUE Color to RGB LEDif(blue2>20){analogWrite(11,blue2);}else{analogWrite(11,0);}}unsignedintcolorRead(unsignedinttaosOutPin,unsignedintcolor,booleanLEDstate){pinMode(taosOutPin,INPUT);taosMode(1);intsensorDelay=1;if(color==0){digitalWrite(s3,LOW);digitalWrite(s2,HIGH);}elseif(color==1){digitalWrite(s3,LOW);digitalWrite(s2,LOW);}elseif(color==2){digitalWrite(s3,HIGH);digitalWrite(s2,LOW);}if(color==3){digitalWrite(s3,HIGH);digitalWrite(s2,HIGH);}unsignedintreadPulse;if(LEDstate==0){digitalWrite(LED,LOW);}if(LEDstate==1){digitalWrite(LED,HIGH);}delay(sensorDelay);readPulse=pulseIn(taosOutPin,LOW,25000)/2;if(readPulse<.1){readPulse=25000;}taosMode(0);returnreadPulse;}voidtaosMode(intmode){if(mode==0){digitalWrite(LED,LOW);digitalWrite(s0,LOW);digitalWrite(s1,LOW);}elseif(mode==1){digitalWrite(s0,HIGH);digitalWrite(s1,HIGH);}elseif(mode==2){digitalWrite(s0,HIGH);digitalWrite(s1,LOW);}elseif(mode==3){digitalWrite(s0,LOW);digitalWrite(s1,HIGH);}return;}
Komentar ini telah dihapus oleh pengarang.
BalasHapusko tidak jalan ya
BalasHapusAda beberapa perbaikan untuk source code nya
BalasHapusom mau nanya perbedaan sensor tcs3200 dengan tcs3200 gy-31 apa si ? dan kelebihan nya apa.
BalasHapusterimakasih
mintak tolong dimana saya bisa dapatkan library sensor Warna TCS untuk program ISIS Proteus (Untuk simulasinya)
BalasHapusterima Kasih, mohon bantuannya..
Ada contoh rangkaian diproteusnya ga bg?
BalasHapus