Sensor Warna TCS3200 adalah sensor yang digunakan untuk mendeteksi warna dari
objek di sekitarnya. Sensor ini menggunakan array fotodioda yang dipasang pada
sebuah chip dan mengubah intensitas cahaya warna menjadi sinyal frekuensi.
TCS3200 dapat mendeteksi warna dengan mengukur komponen merah (Red), hijau
(Green), dan biru (Blue) dari cahaya yang dipantulkan oleh objek.
Untuk menghubungkan TCS3200
ke Arduino dan membaca nilai warna, berikut adalah langkah-langkah rangkaian
dan konfigurasi yang perlu dilakukan:
Komponen
yang Diperlukan:
- Arduino Uno
(atau board Arduino lainnya)
- Sensor Warna TCS3200
- Kabel Jumper
- Breadboard
(opsional)
- Resistor (opsional)
- Beberapa sensor mungkin memerlukan resistor eksternal untuk beberapa
pin.
Pin
pada TCS3200 dan Fungsi:
Berikut adalah pin pada TCS3200
dan fungsinya yang perlu dihubungkan ke Arduino:
Pin
TCS3200 |
Pin
Arduino |
Fungsi |
VCC |
5V |
Catu daya (5V) |
GND |
GND |
Ground |
S0 |
Pin 4 |
Pengaturan frekuensi (S0) |
S1 |
Pin 5 |
Pengaturan frekuensi (S1) |
S2 |
Pin 6 |
Pengaturan mode warna (S2) |
S3 |
Pin 7 |
Pengaturan mode warna (S3) |
OUT |
Pin 8 (Arduino) |
Sinyal output (frekuensi) |
Skema
Rangkaian Koneksi TCS3200 ke Arduino:
Berikut adalah skema rangkaian
untuk menghubungkan TCS3200 ke Arduino Uno:
sql
Copy
code
+---------------------+
|
TCS3200 |
|---------------------|
| VCC
--------------> 5V (Arduino)
| GND
--------------> GND (Arduino)
| S0
--------------> Pin 4
(Arduino)
| S1
--------------> Pin 5
(Arduino)
| S2
--------------> Pin 6
(Arduino)
| S3
--------------> Pin 7
(Arduino)
| OUT
--------------> Pin 8
(Arduino)
+---------------------+
Penjelasan
Pin dan Koneksi:
- VCC
(5V): Menghubungkan sensor ke 5V pada Arduino.
- GND:
Menghubungkan sensor ke Ground (GND) pada Arduino.
- S0 dan S1:
Digunakan untuk mengatur frekuensi output dari sensor. Anda dapat
mengatur pin ini untuk mengubah mode frekuensi sensor.
- S2 dan S3:
Digunakan untuk memilih saluran warna (merah, hijau, biru, atau
transparan) yang akan diukur.
- OUT: Pin
output yang menghasilkan sinyal frekuensi yang mewakili tingkat
cahaya yang diterima oleh sensor berdasarkan warna yang dipilih.
Langkah-Langkah
untuk Menggunakan TCS3200:
- Membaca Warna:
- Pin S2 dan S3 diatur untuk memilih warna
(Red, Green, Blue, atau Clear).
- Pin S0 dan S1 digunakan untuk mengatur
output frekuensi (biasanya dalam mode pengaturan untuk pengoperasian
standar, Anda akan menetapkan S0 = LOW dan S1 = HIGH untuk
frekuensi output tinggi).
- Sensor mengeluarkan sinyal frekuensi di OUT
yang mewakili intensitas warna tertentu.
- Menyesuaikan Frekuensi:
- S0 dan S1
digunakan untuk mengatur frekuensi output dari sensor. Ada dua mode:
- Mode Frekuensi Tinggi: S0 = LOW, S1 = HIGH
- Mode Frekuensi Rendah: S0 = HIGH, S1 = LOW
Anda
dapat menyesuaikan mode frekuensi ini sesuai dengan kebutuhan proyek Anda.
- Menghitung Intensitas Warna:
- Anda perlu mengatur S2 dan S3 untuk
memilih warna yang ingin dibaca, seperti:
- S2 = LOW, S3 = LOW untuk membaca merah.
- S2 = LOW, S3 = HIGH untuk membaca hijau.
- S2 = HIGH, S3 = LOW untuk membaca biru.
- S2 = HIGH, S3 = HIGH untuk membaca clear
(transparan).
- Membaca Output:
- Output dari pin OUT adalah frekuensi yang
berhubungan dengan intensitas warna yang dipantulkan oleh objek yang
diuji. Anda dapat menggunakan pulseIn() di Arduino untuk mengukur
durasi pulsa (waktu tinggi atau rendah), yang kemudian dikonversi menjadi
nilai warna.
Contoh
Program untuk Membaca Warna dengan TCS3200:
Berikut adalah contoh kode untuk
menghubungkan TCS3200 ke Arduino dan membaca warna:
cpp
Copy
code
//
Pin untuk TCS3200
int
S0 = 4;
int
S1 = 5;
int
S2 = 6;
int
S3 = 7;
int
OUT = 8;
void
setup() {
Serial.begin(9600); // Inisialisasi Serial Monitor
// Set pin mode
pinMode(S0, OUTPUT);
pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT);
pinMode(OUT, INPUT);
// Set frekuensi output ke tinggi
digitalWrite(S0, LOW);
digitalWrite(S1, HIGH);
}
void
loop() {
// Membaca nilai merah
digitalWrite(S2, LOW);
digitalWrite(S3, LOW);
int redValue = pulseIn(OUT, LOW);
// Membaca nilai hijau
digitalWrite(S2, LOW);
digitalWrite(S3, HIGH);
int greenValue = pulseIn(OUT, LOW);
// Membaca nilai biru
digitalWrite(S2, HIGH);
digitalWrite(S3, LOW);
int blueValue = pulseIn(OUT, LOW);
// Menampilkan hasil ke Serial Monitor
Serial.print("Red: ");
Serial.print(redValue);
Serial.print("\tGreen: ");
Serial.print(greenValue);
Serial.print("\tBlue: ");
Serial.println(blueValue);
delay(1000);
// Tunggu 1 detik sebelum pembacaan berikutnya
}
Penjelasan
Program:
- S0 dan S1
digunakan untuk mengatur output frekuensi.
- S2 dan S3
digunakan untuk memilih warna yang ingin dibaca (Red, Green, Blue).
- Fungsi pulseIn() digunakan untuk mengukur durasi
pulsa OUT, yang menunjukkan intensitas warna yang terdeteksi.
- Nilai yang dibaca dikirimkan ke Serial Monitor
sehingga Anda bisa melihat intensitas warna yang terdeteksi.
Penutupan:
Dengan rangkaian dan kode di atas,
Anda dapat membaca dan memproses warna yang terdeteksi oleh sensor warna
TCS3200. Anda bisa mengembangkan lebih lanjut proyek ini, misalnya dengan
menyalakan LED dengan warna tertentu berdasarkan hasil deteksi atau membuat
sistem pengenalan warna untuk aplikasi lain.