//for bag
#define trigPin1 9 // left
#define echoPin1 10
//for person
#define trigPin2 11 // right
#define echoPin2 12
#define relayPin1 3 //misting
#define relayPin2 4 //valve 1 conveyor
#define relayPin3 5 //valve 2 person
const int distance1 = 50;
const int distance2 = 70;
const int sprayTime = 3000;
void setup() {
pinMode(trigPin1, OUTPUT);
pinMode(trigPin2, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(echoPin2, INPUT);
Serial.begin(9600);
}
void loop() {
if (readSensor(trigPin1, echoPin1) < distance1){
relayOn(relayPin1, relayPin2);
delay(sprayTime);
relayOff(relayPin1, relayPin2);
}
if (readSensor(trigPin2, echoPin2) < distance2){
relayOn(relayPin1, relayPin3);
delay(sprayTime);
relayOff(relayPin1, relayPin3);
}
/*
while (readSensor(trigPin1, echoPin1) > distance1){
Serial.println("Distance too far");
}
digitalWrite(relayPin1, HIGH);
Serial.println("Spray On");
delay(sprayTime);
digitalWrite(relayPin1, LOW);
Serial.println("Spray Off");
while (readSensor(trigPin2, echoPin2) > distance2){
Serial.println("Distance2 too far");
}
digitalWrite(relayPin2, HIGH);
Serial.println("Valve On");
digitalWrite(relayPin1, HIGH);
Serial.println("Spray On");
delay(sprayTime);
digitalWrite(relayPin1, LOW);
Serial.println("Spray Off");
delay(500);
digitalWrite(relayPin2, LOW);
Serial.println("Valve Off");
*/
}
float readSensor(int trigPin, int echoPin){
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
unsigned long duration = pulseIn(echoPin, HIGH);
float distance = duration * 0.034/2;
return distance;
}
void relayOn(int relay1, int relay2){
digitalWrite(relay1, HIGH);
digitalWrite(relay2, HIGH);
}
void relayOff(int relay1, int relay2){
digitalWrite(relay1, LOW);
digitalWrite(relay2, LOW);
}