#define ECHO_PIN 2
#define TRIG_PIN 3
#define RELAY_PIN 5
byte motorStatus = 1;
float readDistanceCM() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
int duration = pulseIn(ECHO_PIN, HIGH);
return duration * 0.034 / 2;
}
void setup() {
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(RELAY_PIN, OUTPUT);
delay(1000);
}
void loop() {
float distance = readDistanceCM();
if(distance > 50) {
if(motorStatus == 0){
motorStatus = 1;
digitalWrite(RELAY_PIN, HIGH);
delay(10);
}
}
else
{
if(motorStatus == 1){
motorStatus = 0;
digitalWrite(RELAY_PIN, LOW);
delay(10);
}
}
}