سلام دوستان من کد زیر رو برای یه التراسونیک دارم و میخوام عدد خرجی در سریال روی ال سی دی نمایش بدم ولی مشکلی که دارم اینه که وقتی عدد جدید روی ال سی دی نمایش داده میشه عدد قبلی پاک نمیشه مثلا عدد قبلی ۱۵۰ بوده و عدد جدید ۱۵ هست ولی صفر عدد قبلی میمونه و پاک نمیشه.من دستور lcd.clear رو میتونم استفاده کنم ولی وقتی تو void loop میزنم lcd.clear صفحه با وجه به (delay(10 مدام میپره و به سختی نمایش میده.و اگر عدد تاخیر ۱۰ رو ببرم بالا پالس التراسونیکم افزایش پیدا میکنه و من نمیخوام اینطور باشه.به نظرتون چیکار میتونم کنم که التراسونیک بیاد توی مثلا ۱۰ ثانیه فاصله رو بخونه بعد متوقف بشه و بعد ال سی دی عدد رو بخونه و دستور پاکسازی صفحه اجرا شه و دوباره التراسونیک شروع کنه به فاصله سنجی ممنون
#define ECHO 9
#define INIT 10
#define BINH 11
#include <LiquidCrystal.h>
#include <TimerOne.h>


LiquidCrystal lcd(12, 8, 5, 4, 3, 2); // LiquidCrystal lcd(rs, enable, D4, D5, D6, D7);

void setup()
{
Serial.begin(9600);
pinMode(ECHO, INPUT);//高电平脉宽读取引脚
pinMode(INIT, OUTPUT); //开始出发引脚
pinMode(BINH, OUTPUT); //消隐抑制
digitalWrite(INIT, LOW);
digitalWrite(BINH, LOW);
}


void loop()
{

Measure();
delay(10);


}

void Measure()
{
static int ultraValue; //declare a static value to store the value of the sensor
int val = 0;
int timecount = 0;
digitalWrite(INIT, HIGH);//trigger the sensor
delayMicroseconds(900);
digitalWrite(BINH, HIGH);//终止消隐
do
{
val = digitalRead(ECHO);//Read the PWM width
if (1700 == timecount) break;
timecount ++;
delayMicroseconds(53);
}
while(val == LOW);
digitalWrite(INIT, LOW);
digitalWrite(BINH, LOW);
ultraValue = timecount + 10;//Add a bias to the final the value
Serial.println(ultraValue);//Send the ultrasonic sensor value to serial port

}