lampiran datasheet sensor warna tcs3200
TRANSCRIPT
61
LAMPIRAN
Datasheet Sensor Warna TCS3200
62
63
DATASHEET Arduino
64
65
Datasheet Motor Servo MG995
66
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() {
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);
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);
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;
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
{
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
}
}