سلام

بنده یک مدار سنجش دما با استفاده از یک سون سگمنت 3 رقمی و مدار تغذیه مربوط به اون و سنسور معروف و شناخته شده LM35 طراحی کردم...

توی قسمت کد ابتدا ولتاژ آنالوگ ورودی از سنسور تبدیل به دما می شود و سپس با استفاده از روش flickering روی سون سگمنت چاپ می شود.... یعنی در یک صدم ثانیه رقم اول سون سگمنت روشن است و در صدم ثانیه بعدی رقم دوم !! و این کار باعث می شود که چشم احساس کند که هردو رقم همزمان روشن هستند (زیرا چشم زمان کوتاه خاموش شدن آنها را تشخیص نمی دهد)!! ....

کد:
void loop () 
{
  deg = analogRead(3);
  deger = deg / 2;
  dam = deger % 10;
  dem = deger / 10;
  digitalWrite(13 , LOW);
  digitalWrite(12 , HIGH);
  Adad(dam);
  delay(10);
  digitalWrite(13 , HIGH);
  digitalWrite(12 , LOW);
  Adad(dem);
  delay(10);
}
حالا مشکل اینجاست که با توجه به این که کد پیوسته و بدون هیچ تاخیر )delay( قابل ملاحضه ای اجرا می شود اگر روی مدار نویزی بیفتد و یا دما در هر لحظه به طور ناچیزی تغییر کند، سون سگمنت به طور متوالی و پیوسته عدد متفاوتی را نشان می دهد. برای مثال همین الان که مدار روشن است در لحظه ای عدد 27 و در لحظه ای عدد 28 درجه را نمایش می دهد در نتیجه عمر سون سگمنت بسیار کم شده و عدد نیز ناخوانا می گردد و اگر در تابع loop نیز تاخیر قابل ملاحظه ای (مثلا در حد 1 ثانیه ) ایجاد کنیم نیز کد از ناحیه نمایش در سون سگمنت دچار اشکال می شود ( اثر flickering به فنا می رود!!)

لطفا در صورت امکان راه حل این مشکل را ارائه بفرمایید. با تچکر فراوان....