#define valvePin 11
#define trigPin 3
#define echoPin 4
int period = 5000;
unsigned long time_now = 0;
float duration, distance;
bool TurnOn = false;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(valvePin, OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration*.0343)/2;
Serial.print("Distance: ");
Serial.println(distance);
time_now = 0;
TurnOn = false;
while ((distance >=10) && (distance<= 50))
{
digitalWrite(valvePin, LOW);
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration*.0343)/2;
Serial.print("Inside zone :");
Serial.println(distance);
time_now ++;
delay(1000);
if(time_now == 5){
Serial.print("5 sec");
delay(1000);
TurnOn = true;
}
}
if(TurnOn){
Serial.print("Turn On");
digitalWrite(valvePin, HIGH);
delay(5000);
digitalWrite(valvePin, LOW);
}
}
I would like to use millis instead of delay function, anybody can help me?
In future I would like to use multiple Ultrasonic Sensor with arduino nono will it work?
Can they work independently without freezing nano?