1#include <LiquidCrystal.h>
2
3int trigPin=4;
4int echoPin=5;
5int pingTravelTime;
6float pingTravelDistance;
7float distanceToTarget;
8
9
10int dt=5000;
11int rs=7;
12int en=8;
13int d4=9;
14int d5=10;
15int d6=11;
16int d7=12;
17
18int buttonPin=A1;
19int buttonVal;
20
21int numMeas=100;
22float avMeas;
23int j;
24float bucket=0;
25
26LiquidCrystal lcd(rs,en,d4,d5,d6,d7);
27void setup() {
28
29pinMode(trigPin,OUTPUT);
30pinMode(echoPin,INPUT);
31pinMode(buttonPin,INPUT_PULLUP);
32Serial.begin(9600);
33lcd.begin(16,2);
34}
35
36void loop() {
37
38 lcd.setCursor(0,0);
39 lcd.print("Place The Target");
40 lcd.setCursor(0,1);
41 lcd.print("Press To Measure");
42 buttonVal=digitalRead(buttonPin);
43 while (buttonVal==1){
44 buttonVal=digitalRead(buttonPin);
45 }
46 lcd.clear();
47 lcd.setCursor(0,0);
48 lcd.print("Measuring . . . ");
49 for (j=1;j<=numMeas;j=j+1){
50 digitalWrite(trigPin,LOW);
51delayMicroseconds(10);
52digitalWrite(trigPin,HIGH);
53delayMicroseconds(10);
54digitalWrite(trigPin,LOW);
55pingTravelTime=pulseIn(echoPin,HIGH);
56 delay(25);
57 pingTravelDistance=(pingTravelTime*765.*5280.*12)/(3600.*1000000);
58 Serial.println(pingTravelTime);
59 distanceToTarget=pingTravelDistance/2;
60 bucket=bucket+distanceToTarget;
61 }
62avMeas=bucket/numMeas;
63 Serial.print(" Av. Dist. to Target is : ");
64 Serial.print(avMeas);
65 Serial.println(" inches. ");
66 lcd.clear();
67 lcd.setCursor(0,0);
68 lcd.print("Target Distance :");
69 lcd.setCursor(0,1);
70 lcd.print(distanceToTarget);
71 lcd.print(" Inches ");
72 delay(dt);
73
74}
75