/* Ultrasonic HC-SR04 + LCD 16x2 display */ /* Used pins */ int echoPin = 11; int triggerPin = 12; long tps_echo; float distance; /* LCD 16x2 with I2C interface */ #include #include LiquidCrystal_I2C lcd(0x27,16,2); void setup() { pinMode(triggerPin, OUTPUT); digitalWrite(triggerPin, LOW); pinMode(echoPin, INPUT); /* LCD 16x2 */ lcd.init(); lcd.backlight(); lcd.clear(); } void loop() { /* measure for 10 micro seconds */ digitalWrite(triggerPin, HIGH); delayMicroseconds(10); digitalWrite(triggerPin, LOW); /* measure time for the echo */ tps_echo = pulseIn(echoPin, HIGH); /* distance calculation */ distance = tps_echo*0.034/2; /* display on LCD */ if (distance > 20) //if measured distance is more than 20cm { lcd.setCursor(0,0); lcd.print(" "); // erase line lcd.setCursor(0,0); lcd.print("Too far away!"); delay(300); } else { lcd.setCursor(0,0); lcd.print(" "); // erase line lcd.setCursor(0,0); lcd.print("Distance:"); lcd.print(distance,1); lcd.print("cm"); delay(300); } }