Akses Sensor Warna TCS 3200 dengan Indikator Output LED RGB

Indobot Academy

Sensor TCS 3200 dapat berfungsi dalam berbagai hal salah satunya untuk menyeleksi benda sesuai warna, untuk mengetahui sensor bekerja dengan baik atau tidak kita akan mencoba mempresentasikan warna yang dideteksi oleh sensor pada LED RGB.

 

1. Alat / Bahan
  • Arduino IDE                                          Download
  • Arduino UNO                                        1 Buah
  • Sensor TCS 3200                                 1 Buah
  • LED RGB Common Anode                   1 Buah
  • Resistor 220 ohm                                  1 Buah
  • Project Board                                        1 Buah
  • Kabel Jumper                                        Secukupnya

Segera dapatkan komponen elektronik di atas silahkan temukan disini.

2. Skema Rangkaian

Gambar Rangkaian Akses Sensor Warna TCS 3200 dengan Indikator Output LED RGB

Keterangan:

  • 5V – VCC TCS 3200, Kaki resistor
  • GND – GND TCS 3200
  • D2 – S0 TCS 3200
  • D3 – S1 TCS 3200
  • D4 – S2 TCS 3200
  • D5 – S3 TCS 3200
  • D8 – Out TCS 3200
  • D9 – kaki LED Red
  • D10 – Kaki LED Blue
  • D11 – Kaki LED Green
  • Kaki Resistor – VCC LED

 

Belajar Elektronika, Arduino, dan IoT step by step dengan bantuan tangga belajar? Segera daftar sekarang dan dapatkan PROMO

 

3. Langkah Kerja
  1. Pertama siapkan alat dan bahan
  2. Kedua lakukan proses wiring dengan menggunakan Gambar skematik rangkaian diatas
  3. Ketiga lakukan kalibrasi sebelum memprogram sensor. Tutorial kalibrasi dapat dilihat disini:
    Cara Kalibrasi Sensor Warna TCS 3200
  4. Kemudian buka software Arduino IDE yang telah terinstal pada laptop/komputer
  5. Selanjutnya Ketikkan sketch program pada halaman Arduino IDE
  6. Segera lakukan proses uploading program

 

4. Sketch Program
 
/* Program Akses Sensor Warna TCS 3200 dengan Indikator Output LED RGB dibuat oleh Indobot */

#define S0 2              //S0 di pin D2
#define S1 3              //S1 di pin D3            
#define S2 4              //S2 di pin D4
#define S3 5              //S3 di pin D5
#define sensorOut 8       //Out di pin D8
#define R 9               //R LED di pin D9
#define G 10              //G LED di pin D10
#define B 11              //B LED di pin D11

int frequencyR = 0;       //Variabel frekuensi R
int frequencyG = 0;
int frequencyB = 0;

void setup() {
  pinMode(S0, OUTPUT);    //Setting output
  pinMode(S1, OUTPUT);
  pinMode(S2, OUTPUT);
  pinMode(S3, OUTPUT);
  pinMode(sensorOut, INPUT);  //Setting keluaran sensor sebagai input

  pinMode(R, OUTPUT);     //Setting LED RGB sebagai output
  pinMode(G, OUTPUT);
  pinMode(B, OUTPUT);
  
  // Setting frequency-scaling to 20%
  digitalWrite(S0,HIGH);
  digitalWrite(S1,LOW);
  
  Serial.begin(9600);     //Mulai komunikasi serial
}
void loop() {
  //Setting baca merah
  digitalWrite(S2,LOW);
  digitalWrite(S3,LOW);
  frequencyR = pulseIn(sensorOut, LOW);
  frequencyR = map(frequencyR, 13,36,255,0);
  Serial.print("R= ");
  Serial.print(frequencyR);
  Serial.print("  ");
  
  //Setting baca hijau
  digitalWrite(S2,HIGH);
  digitalWrite(S3,HIGH);
  frequencyG = pulseIn(sensorOut, LOW);
  frequencyG = map(frequencyG, 15,37,255,0);
  Serial.print("G= ");
  Serial.print(frequencyG);
  Serial.print("  ");
  
  //Setting baca biru
  digitalWrite(S2,LOW);
  digitalWrite(S3,HIGH);
  frequencyB = pulseIn(sensorOut, LOW);
  frequencyB = map(frequencyB, 11,30,255,0);
  Serial.print("B= ");
  Serial.print(frequencyB);
  Serial.println("  ");

  if(frequencyR 150 frequencyG 150  frequencyB 150){  //Jika nilai warna150, maka
    digitalWrite(R, HIGH);    //LED RGB mati
    digitalWrite(G, HIGH);
    digitalWrite(B, HIGH);
  }
  else if(frequencyR frequencyG){ //Jika warna merah dominan, maka
    if(frequencyR  frequencyB){
      digitalWrite(R, LOW);         //LED RGB menyala merah
      digitalWrite(G, HIGH);
      digitalWrite(B, HIGH);
    }
  }
  else if(frequencyG&;gt;frequencyB){   //Jika warna hijau dominan, maka
    if(frequencyGfrequencyR){      
      digitalWrite(R, HIGH);
      digitalWrite(G, LOW);         //LED RGB menyala hijau
      digitalWrite(B, HIGH);
    }
  }
  else if(frequency;frequencyR){   //Jika warna biru dominan, maka
    if(frequencyfrequencyG){
      digitalWrite(R, HIGH);
      digitalWrite(G, HIGH);
      digitalWrite(B, LOW);         //LED RGB menyala biru
    } 
  }
  delay(200);   //Jeda pembacaan 200ms
}

Kesimpulan:

Program bekerja dengan mendeteksi warna yang ada di depan sensor. Ketika terdapat benda berwarna didepan sensor, sensor akan mendeteksi frequensi warna tersebut kemudian mepresentasikan warna benda pada LED RGB sesuai dengan warna benda tersebut.

Bikin project tanpa ribet beli komponen sana-sini? Starter Kit Arduino/IoT bisa jadi solusi mu!

Mau belajar elektronika dasar? Arduino? atau Internet of Things? Segera ikuti kursus online Indobot Academy!

Ingin Tahu Program Kami Lebih Lanjut?

Silahkan isi Formulir Dibawah Ini untuk Diskusi dengan Tim Indobot Academy.

Baca Juga

Bagikan:

Tags

Tinggalkan komentar

whatsapp