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
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