Gambar Rangkaian AUTOCLAVE
Progam Arduino AUTOCLAVE
#include <Servo.h>
Servo myservo;
int pos0 = 0;
int pos3 = 30;
int pos6 = 60;
int pos9 = 90;
int pos12 = 120;
int pos15 = 150;
int pos18 = 180;
const int analogInPin1 = A0;
const int analogInPin2 = A1;
const int analogInPin3 = A2;
int sensorValue1 = 0;
int outputValue1 = 0;
int sensorValue2 = 0;
int outputValue2 = 0;
int sensorValue3 = 0;
int outputValue3 = 0;
const int buttonPin1 = 3;
const int buttonPin2 = 4;
const int buttonPin3 = 5;
const int buttonPin4 = 6;
const int buttonPin5 = 7;
const int buttonPin6 = 8;
const int LedPin1 = 10;
const int LedPin2 = 11;
const int LedPin3 = 12;
const int LedPin4 = 13;
const int LedPin5 = 2;
int buttonState1 = 0;
int buttonState2 = 0;
int buttonState3 = 0;
int buttonState4 = 0;
int buttonState5 = 0;
int buttonState6 = 0;
int v=0;
int w=0;
int x=0;
int y=0;
int z=0;
void setup() {
myservo.attach(9);
Serial.begin(9600);
pinMode(buttonPin1, INPUT);
pinMode(buttonPin2, INPUT);
pinMode(buttonPin3, INPUT);
pinMode(buttonPin4, INPUT);
pinMode(buttonPin5, INPUT);
pinMode(buttonPin6, INPUT);
pinMode(LedPin1, OUTPUT);
pinMode(LedPin2, OUTPUT);
pinMode(LedPin3, OUTPUT);
pinMode(LedPin4, OUTPUT);
pinMode(LedPin5, OUTPUT);
}
void loop(){
buttonState1 = digitalRead(buttonPin1);
if (buttonState1 == LOW
&& w==0 && x==0 && y==0 && z==0 &&
v==0) {
v=1;
myservo.write(pos18);
delay(500);
myservo.write(pos0);
delay(100);
}
buttonState2 = digitalRead(buttonPin2);
if (buttonState2 == LOW
&& v==1 && z==0 && x==0 && y==0) {
w=1;
myservo.write(pos9);
delay(100);
}
buttonState3 = digitalRead(buttonPin3);
if (buttonState3 == LOW
&& v==1 && z==0 && w==1 && y==0)
{
x=1;
myservo.write(pos12);
delay(100);
}
buttonState4 = digitalRead(buttonPin4);
if (buttonState4 == LOW
&& v==1 && z==0
&& x==1 && w==1)
{
y=1;
myservo.write(pos15);
delay(100);
}
buttonState5 = digitalRead(buttonPin5);
if (buttonState5 == LOW &&
v==1 && w==0 && x==0 && y==0)
{
v=0;
z=0;
delay(100);
}
buttonState6 =
digitalRead(buttonPin6);
if (buttonState6 == LOW
&& v==1 && w==1 && x==0 && y==0) {
z=1;
delay(100);
}
if (buttonState6 == LOW
&& v==1 && w==1 && x==1 && y==0) {
z=1;
delay(100);
}
if (buttonState6 == LOW
&& v==1 && w==1 && x==1 && y==1) {
z=1;
delay(100);
}
if (w==1 && z==1
&& x==0 && y==0){
digitalWrite(LedPin3,HIGH);
Serial.println(" ON PROSRESS");
station_1();
mixing_1();
mixing_1();
Serial.println(" AUTO ANALYZING ");
READ_SENSOR1();
Reset_1();
digitalWrite(LedPin3,LOW);
digitalWrite(LedPin4,HIGH);
delay(1000);
digitalWrite(LedPin4,LOW);
delay(500);
}
if (w==1 && x==1
&& y== 0 && z==1){
digitalWrite(LedPin3,HIGH);
Serial.println(" ON PROSRESS");
station_2();
mixing_1();
mixing_1();
Serial.println(" AUTO ANALYZING ");
READ_SENSOR1();
delay(1000);
READ_SENSOR2();
Reset_1();
digitalWrite(LedPin3,LOW);
digitalWrite(LedPin4,HIGH);
delay(1000);
digitalWrite(LedPin4,LOW);
delay(500);
}
if (w==1 && x==1
&& y==1 && z==1){
digitalWrite(LedPin3,HIGH);
Serial.println(" ON PROSRESS");
station_3();
mixing_1();
mixing_1();
Serial.println(" AUTO ANALYZING ");
READ_SENSOR1();
delay(1000);
READ_SENSOR2();
delay(1000);
READ_SENSOR3();
Reset_1();
digitalWrite(LedPin3,LOW);
digitalWrite(LedPin4,HIGH);
delay(1000);
digitalWrite(LedPin4,LOW);
delay(500);
}
}
void station_1(){
myservo.write(pos0);
delay(1000);
myservo.write(45);
delay(1000);
digitalWrite(LedPin1,HIGH);
digitalWrite(LedPin2,HIGH);
delay(3000);
digitalWrite(LedPin1,LOW);
digitalWrite(LedPin2,LOW);
delay(1000);
myservo.write(pos0);
delay(1000);
}
void station_2(){
myservo.write(pos0);
delay(1000);
myservo.write(45);
delay(1000);
digitalWrite(LedPin1,HIGH);
digitalWrite(LedPin2,HIGH);
delay(3000);
digitalWrite(LedPin1,LOW);
digitalWrite(LedPin2,LOW);
delay(1000);
myservo.write(84);
delay(1000);
digitalWrite(LedPin1,HIGH);
digitalWrite(LedPin2,HIGH);
delay(3000);
digitalWrite(LedPin1,LOW);
digitalWrite(LedPin2,LOW);
delay(1000);
myservo.write(pos0);
delay(1000);
}
void station_3 () {
myservo.write(pos0);
delay(1000);
myservo.write(45);
delay(1000);
digitalWrite(LedPin1,HIGH);
digitalWrite(LedPin2,HIGH);
delay(3000);
digitalWrite(LedPin1,LOW);
digitalWrite(LedPin2,LOW);
delay(1000);
myservo.write(84);
delay(1000);
digitalWrite(LedPin1,HIGH);
digitalWrite(LedPin2,HIGH);
delay(3000);
digitalWrite(LedPin1,LOW);
digitalWrite(LedPin2,LOW);
delay(1000);
myservo.write(125);
delay(1000);
digitalWrite(LedPin1,HIGH);
digitalWrite(LedPin2,HIGH);
delay(3000);
digitalWrite(LedPin1,LOW);
digitalWrite(LedPin2,LOW);
delay(1000);
myservo.write(pos0);
delay(1000);
}
void mixing_1(){
myservo.write(pos3);
delay(1000);
myservo.write(pos6);
delay(1000);
myservo.write(pos9);
delay(1000);
myservo.write(pos12);
delay(1000);
myservo.write(pos15);
delay(1000);
myservo.write(pos18);
delay(1000);
myservo.write(pos0);
delay(2000);
}
void Reset_1(){
z=0;
w=0;
x=0;
y=0;
}
void READ_SENSOR1(){
digitalWrite(LedPin5,HIGH);
sensorValue1 = analogRead(analogInPin1);
Serial.print("setation 1 =
" );
Serial.println(sensorValue1);
delay(500);
if(sensorValue1 >= 550 &&
sensorValue1 <= 565){
Serial.println("LULUS UJI");
}
else{
Serial.println("ERROR STATE 1");
}
digitalWrite(LedPin5,LOW);
}
void READ_SENSOR2(){
digitalWrite(LedPin5,HIGH);
sensorValue2 = analogRead(analogInPin2);
Serial.print("station 2 = " );
Serial.println(sensorValue2);
delay(500);
if(sensorValue2 >= 90 &&
sensorValue2 <= 110){
Serial.println("LULUS UJI");
}
else{
Serial.println("ERROR STATE 2");
}
digitalWrite(LedPin5,LOW);
}
void READ_SENSOR3(){
digitalWrite(LedPin5,HIGH);
sensorValue3 = analogRead(analogInPin3);
Serial.print("station 3 = " );
Serial.println(sensorValue3);
delay(500);
if(sensorValue3 >= 290 &&
sensorValue3 <= 310){
Serial.println("LULUS UJI");
}
else{
Serial.println("ERROR STATE 3");
}
digitalWrite(LedPin5,LOW);
Tidak ada komentar:
Posting Komentar