Sensor Warna TCS230 adalah modul sensor yang digunakan untuk mendeteksi warna dari suatu objek. Berikut ini adalah cara memprogram sensor warna TCS230 :
#include <Arduino.h>
#include <Wire.h>
#include <Adafruit_TCS230.h>
Adafruit_TCS230 tcs230 = Adafruit_TCS230(TCS230_SI, TCS230_S3, TCS230_S2, TCS230_S1, TCS230_S0);
String identifikasiWarna(float red, float green, float blue) {
if (red > green && red > blue) {
return "Merah";
} else if (green > red && green > blue) {
return "Hijau";
} else if (blue > red && blue > green) {
return "Biru";
} else if (red > green && blue > green) {
return "Ungu";
} else if (green > red && blue > red) {
return "Cyan";
} else if (red > blue && green > blue) {
return "Kuning";
} else {
return "Tidak Dikenali";
}
}
void setup() {
Serial.begin(9600);
tcs230.begin();
}
void loop() {
float redValue = tcs230.readRed();
float greenValue = tcs230.readGreen();
float blueValue = tcs230.readBlue();
Serial.print("Komponen Warna - Merah: ");
Serial.print(redValue);
Serial.print(", Hijau: ");
Serial.print(greenValue);
Serial.print(", Biru: ");
Serial.println(blueValue);
String color = identifikasiWarna(redValue, greenValue, blueValue);
Serial.println("Warna: " + color);
}
Berikut penjelasan dari kode di atas :
1. Library dan Objek Sensor
#include <Arduino.h>
#include <Wire.h>
#include <Adafruit_TCS230.h>
Arduino.h: Header dasar untuk fungsi Arduino (otomatis disertakan pada platform tertentu).Wire.h: Digunakan untuk komunikasi I2C (meskipun TCS230 berbasis digital, library ini kadang tetap menyertakannya).Adafruit_TCS230.h: Library khusus dari Adafruit untuk mengontrol sensor warna TCS230.
Adafruit_TCS230 tcs230 = Adafruit_TCS230(TCS230_SI, TCS230_S3, TCS230_S2, TCS230_S1, TCS230_S0);
- Membuat objek
tcs230dari classAdafruit_TCS230. - Parameter
TCS230_SI, S3, S2, S1, S0adalah pin kontrol sensor (harus didefinisikan sebelumnya atau di library). - Objek ini akan digunakan untuk membaca nilai warna dari sensor.
2. Fungsi Identifikasi Warna
String identifikasiWarna(float red, float green, float blue) {
if (red > green && red > blue) {
return "Merah";
} else if (green > red && green > blue) {
return "Hijau";
} else if (blue > red && blue > green) {
return "Biru";
} else if (red > green && blue > green) {
return "Ungu";
} else if (green > red && blue > red) {
return "Cyan";
} else if (red > blue && green > blue) {
return "Kuning";
} else {
return "Tidak Dikenali";
}
}
- Fungsi ini menentukan nama warna berdasarkan nilai RGB yang dibaca dari sensor.
- Logika perbandingan digunakan untuk menentukan warna dominan.
- Contoh:
- Jika nilai
redpaling besar → “Merah” - Jika
reddanbluebesar → “Ungu” - Jika semua hampir sama atau tidak jelas → “Tidak Dikenali”
- Jika nilai
3. Fungsi setup()
void setup() {
Serial.begin(9600);
tcs230.begin();
}
Serial.begin(9600): Memulai komunikasi serial dengan kecepatan 9600 baud (untuk debugging via Serial Monitor).tcs230.begin(): Menginisialisasi sensor warna.
4. Fungsi loop()
void loop() {
float redValue = tcs230.readRed();
float greenValue = tcs230.readGreen();
float blueValue = tcs230.readBlue();
- Membaca nilai intensitas Merah, Hijau, dan Biru dari sensor, disimpan dalam variabel
redValue,greenValue, danblueValue.
Serial.print("Komponen Warna - Merah: ");
Serial.print(redValue);
Serial.print(", Hijau: ");
Serial.print(greenValue);
Serial.print(", Biru: ");
Serial.println(blueValue);
- Menampilkan nilai RGB ke Serial Monitor.
String color = identifikasiWarna(redValue, greenValue, blueValue);
Serial.println("Warna: " + color);
- Menjalankan fungsi
identifikasiWarna()untuk menentukan warna dominan, lalu mencetak hasilnya.
untuk diskusi bisa kontak dibawah ini :

Sosial media :





