const int trigPin = 9; const int echoPin = 10; const int ProxSensor = 2; const int relayPin = 12; int inputVal = 0; long duration; int distance; char piInput = 'N'; void setup() { pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output pinMode(echoPin, INPUT); // Sets the echoPin as an Input pinMode(LED_BUILTIN, OUTPUT); pinMode(relayPin, OUTPUT); digitalWrite(relayPin, LOW); Serial.begin(9600); // Starts the serial communication pinMode(ProxSensor,INPUT); //Pin 2 is connected to the output of proximity sensor } void loop() { boolean IROK = false; boolean UltraOK = false; // Clears the trigPin digitalWrite(trigPin, LOW); delayMicroseconds(2); // Sets the trigPin on HIGH state for 10 micro seconds digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // Reads the echoPin, returns the sound wave travel time in microseconds duration = pulseIn(echoPin, HIGH); // Calculating the distance distance= duration*0.034/2; if (distance < 70) UltraOK = true; else UltraOK = false; if(digitalRead(ProxSensor) == LOW ) IROK = true; else IROK = false; //if (IROK && UltraOK) Serial.println("A"); if (IROK && UltraOK && Serial.available() > 0 ){ if (Serial.read() == 'O') { digitalWrite(relayPin, HIGH); delay(5000); digitalWrite(relayPin, LOW); IROK = false; UltraOK = false; serialFlush(); } } IROK = false; UltraOK = false; //Read from Pi here } void serialFlush(){ while(Serial.available() > 0) { char t = Serial.read(); } }