نمایش نتایج: از 1 به 3 از 3

موضوع: نیاز به راهنمایی برای پایدار نمودن کد مدار سنجش دما

  1. #1
    Junior Member
    تاریخ عضویت
    Sep 2016
    نوشته ها
    3

    نیاز به راهنمایی برای پایدار نمودن کد مدار سنجش دما

    سلام

    بنده یک مدار سنجش دما با استفاده از یک سون سگمنت 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 به فنا می رود!!)

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

  2. #2
    Junior Member
    تاریخ عضویت
    Sep 2016
    نوشته ها
    3
    توضیح اثر flicker و مالتی پلکسینگ که با این راهنمایی وبلاگ noise.blog.ir در کد گذاشتم:

    نقل قول از وبلاگ نویز:

    " برای نمایش یه عدد چند رقمی چکار باید کرد ؟
    مشکل ما تنها از اینجاست که نمیتونیم همزمان چند رقم رو با هم روشن کنیم. این که غصه نداره !!! همزمان روشنشون نمیکنیم !

    مگه میشه ؟! چرا چرت میگی ؟!
    نه عزیزم چرت نمیگم !
    یه پدیده ای هست به نام "اثر فلیکر" که تعریفش رو هم آوردم براتون :

    اثر فلیکر :
    اثر نور در چشم انسان،برای مدتی کوتاه باقی می ماند.

    میایم یه ترفندی رو بکار میبریم؛

    فرض کنید میخوایم عدد 1234 رو روی سون سگمنت 4 تایی نمایش بدیم :

    1.سون سگمنت اول رو روشن میکنیم.
    2.روی سون سگمنت اول عدد 1 رو نمایش میدیم.
    3.تاخیر
    4.سون سگمنت اول رو خاموش میکنیم .
    5.تاخیر
    6.سون سگمنت دوم رو روشن میکنیم.
    7.روی سون سگمنت دوم عدد 2 رو نمایش میدیم.
    8.تاخیر
    9. ...

    بین نمایش این 4 عدد،4 بار از تاخیر استفاده میکنیم.منتهی اینقدر این تاخیرها کوتاهه که ما متوجه روشن و خاموش شدن سون سگمنت ها نمیشیم و احساس میکنیم که هر 4 تا باهم روشنند!
    و این است تکنیک استفاده از سون سگمنت !

    شاید سوال پیش بیاد که مقدار این تاخیر چقدره ؟!
    معمولا مقدار این تاخیر رو 20 میلی ثانیه در نظر میگیرند.

    منبع : .:: نویز | آموزش AVR | میکروکنترلر | الکترونیک ::. "

    حالا مسئله من اینجاست که اگر بخواهم در کد یک delay یک ثانیه ای برای پایدار شدن مدار بگذارم این روش ذکر شده دیگر نمیتواند اجرا شود و نمایش اعداد روی سون سگمنت به هم می خورد...

  3. #3
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,024
    نقل قول نوشته اصلی توسط AliAs نمایش پست ها
    توضیح اثر flicker و مالتی پلکسینگ که با این راهنمایی وبلاگ noise.blog.ir در کد گذاشتم:

    نقل قول از وبلاگ نویز:

    " برای نمایش یه عدد چند رقمی چکار باید کرد ؟
    مشکل ما تنها از اینجاست که نمیتونیم همزمان چند رقم رو با هم روشن کنیم. این که غصه نداره !!! همزمان روشنشون نمیکنیم !

    مگه میشه ؟! چرا چرت میگی ؟!
    نه عزیزم چرت نمیگم !
    یه پدیده ای هست به نام "اثر فلیکر" که تعریفش رو هم آوردم براتون :

    اثر فلیکر :
    اثر نور در چشم انسان،برای مدتی کوتاه باقی می ماند.

    میایم یه ترفندی رو بکار میبریم؛

    فرض کنید میخوایم عدد 1234 رو روی سون سگمنت 4 تایی نمایش بدیم :

    1.سون سگمنت اول رو روشن میکنیم.
    2.روی سون سگمنت اول عدد 1 رو نمایش میدیم.
    3.تاخیر
    4.سون سگمنت اول رو خاموش میکنیم .
    5.تاخیر
    6.سون سگمنت دوم رو روشن میکنیم.
    7.روی سون سگمنت دوم عدد 2 رو نمایش میدیم.
    8.تاخیر
    9. ...

    بین نمایش این 4 عدد،4 بار از تاخیر استفاده میکنیم.منتهی اینقدر این تاخیرها کوتاهه که ما متوجه روشن و خاموش شدن سون سگمنت ها نمیشیم و احساس میکنیم که هر 4 تا باهم روشنند!
    و این است تکنیک استفاده از سون سگمنت !

    شاید سوال پیش بیاد که مقدار این تاخیر چقدره ؟!
    معمولا مقدار این تاخیر رو 20 میلی ثانیه در نظر میگیرند.

    منبع : .:: نویز | آموزش AVR | میکروکنترلر | الکترونیک ::. "

    حالا مسئله من اینجاست که اگر بخواهم در کد یک delay یک ثانیه ای برای پایدار شدن مدار بگذارم این روش ذکر شده دیگر نمیتواند اجرا شود و نمایش اعداد روی سون سگمنت به هم می خورد...
    اگر با آردوینو کار می کنید می تونید برای ایجاد اون وقفه از millis استفاده کنید به جای delay
    https://www.arduino.cc/en/Reference/Millis

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

SEO by vBSEO