Hi, for my project there are 3 type of items that go on an conyaor belt and when it reaches a particular ir and does it job
firstly the user will click any one button from 3 to chose which type of item it is
then the belt start and finds an ir and does the job which it has but noting is going as expected every individual items run by them self even with out the need of user pressing the button can you gus help me out
the code is
#include <Servo.h>
//initial variable
const int button1 = 14 ; //type 1 button IN PIN A0
const int button2 = 15 ; //type 2 button IN PIN A1
const int button3 = 16 ; //type 3 button IN PIN A2
int belt = 6 ; // belt relay
int waterIr = 2 ; // Ir uesd to locate waterpump
int waterRelay = 0 ; // water pump
Servo myservo; // srvo to bring down the vibmoters
int pos = 0; // variable to store the servo position
int vibMotors = 10 ; // vibration moters
int ledIr = 3 ; // Ir uesd to locate leds
int led = 8 ; // to control leds
int saniIr = 4; // Ir uesd to locate sanitisers
int relay1 = 11; // sanitiser 1 40%
int relay2 =12 ; // sanitiser 2 30%
int relay3 = 13; // sanitiser 3 food %
int airIr = 5; // Ir uesd to locate air pump
int air = 7; // air pump
//***************************////////////***************************////////////***************************////////////***************************////////////***************************//////////
//***************************////////////***************************////////////***************************////////////***************************////////////***************************//////////
void setup() {
// put your setup code here, to run once:
pinMode(button1,INPUT_PULLUP);
pinMode(button2,INPUT_PULLUP);
pinMode(button3,INPUT_PULLUP);
pinMode(waterIr,INPUT);
pinMode(ledIr,INPUT);
pinMode(saniIr,INPUT);
pinMode(button3,INPUT);
pinMode(belt,OUTPUT);
myservo.attach(9);
pinMode(vibMotors,OUTPUT);
pinMode(led,OUTPUT);
pinMode(relay1,OUTPUT);
pinMode(relay2,OUTPUT);
pinMode(relay3,OUTPUT);
pinMode(air,OUTPUT);
Serial.begin(9600);
}
//***************************////////////***************************////////////***************************////////////***************************////////////***************************//////
//***************************////////////***************************////////////***************************////////////***************************////////////***************************//////
void vibaration_servo (){
Serial.println("START"); // print start in control panal
digitalWrite(vibMotors,HIGH); // turn on the vibration motors
delay(180000); // for 3mins
Serial.println("STOP"); // print stop in control panal
digitalWrite(vibMotors,LOW); // turn off the vibration motors
for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}
//***************************////////////***************************////////////***************************////////////***************************////////////***************************//////
//***************************////////////***************************////////////***************************////////////***************************////////////***************************//////
void ledSet (){
Serial.print("25 LED STATUS = " ); //print 25 LED STATUS = in control panal
Serial.println("ON"); //print on in control panal
digitalWrite(led,LOW); //turn on led
delay(120000); // for 2 min
digitalWrite(led,HIGH); //turn off led
Serial.print("25 LED STATUS = "); //print 25 LED STATUS = in control panal
Serial.println("OFF"); //print off in control panal
}
//***************************////////////***************************////////////***************************////////////***************************////////////***************************//////
//void emergncy space
//***************************////////////***************************////////////***************************////////////***************************////////////***************************//////
void loop() {
// put your main code here, to run repeatedly:
bool currentstate1 = digitalRead(button1); // read value for button1 every time
bool currentstate2 = digitalRead(button2); // read value for button2 every time
bool currentstate3 = digitalRead(button3); // read value for button3 every time
//***********Type1 items **********//////////
if (currentstate1 == HIGH){
digitalWrite(belt,HIGH) ; // start belt
Serial.println("ON3");
if (ledIr == HIGH){
digitalWrite(belt,LOW) ; // stops belt
Serial.println("ON4");
ledSet () ; // call led function
digitalWrite(belt,HIGH) ; // start belt
}//led ir loop closed
if (saniIr == HIGH) {
digitalWrite(belt,LOW); // stops belt
digitalWrite(relay1,HIGH); // start sanitiser1
delay (60000); // for 1 min
digitalWrite(relay1,LOW); // stops sanitiser1
digitalWrite(belt,HIGH) ; // start belt
}//sanitiser ir closed
if (airIr == HIGH) {
digitalWrite(belt,LOW); // stops belt
Serial.println("ON5");
digitalWrite(air,HIGH); // start airpump
Serial.println("ON666");
delay (90000); // for 1 min
digitalWrite(air,LOW); // stop airpump
digitalWrite(belt,HIGH) ; // start belt
}//air pump ir closed
} // type 1 loop closed
//***********Type2 items **********//////////
if (currentstate2 == HIGH){
digitalWrite(belt,HIGH) ; // start belt
if (ledIr == HIGH){
digitalWrite(belt,LOW) ; // stops belt
ledSet () ; // call led function
digitalWrite(belt,HIGH) ; // start belt
}//led ir loop closed
if (saniIr == HIGH) {
digitalWrite(belt,LOW); // stops belt
digitalWrite(relay2,HIGH); // start sanitiser1
delay (60000); // for 1 min
digitalWrite(relay2,LOW); // stops sanitiser1
digitalWrite(belt,HIGH) ; // start belt
}//sanitiser ir closed
if (airIr == HIGH) {
digitalWrite(belt,LOW); // stops belt
digitalWrite(air,HIGH); // start airpump
delay (90000); // for 1 min
digitalWrite(air,LOW); // stop airpump
digitalWrite(belt,HIGH) ; // start belt
}//air pump ir closed
} // type 2 loop closed
//***********Type 3 items **********//////////
if (currentstate3 == HIGH){
digitalWrite(belt,HIGH) ; // start belt
if (waterIr == HIGH) {
digitalWrite(belt,LOW) ; // stop belt
digitalWrite(waterRelay,HIGH); //turns on the water pump
delay(60000); // for 1 min
digitalWrite(waterRelay,LOW); //turns off the water pump
vibaration_servo () ; // call vib & servo motors
digitalWrite(belt,HIGH) ; // start belt
}// water loop closed
if (ledIr == HIGH){
digitalWrite(belt,LOW) ; // stops belt
ledSet () ; // call led function
digitalWrite(belt,HIGH) ; // start belt
}//led ir loop closed
if (saniIr == HIGH) {
digitalWrite(belt,LOW); // stops belt
digitalWrite(relay3,HIGH); // start sanitiser1
delay (30000); // for 0.5 min
digitalWrite(relay3,LOW); // stops sanitiser1
digitalWrite(belt,HIGH) ; // start belt
}//sanitiser ir closed
if (airIr == HIGH) {
digitalWrite(belt,LOW); // stops belt
digitalWrite(air,HIGH); // start airpump
delay (150000); // for 2.5 min
digitalWrite(air,LOW); // stop airpump
digitalWrite(belt,HIGH) ; // start belt
}//air pump ir closed
digitalWrite(belt,LOW) ; // stop belt
}//type 3 loop closed
} // main loop closed