سلام
بنده یک مدار سنجش دما با استفاده از یک سون سگمنت 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 به فنا می رود!!)
لطفا در صورت امکان راه حل این مشکل را ارائه بفرمایید. با تچکر فراوان....