Penggunaan Sensor Intensitas Cahaya dengan Mikrokontroler Arduino Nano untuk Mensortir Telur yang Bagus

32

L
A
M
P
I
R
A
N

Universitas Sumatera Utara

33

1. Listing Program Arduino

#include
#include
LiquidCrystal lcd(3, 4, 7, 8, 9, 10);
Servo myservo;

int sen1, sen2, sen3, banding, tbaik=0,
tburuk=0, btn;
int ambtlr=105,baitlr=160,brktlr=50,kaltlr=85;
int ledm=6,ledh=5;

void setup() {
pinMode(2,INPUT_PULLUP);
myservo.attach(12);
pinMode(A0,INPUT);
pinMode(A1,INPUT);
pinMode(A2,INPUT);
pinMode(ledm,OUTPUT);
pinMode(ledh,OUTPUT);

lcd.begin(16, 2);
Serial.begin(9600);

digitalWrite(ledm,1);

Universitas Sumatera Utara


34

digitalWrite(ledh,1);
lcd.setCursor(0, 0);
lcd.print("

DONI HARTONO");

lcd.setCursor(0, 1);
lcd.print("

142406228");

delay(3000);

digitalWrite(ledm,0);
digitalWrite(ledh,0);
myservo.write(brktlr);
banding=analogRead(A0)+10;

}

void sensor(){
delay(1);
sen1=analogRead(A0);
sen2=analogRead(A1);
sen3=analogRead(A2);

Serial.print(sen1);
Serial.print(" || ");
Serial.print(sen2);
Serial.print("

|| ");

Universitas Sumatera Utara

35

Serial.println(sen3);

delay(200);

}

void tombol(){
btn=digitalRead(2);
if(btn==0){
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("JUMLAH TELUR");
lcd.setCursor(2, 1);
lcd.print("SAAT INI: ");
lcd.setCursor(12, 1);
lcd.print(tbaik+tburuk);
delay(3000);

lcd.clear();
lcd.setCursor(0, 0);
lcd.print("TELUR BAIK : ");
lcd.setCursor(13, 0);

lcd.print(tbaik);

Universitas Sumatera Utara

36

lcd.setCursor(0, 1);
lcd.print("TELUR BURUK: ");
lcd.setCursor(13, 1);
lcd.print(tburuk);
delay(5000);
}
}

void kserial(){
if(Serial.available()>0){
char a=Serial.read();
if(a=='1'){
myservo.write(50);//baik kiri
}

else if(a=='2'){
myservo.write(85);//kalibrasi
}
else if(a=='3'){
myservo.write(105);//ambil telur
}
else if(a=='4'){
myservo.write(160); //buruk kanan
}

Universitas Sumatera Utara

37

else if(a=='0'){
sensor();
}
else{
}
Serial.println(a);

}
}

////////////////////////////////////////////////
void programutama(){
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("ADC TELUR: ");
lcd.setCursor(11, 0);
lcd.print(sen1);
lcd.setCursor(0, 1);
lcd.print("KONDISI

: ");

delay(1000);
sensor();

Serial.println("=============================");


Universitas Sumatera Utara

38

if(sen1=930){//976 //920
lcd.setCursor(11, 1);
lcd.print("BURUK");
digitalWrite(ledm,1);

myservo.write(ambtlr);
delay(4000);
myservo.write(brktlr);
delay(2000);

Universitas Sumatera Utara

39

digitalWrite(ledm,0);
tburuk+=1;

}//Eksekusi saat telur tidak baik
myservo.write(brktlr);
lcd.clear();
}
////////////////////////////////////////////////

void loop() {

tombol();
sensor();

if(banding