//declaring input pins
const int IRSoap = 11;
const int IRsanitizer = 12;
const int echoPin = 9;
//declaring output pins
const int triggerPin = 10;
const int waterRelay = 2;
const int soapRelay = 4;
const int sanitizerRelay = 3;
//declare some global variables
bool checkUltrasonic;
bool soapPump;
bool sanitizerPump;
bool ultrasonic(int threshold) {
long duration;
int distance;
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);
// Calculating the distance
distance = duration * 0.034 / 2;
//Serial.print("Distance: ");
//Serial.println(distance);
if (distance <= threshold) {
return true;
}
else {
return false;
}
}
void setup() {
//enable serial for debugging purposes
Serial.begin(9600);
//setup output first
pinMode(triggerPin, OUTPUT);
pinMode(waterRelay, OUTPUT);
pinMode(soapRelay, OUTPUT);
pinMode(sanitizerPump, OUTPUT);
//setup input then
pinMode(triggerPin, OUTPUT);
pinMode(waterRelay, OUTPUT);
pinMode(soapRelay, OUTPUT);
}
void loop() {
checkUltrasonic = ultrasonic(160);
soapPump = digitalRead(IRSoap);
sanitizerPump = digitalRead(IRsanitizer);
digitalWrite(waterRelay, checkUltrasonic);
digitalWrite(soapRelay, soapPump);
digitalWrite(sanitizerRelay, sanitizerPump);
}