ryanrhinoy
Published

Portable Distance Sensor With LCD

The HC-SR04 Ultrasonic sensor displays the target distance on a LCD.

BeginnerFull instructions provided511
Portable Distance Sensor With LCD

Things used in this project

Hardware components

Arduino Nano R3
Arduino Nano R3
×1
Ultrasonic Sensor - HC-SR04 (Generic)
Ultrasonic Sensor - HC-SR04 (Generic)
×1
Alphanumeric LCD, 16 x 2
Alphanumeric LCD, 16 x 2
×1

Software apps and online services

Arduino IDE
Arduino IDE

Hand tools and fabrication machines

Jumper Wire Kit, Multicolor
Jumper Wire Kit, Multicolor

Story

Read more

Schematics

HC-SR04 Sensor

LCD Schematic

Code

Distance_Sensor.ino

C/C++
#include <LiquidCrystal.h>

int trigPin=4;
int echoPin=5;
int pingTravelTime;
float pingTravelDistance;
float distanceToTarget;


int dt=5000;
int rs=7;
int en=8;
int d4=9;
int d5=10;
int d6=11;
int d7=12;

int buttonPin=A1;
int buttonVal;

int numMeas=100;
float avMeas;
int j;
float bucket=0;

LiquidCrystal lcd(rs,en,d4,d5,d6,d7);
void setup() {
  // put your setup code here, to run once:
pinMode(trigPin,OUTPUT);
pinMode(echoPin,INPUT);
pinMode(buttonPin,INPUT_PULLUP);
Serial.begin(9600);
lcd.begin(16,2);
}

void loop() {
  // put your main code here, to run repeatedly:
  lcd.setCursor(0,0);
  lcd.print("Place The Target");
  lcd.setCursor(0,1);
  lcd.print("Press To Measure");
  buttonVal=digitalRead(buttonPin);
  while (buttonVal==1){
    buttonVal=digitalRead(buttonPin);
  }
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Measuring . . . ");
  for (j=1;j<=numMeas;j=j+1){
    digitalWrite(trigPin,LOW);
delayMicroseconds(10);
digitalWrite(trigPin,HIGH);
delayMicroseconds(10);
digitalWrite(trigPin,LOW);
pingTravelTime=pulseIn(echoPin,HIGH);
 delay(25);
 pingTravelDistance=(pingTravelTime*765.*5280.*12)/(3600.*1000000);
 Serial.println(pingTravelTime);
 distanceToTarget=pingTravelDistance/2;
 bucket=bucket+distanceToTarget;
  }
avMeas=bucket/numMeas;
 Serial.print(" Av. Dist. to Target is : ");
 Serial.print(avMeas);
 Serial.println(" inches. ");
 lcd.clear();
 lcd.setCursor(0,0);
 lcd.print("Target Distance :");
 lcd.setCursor(0,1);
 lcd.print(distanceToTarget); 
 lcd.print(" Inches "); 
 delay(dt);

}

Credits

ryanrhinoy
3 projects • 1 follower

Comments