LAMPIRAN Datasheet Sensor Warna TCS3200

12
61 LAMPIRAN Datasheet Sensor Warna TCS3200

Transcript of LAMPIRAN Datasheet Sensor Warna TCS3200

Page 1: LAMPIRAN Datasheet Sensor Warna TCS3200

61

LAMPIRAN

Datasheet Sensor Warna TCS3200

Page 2: LAMPIRAN Datasheet Sensor Warna TCS3200

62

Page 3: LAMPIRAN Datasheet Sensor Warna TCS3200

63

DATASHEET Arduino

Page 4: LAMPIRAN Datasheet Sensor Warna TCS3200

64

Page 5: LAMPIRAN Datasheet Sensor Warna TCS3200

65

Datasheet Motor Servo MG995

Page 6: LAMPIRAN Datasheet Sensor Warna TCS3200

66

Page 7: LAMPIRAN Datasheet Sensor Warna TCS3200

67

Program Lengan Robot Pemilah Barang Berdasarkan Warna

#include <Servo.h>

Servo motorServo1; //Base

Servo motorServo2; //SHoulder

Servo motorServo3; //ELbow

Servo motorServo4; //Wrist

Servo motorServo5; //Gripper

int s2 = 11; //S2 Sensor Ke Pin 11 Arduino

int s3 = 12; //S3 Sensor Ke Pin 12 Arduino

int outPin = 13; //Output Sensor Ke Pin 13 Arduino

void setup() {

pinMode(s2, OUTPUT);

pinMode(s3, OUTPUT);

pinMode(outPin, INPUT);

Serial.begin(9600); //Menyalakan Port Serial Monitor

motorServo1.attach(2);

motorServo2.attach(3);

motorServo3.attach(4);

motorServo4.attach(5);

motorServo5.attach(6);

}

void loop() {

Page 8: LAMPIRAN Datasheet Sensor Warna TCS3200

68

//Posisi awal

motorServo1.write(90);

motorServo2.write(90);

motorServo3.write(90);

motorServo4.write(90);

motorServo5.write(0);

delay(2000);

//Menuju lokasi objek

motorServo4.write(4);

delay(1000);

motorServo1.write(180);

delay(1000);

motorServo2.write(73);

delay(1000);

motorServo3.write(140);

delay(1000);

motorServo5.write(160);

delay(1000);

//Identifikasi Warna

char color

switch(color) {

case 'r': //Warna Merah

motorServo2.write(90);

delay(1000);

motorServo3.write(140);

Page 9: LAMPIRAN Datasheet Sensor Warna TCS3200

69

delay(1000);

motorServo1.write(0);

delay(1000);

motorServo4.write(40);

delay(2000);

motorServo5.write(0);

delay(1000);

case 'g': //Warna Hijau

motorServo2.write(90);

delay(1000);

motorServo3.write(140);

delay(1000);

motorServo1.write(15);

delay(1000);

motorServo4.write(40);

delay(2000);

motorServo5.write(0);

delay(1000);

case 'b': //Warna Biru

motorServo2.write(90);

delay(1000);

motorServo3.write(140);

delay(1000);

Page 10: LAMPIRAN Datasheet Sensor Warna TCS3200

70

motorServo1.write(30);

delay(1000);

motorServo4.write(40);

delay(2000);

motorServo5.write(0);

delay(1000);

case 'u': //Warna Tidak Terdeteksi

motorServo1.write(90);

motorServo2.write(90);

motorServo3.write(90);

motorServo4.write(90);

motorServo5.write(90);

delay(1000);

delay(5000); //pause

}

delay(5000);

return;

}

char get_color() {

int R;

int G;

int B;

Page 11: LAMPIRAN Datasheet Sensor Warna TCS3200

71

//Membaca Komponen Merah

digitalWrite(s2, LOW);

digitalWrite(s3, LOW);

R = pulseIn(outPin, LOW);

//Membaca Komponen Hijau

digitalWrite(s2, HIGH);

digitalWrite(s3, HIGH);

G = pulseIn(outPin, LOW);

//Membaca Komponen Biru

digitalWrite(s2, LOW);

digitalWrite(s3, HIGH);

B = pulseIn(outPin, LOW);

if((R>5) && (R<11) && (G>16) && (G<26) && (B>16) && (B<26)) //Warna

Merah

{

if (DEBUG) Serial.println("Warna Merah");

color = 'r';

}

else if((R>28) && (R<38) && (G>19) && (G<25) && (B>16) && (B<25))

//Warna Biru

{

if (DEBUG) Serial.println("Warna Biru");

color = 'b';

}

else if((R>14) && (R<20) && (G>7) && (G<13) && (B>7) && (B<13))

//Warna Hijau

{

Page 12: LAMPIRAN Datasheet Sensor Warna TCS3200

72

Serial.println("Warna Hijau");

color = 'g';

}

else

{

Serial.print("R = ");

Serial.print(R);

Serial.print(" G = ");

Serial.print(G);

Serial.print(" B = ");

Serial.println(B);

}

color = 'u'; //Tidak Terdeteksi

}

}