hi I have to operate an ultrasonic sensor via arduino without using libraries and with interrupts! I did this code, can anyone tell me where it is wrong?
volatile long distance=0;
volatile long duration=0;
volatile long start=0;
volatile long stop=0;
volatile boolean measured=true;
#define echoPin 2
#define trigPin 7
void setup() {
Serial.begin(9600);
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
attachInterrupt (0, detect, RISING);
}
void loop() {
if(measured){
digitalWrite(trigPin,LOW);
delayMicroseconds(10);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin,LOW);
start=millis();
Serial.print("start:");
Serial.println(start);
distance=((stop-start)*0.03438)/2;
Serial.print("distanza:");
Serial.println(distance);
delay(1000);
}
}
void detect(){
if(digitalRead(trigPin)==LOW){
measured=true;
stop=millis();
}
else
{
measured=false;
}
}