Skip to main content

Sensor Pendeteksi Warna - Sortir Barang Dengan Sensor Warna | TCS230

Video Kali ini kita akan membahas mengenai sensor warna. Menunjukkan bagaimana cara kerjanya, cara menghubungkannya, cara mengkalibrasinya, dan cara mengekstrak nilai RGB dari sensor.

TCS230 (juga dikenal sebagai TCS3200) adalah sensor warna yang populer dan murah. Ini menghasilkan gelombang yang frekuensinya mencerminkan intensitas warna.

Ini juga memiliki fitur interupsi yang dapat diprogram yang dapat Anda atur untuk memicu sebagai respons terhadap warna tertentu.

Sensor ini akan berguna dalam merancang robot yang mengikuti warna, penyortir produk yang di tandai dengan sebuah warna khusus. 

Tetapi sebelum Anda menggunakannya, Anda harus mengkalibrasinya.

Sensor ini dapat di aplikasikan atau diterapkan pada industri-industri untuk penyortiran atau pemisahan suatu produk pada saat dikemas atau packing, sehingga proses penyortiran dapat lebih cepat dan efisien.




Copy dan paste script dibawah ini:

FILE 1: KALIBRASI SENSOR

#define S0 4
#define S1 5
#define S2 6
#define S3 7
#define sensorOut 8

int redFrequency = 0;
int greenFrequency = 0;
int blueFrequency = 0;

void setup() {
  // Setting the outputs
  pinMode(S0, OUTPUT);
  pinMode(S1, OUTPUT);
  pinMode(S2, OUTPUT);
  pinMode(S3, OUTPUT);
  
  pinMode(sensorOut, INPUT);
  
  digitalWrite(S0,HIGH);
  digitalWrite(S1,LOW);
  
  Serial.begin(9600);
}
void loop() {
  digitalWrite(S2,LOW);
  digitalWrite(S3,LOW);
  
  redFrequency = pulseIn(sensorOut, LOW);
  
  Serial.print("R = ");
  Serial.print(redFrequency);
  delay(100);
  
  digitalWrite(S2,HIGH);
  digitalWrite(S3,HIGH);
  
  greenFrequency = pulseIn(sensorOut, LOW);
  
  Serial.print(" G = ");
  Serial.print(greenFrequency);
  delay(100);
 
  digitalWrite(S2,LOW);
  digitalWrite(S3,HIGH);
  
  blueFrequency = pulseIn(sensorOut, LOW);
  
  Serial.print(" B = ");
  Serial.println(blueFrequency);
  delay(100);
}




FILE 2: SENSOR WARNA

#include <Wire.h>
//I2C Library
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);

#define S0 4
#define S1 5
#define S2 6
#define S3 7
#define sensorOut 8

int redFrequency = 0;
int greenFrequency = 0;
int blueFrequency = 0;

int redColor = 0;
int greenColor = 0;
int blueColor = 0;

void setup() 
{
 //inisial LCD
 lcd.begin (16,2); //LCD untuk ukuran 20x4
 lcd.backlight();
 lcd.setCursor(0,1);
 lcd.print("Warna : ");
  Serial.begin(9600); 
  // Setting output
  pinMode(S0, OUTPUT);
  pinMode(S1, OUTPUT);
  pinMode(S2, OUTPUT);
  pinMode(S3, OUTPUT);
  
  // Setting sensorout
  pinMode(sensorOut, INPUT);
  
  // Setting Frekuensi
  digitalWrite(S0,HIGH);
  digitalWrite(S1,LOW);
  
  // Begins serial LCD
  Serial.begin(9600);
}

void loop() {
  // Setting RED Color
  digitalWrite(S2,LOW);
  digitalWrite(S3,LOW);
  lcd.setCursor(2,0);
  lcd.print("PINTU SHARE");
  redFrequency = pulseIn(sensorOut, LOW);
  redColor = map(redFrequency, 22, 103, 255,0);
  
  Serial.print("R = ");
  Serial.print(redColor);
  delay(100);
  
  // Setting GREEN Color
  digitalWrite(S2,HIGH);
  digitalWrite(S3,HIGH);
  
  greenFrequency = pulseIn(sensorOut, LOW);
  greenColor = map(greenFrequency, 41, 129, 255, 0);
  Serial.print(" G = ");
  Serial.print(greenColor);
  delay(100);
 
  // Setting BLUE Color
  digitalWrite(S2,LOW);
  digitalWrite(S3,HIGH);
  
  blueFrequency = pulseIn(sensorOut, LOW);
  blueColor = map(blueFrequency, 16, 122, 255, 0);
  
  Serial.print(" B = ");
  Serial.print(blueColor);
  delay(100);

  if(redColor > greenColor && redColor > blueColor){
      Serial.println("Warna Merah");
    lcd.setCursor(8, 1);
   lcd.print("Merah  "); 

  }
  if(greenColor > redColor && greenColor > blueColor){
    Serial.println("Warna Hijau");
     lcd.setCursor(8, 1);
   lcd.print("Hijau  "); 

  }
  if(blueColor > redColor && blueColor > greenColor){
    Serial.println(" Warna Biru");
    lcd.setCursor(8, 1);
   lcd.print("Biru  "); 

  
  }
}




Comments

Popular posts from this blog

Motor Servo dengan Sensor Ultrasonic

Coding: #include <Servo.h> #define trigPin 12 #define echoPin 11 Servo servo; int sound = 250; void setup() { Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); servo.attach(9); } void loop() { long duration, distance; digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = (duration/2) / 29.1; if (distance < 10) { Serial.println("the distance is less than 10"); servo.write(180); delay(1500); } else { servo.write(0); } if (distance > 60 || distance <= 0){ Serial.println("The distance is more than 60"); } else { Serial.print(distance); Serial.println(" cm"); } delay(500); }

Control LED dengan Push Button Arduino, Push Button Part 1

  Control LED dengan Push Button Arduino, Push Button Part 1 PUSH BUTTON PART 1. Belajar bagaimana cara membuat tombol atau push button untuk menyalakan lampu LED dengan menggunakan Arduino. Untuk Script silahkan copy paste dibawah ini: int led=2; int button=4; void setup(){   pinMode(led,OUTPUT);   pinMode(button,INPUT); } void loop(){   if(digitalRead(button)==HIGH){     digitalWrite(led,HIGH);     }   else{    digitalWrite(led,LOW);    } }