#define echoPin 7 // Echo Pin
#define trigPin 8 // Trigger Pin
#define LEDPin 13 // Onboard LED
int maximumRange = 200; // Maximum range
int minimumRange = 0; // Minimum range
long duration, distance; // Used to calculate distance
void setup() {
Serial.begin(9600); // Initialize serial communication
pinMode(trigPin, OUTPUT); // Set trigPin as output
pinMode(echoPin, INPUT); // Set echoPin as input
pinMode(LEDPin, OUTPUT); // Set LEDPin as output (Use LED indicator)
}
void loop() {
digitalWrite(trigPin, LOW); // Set trigPin LOW to start pulse
digitalWrite(trigPin, HIGH); // Set trigPin HIGH to send pulse
delayMicroseconds(10); // Pulse duration 10 microseconds
digitalWrite(trigPin, LOW); // Set trigPin LOW again to end pulse
duration = pulseIn(echoPin, HIGH); // Measure time taken for pulse to return
distance = duration * 0.0344 / 2; // Calculate distance (speed of sound = 0.0344 cm/us)
if (distance >= maximumRange || distance <= minimumRange) {
/* Send a negative number to the computer and turn LED ON to indicate "out of range" */
Serial.println("-1");
digitalWrite(LEDPin, HIGH); // Turn on LED
} else {
Serial.println(distance); // Print distance
digitalWrite(LEDPin, LOW); // Turn off LED
}
// Delay 50ms before next reading
delay(50);
}