Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
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
}
}