LAMPIRAN A
PROGRAM MIKROKONTROLER ARDUINO UNO
A.1 SensorTCS3200.ino
#include <Servo.h>
#include <LiquidCrystal.h> #define S0 A0
#define S1 A1 #define S2 A2 #define S3 A3
#define sensorOut A4 #define button 9
Servo topServo; Servo bottomServo; //Stopwatch
long startTime; long elapsedTime; //Sorting
int frequency = 0; int color = 0; int i=0;
int R, G, B;
int kr[5], kg[5], kb[5]; int play = 0;
int orange, Khijau, hijau;
LiquidCrystal lcd(7, 6, 5, 4, 3, 2); //LCD
void tampil_LCD()
{
//LCD
lcd.clear();
lcd.setCursor(0,0); lcd.print("R="); lcd.print(R); lcd.print(" G="); lcd.print(G); lcd.print(" B="); lcd.print(B); delay(100); }
{
Serial.println("Kalibrasi warna"); Serial.println("Waiting...");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Calibration");
for(i=0;i<3;i++) // 3 tahap kalibrasi {
readcolor(); kr[i]=R; kg[i]=G; kb[i]=B;
delay(200);
lcd.setCursor(11+i,0); lcd.print(".");
}
kondisiButton(); R = sort(kr); G = sort(kg); B = sort(kb); //SERIAL MONITOR Serial.print("r="); Serial.print(R);
Serial.print(" g="); Serial.print(G);
Serial.print(" b="); Serial.println(B); Serial.print(""); Serial.println();
Serial.print(elapsedTime); Serial.println(" ms");
Serial.print(""); Serial.println(); }
int cek_warna() {
kalibrasi();
if(R<0 && G<0 && B<0) return 0; else
{
if(G>R && G>B) return 3; else if(R>G && R>B)
{
if(abs(R-G)>50) return 4; else return 5;
} }
void setup() {
pinMode(S0, OUTPUT); pinMode(S1, OUTPUT); pinMode(S2, OUTPUT); pinMode(S3, OUTPUT);
pinMode(sensorOut, INPUT); pinMode(button, INPUT);
digitalWrite(S0, HIGH);//setting frequency-scaling to 20%
digitalWrite(S1, LOW); topServo.attach(11); bottomServo.attach(12); Serial.begin(9600); lcd.begin(16,2); lcd.clear();
lcd.setCursor(0,0); }
void kondisiButton()
{
if(digitalRead(button)==HIGH) {
if(!play) {play=true;} else {play=false;}
delay(50); //bouncing }
}
void loop()
{
topServo.write(85);
bottomServo.write(100); kondisiButton();
if(play) {
lcd.clear();
lcd.setCursor(7,1); lcd.print(Khijau); lcd.setCursor(12,1); lcd.print(hijau); }
else {
startTime = millis (); color = cek_warna();
elapsedTime = millis () - startTime; }
switch (color)
{
case 1:
Serial.print("BIRU "); // Warna Dasar break;
case 2:
Serial.print("MERAH "); // Warna Dasar break;
case 3:
tampil_LCD();
lcd.setCursor(0,1);
lcd.print("HIJAU");
Serial.println("HIJAU "); Serial.println(" ");
hijau++; delay(50);
topServo.write(120); //Arah buah ke wadah hijau break;
case 4:
tampil_LCD(); lcd.setCursor(0,1);
lcd.print("ORANGE");
Serial.println("ORANGE "); Serial.println(" ");
orange++; delay(50);
topServo.write(45); // Arah Buah ke wadah orange break;
case 5:
tampil_LCD();
lcd.setCursor(0,1);
lcd.print("KUNING-HIJAU");
Khijau++;
// custom function - readcolor()
int readcolor()
{
Serial.print(frequency);//printing RED frequency Serial.print(" ");
frequency = map(frequency, 25,70,255,0); B = frequency;
// Printing the value on the serial monitor Serial.print("B= ");//printing name
Serial.print(frequency);//printing Blue frequency Serial.println(" ");
LAMPIRAN B
GAMBAR FLOWCHART PEMOGRAMAN ARDUINO
B.1 Flowchart Pemograman Mikrokontroler Arduino.
Start
Inisialisasi Pin I/O Servo, LCD,
TCS3200
Kondisikan Servo dalam
keadaan default C
Baca kondisi Push Button
If play==true
If i<3
Baca Nilai Sensor Warna TCS3200
Sorting dan ambil nilai terbesar dari nilai yang sering
muncul Tampilkan
Jumlah Buah yang telah di sortir pada
LCD
Return Color = 4 Return Color = 5
B
Ya B
Tidak
B
If color ==1 If color == 2 If color == 3 If color == 4 If color == 5 C
Tampilkan Warna Biru
pada LCD
Tampilkan Warna Merah pada
LCD
Tampilkan Warna Hijau
pada LCD
Tampilkan Warna Orange pada
LCD
Tampilkan Warna Kuning
Hijau pada LCD
End Servo Atas Ke arah
Kanan (120°)
Servo Atas ke arah Kiri (45°)
CURRICULUM VITAE
DATA PRIBADI
Nama : Fadly Tommy
Tempat, Tanggal Lahir : Marjandi, 01 April 1994
Jenis Kelamin : Laki-Laki
Agama : Islam
Kewarganegaraan : Indonesia
Alamat KTP : Dusun V Emplasmen Pabatu, Tebing
Tinggi
Telepon / HP : 081260624547
Email : fadly_tommy@yahoo.co.id
PENDIDIKAN FORMAL SEKOLAH /
UNIVERSITAS FAKULTAS JURUSAN KOTA IPK
PERIODE (TAHUN)
Universitas
Sumatera Utara FMIPA
Teknik
Informatika Medan 3,46 2011 - 2014
SMAN 4 - IPA Tebing Tinggi 8,50 2008 - 2011
SMPN 6 - - Tebing Tinggi - 2005 - 2008
SDN 091292 - - Siantar - 1999 - 2005
KETERAMPILAN KOMPUTER
1. Menguasai Microsoft Office
2. Menguasai Bahasa Pemrograman : C, PHP, MYSQL, CSS dan HTML
3. Kemampuan dalam Bidang Komputer dan Ilmu Robotika
Medan, 24 Januari 2017