Cara Memprogram Sensor Warna TCS230 Pada ESP32

Cara Memprogram Sensor Warna TCS230 Pada ESP32

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 tcs230 dari class Adafruit_TCS230.
  • Parameter TCS230_SI, S3, S2, S1, S0 adalah 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 red paling besar → “Merah”
    • Jika red dan blue besar → “Ungu”
    • Jika semua hampir sama atau tidak jelas → “Tidak Dikenali”

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, dan blueValue.
  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 :

Apa itu ESP32?