#include <LiquidCrystal.h>
#include <Ultrasonic.h>
const int rs = 12, e = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, e, d4, d5, d6, d7);
const int trigPin = 8; // HC-SR04 trigger pin
const int echoPin = 9; // HC-SR04 echo pin
Ultrasonic ultrasonic(trigPin, echoPin);
float prevDistance = 0; // Declare and initialize prevDistance as a global variable
void setup() {
lcd.begin(16, 2);
lcd.print("Velocity (m/s):");
Serial.begin(9600);
}
void loop() {
float distance = ultrasonic.distanceRead();
// Calculate velocity assuming constant time interval between measurements
static unsigned long prevTime = millis();
unsigned long currentTime = millis();
unsigned long deltaTime = currentTime - prevTime;
float velocity = (distance - prevDistance) / (deltaTime / 1000.0);
prevTime = currentTime;
prevDistance = distance;
// Print velocity to Serial monitor for debugging
Serial.print("Velocity: ");
Serial.print(velocity);
Serial.println(" m/s");
// Display velocity on LCD
lcd.setCursor(0, 1); // Set cursor to the second row
lcd.print(" "); // Clear previous velocity value
lcd.setCursor(0, 1); // Set cursor to the second row
lcd.print(velocity, 2); // Display velocity with 2 decimal places
delay(100);
}