Prototype Alat Penyortiran Buah Tomat Berdasarkan Tingkat Kematanggan Menggunakan Arduino Uno

 



Teknologi Arduino Uno adalah sebuah kit elektronik atau papan rangkaian elektronik yang bersifat open-source yang diproduksi oleh Atmel. Arduino Uno memiliki mikrokontroler ATmega328, 14 pin digital, 6 input analog, clock speed 16 MHz, koneksi USB, jack listrik, header ICSP, dan tombol reset. Pengembangan Arduino Uno telah membantu dalam memanfaatkan potensi Internet of Things (IoT) untuk meningkatkan keterampilan teknologi masa depan, seperti konsep IoT, pemrograman, dan pengembangan proyek praktis. Arduino Uno juga memungkinkan pengguna untuk membangun prototipe proyek dengan cepat, mendukung pemrograman dalam bahasa yang mudah dipahami, dan memiliki keunggulan dalam pengembangan project mikrokontroler. Dengan sumber daya open-source dan komunitas pengembang yang besar, Arduino menjadi platform yang menarik untuk membangun proyek inovatif dan solusi untuk industri yang berkembang pesat, seperti (IoT).


Tujuan

        Membuat prototype alat penyortiran otomatis agar memudahkan penyortiran buah tomat lebih cepat dan mengurangi tenaga manusia.

        Alat

  1. Arduino Uno

  2. Sensor TCS3200

  3. Motor Servo

  4. PWM Speed Controler

  5. Motor DC

  6. BreadBoard

  7. LCD I2C


Rangkaian Scema

Berdasarkan skema rangkaian pada gambar penghubung antara Arduino dan komponen lainnya dapat dihubungkan dengan pin yang ada pada setiap modul, instalasi antar pin dapat dilihat sebagai berikut:

a.     Pin GND Arduino dihubungkan ke pin GND Lcd 16x2 I2C, GND TCS3200, Gnd Servo1 dan Servo2, GND PWM Speed Controler.

b.    Pin 5V Arduino dihubungkan ke pin VCC TCS3200, VCC Lcd 16x2 I2c, VCC Servo1 dan Servo2, 5V PWM Speed Controler.

c.     Pin SCL(A5) Arduino dihubungkan ke pin SCL Lcd 16x2 I2C.

d.    Pin SDA(A4) Arduino dihubungkan ke pin SDA Lcd 16x2 I2C.

e.     Pin 5 Arduino dihubungkan ke pin Servo1

f.      Pin 6 Arduino dihubungkan ke pin Servo2

g.    Pin 8 Arduino dihubungkan ke pin S0 TCS3200

h.    Pin 9 Arduino dihubungkan ke pin S1 TCS3200

i.      Pin 10 Arduino dihubungkan ke pin S2 TCS3200

j.      Pin 11 Arduino dihubungkan ke pin S3 TCS3200

k.    Pin 12 Arduino dihubungkan ke pin OUT TCS3200

Scrip Program

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>

#define S0 8
#define S1 9
#define S2 10
#define S3 11
#define sensorOut 12

// Definisikan pin untuk servo
#define servo1 5
#define servo2 6

// Definisikan objek servo
Servo servo1_obj;
Servo servo2_obj;

// Definisikan objek LCD I2C
LiquidCrystal_I2C lcd(0x27, 20, 4);

unsigned int red,green,yellow;
int color;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);

  // Inisialisasi servo
  servo1_obj.attach(servo1);
  servo2_obj.attach(servo2);

    // Inisialisasi LCD I2C
  lcd.init();
  lcd.backlight();

  pinMode(S0, OUTPUT);
  pinMode(S1, OUTPUT);
  pinMode(S2, OUTPUT);
  pinMode(S3, OUTPUT);
  pinMode(sensorOut, INPUT);

  digitalWrite(S0,HIGH);
  digitalWrite(S1,LOW);
}

void loop() {
  // put your main code here, to run repeatedly:
baca_warna();

  if(red > green && red > yellow && green < 100 && red < 250){
    lcd.setCursor(0, 0);
    lcd.print("Tomat Merah");
    servo1_obj.write(20);
    delay(3000);
    servo1_obj.write(90);
    delay(300);
  }
  else if(yellow < green && yellow < red && green < 190 && yellow < 100){
    lcd.setCursor(0, 0);
    lcd.print("Tomat Kuning");
    servo2_obj.write(160);
    delay(3000);
    servo2_obj.write(90);
    delay(300);
  }
  else if(green < red && green > yellow && green > 100 && green > 190){
    lcd.setCursor(0, 0);
    lcd.print("Tomat Hijau");
    delay(3000);
  }
  else{
    lcd.setCursor(0, 0);
    lcd.print("Warna Lainnya");
    delay(300);
  }
  // if((red > 100 && red <210) && (yellow > green && green > 100 ) ){
  //   lcd.setCursor(0, 0);
  //   lcd.print("warna kuning");
  //   //servo2_obj.write(160);
  //   //delay(3000);
  //   //servo2_obj.write(90);
  //   delay(300);
  // }
  // else if((red > 100 && red <210) && (yellow < green && green > 100 ) ){
  //   lcd.setCursor(0, 0);
  //   lcd.print("Tomat Hijau");
  //   delay(300);
  // }
  // else if((red > 100 && red <210) && (yellow < green && green > 100 ) ){
  //   lcd.setCursor(0, 0);
  //   lcd.print("Tomat Merah");
  //   //servo1_obj.write(20);
  //   //delay(3000);
  //   //servo1_obj.write(90);
  //   delay(300);
  // }
  // else{
  //   lcd.setCursor(0, 0);
  //   lcd.print("Warna Lainnya");
  //   delay(300);
  // }
}

void baca_warna(){
  //baca merah
  digitalWrite(S2,LOW);
  digitalWrite(S3,LOW);

  red = pulseIn(sensorOut, LOW);
  red = map(red, 70,210,255,0);

  Serial.print("R= ");Serial.print(red);
  Serial.print(" ");

  //baca hijau
  digitalWrite(S2,HIGH);
  digitalWrite(S3,HIGH);

  green = pulseIn(sensorOut, LOW);
  green = map(green, 60,220,255,0);

  Serial.print("G= ");Serial.print(green);
  Serial.print(" ");

  //baca biru
  digitalWrite(S2,LOW);
  digitalWrite(S3,HIGH);

  yellow = pulseIn(sensorOut, LOW);
  yellow = map(yellow, 70,200,255,0);

  Serial.print("Y= ");Serial.print(yellow);
  Serial.print(" ");

  color = (red+green+yellow)/3;
  Serial.print("Warna = ");Serial.print(color);
  Serial.println("  ");delay(100);
}

Youtube Saya






Komentar