نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
آزادی حجاز از دست نااهلان
مهدی دمیرچیلو

دماسنج زیبا با LCD کاراکتری

به نام خدا

دماسنج زیبا با LCD کاراکتری

دماسنج زیبا با LCD کاراکتری

ویژگی های این پروژه

1) همون طور که در عکس بالا میبینید یه دماسنج ساختیم که دما رو هم به صورت عددی و هم به صورت نموداری نمایش میدهد.
2) به ازای هر 2 درجه افزایش(یا کاهش) دما یک عدد مستطیل سیاه رنگ به نمودار اضافه(یا کم) میشود.
3) این برنامه دما های منفی رو پشتیبانی نمیکند.
4) اگر دما از مقدار معینی عبور کند پیغام هشدار نمایش داده میشه.
 

توضیح کد های برنامه

پیشنیاز این مطلب : مبدل آنالوگ به دیجیتال در میکروکنترلرهای AVR
برای تعریف کاراکتر جدید و دریافت کدهاش میتونید از نرم افزاری که در ته این مطلب میزارم استفاه کنید.
در زیر عکس نرم افزار و قسمتی که باید در آنجا کاراکترتون رو رسم کنید و کدش رو دریافت کنید رو میزارم.
دماسنج زیبا با LCD کاراکتری
حسش نیست توضیح بدم  pardon  تا اونجایی که تونستم سعی کردم کد هاش رو ترتمیز بنویسم تا قابل درک باشه.
حالا اگه کسی متوجه نشد بگه تا کد هاش رو توضیح بدم.

 

دانلود این پروژه+نرم افزار مورد نیاز | حجم: 650کیلوبایت !

گروه پرسش و پاسخ الکترونیکی در سروش
مهدی دمیرچیلو جنگ ما فتح قدس را به همراه خواهد داشت. [ امام خمینی (ره) ]
ارسال دیدگاه
47

1) نظرات غیر فارسی به صورت خودکار حذف میشوند ( حداقل 5 حرف فارسی وارد کنید ).

2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

3) پسورد فایل های سایت : www.dmf313.ir

  1. Avatar

    مهمان

    ramin

    سلام اموزش مثل همیشه عالی فقط یک سوال
    switch(i)به چه معنی هستش و کد زیرش به چه معنی هست help

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام-switch یه جور دستور شرطی هستش، مثل if و if else
      تو نت آموزشش هستش.

  2. Avatar

    مهمان

    نرگس

    دمایی ک نشون میده با چیزی که روی lcd هست متفاوت چرا؟؟؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      یعنی چی؟

  3. Avatar

    مهمان

    مهدی

    سلام- طاعات و عبادات شما قبول حضرت حق
    دوست عزیز محیط برنامه نویسی ای که شما در سایت قرار دادید با چه نرم افزاری است؟ و سوال بعد اینکه
    چون بنده با میکرو کنترلرهای ARM برنامه نویسی می کنم مطلب یا جزوه ای در مورد این میکروکنترلر ها دارید؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام – پروژه این مطلب aVR هستش و در کدویژن نوشته شده و در پروتئوس شبیه سازی شده.
      برا آرم هم من سری LPC کار میکنم و غیر از دیتاشیت منبع مناسبی پیدا نکردم – منابع فارسی هم بدرد جرز لای در میخورن.
      با سری های دیگه آرم هم کار نکردم.

  4. Avatar

    مهمان

    وحید

    سلام
    چرا اینجوری میشه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟/
    چرا دما رو نشون نمیده؟؟؟؟؟؟؟؟////
    http://s9.picofile.com/file/8296027176/Capture.PNG

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      پروژتو بفرست بررسی کنم – با شماتیک و کد – هر کدوم تو یه پوشه – کدهات هم مرتب باشن ( فاصله بندی بین کد ها رعایت شده باشه )

  5. Avatar

    مهمان

    Mohammadrezarezaie

    با سلام میخواستم ببپرسم چطوری باید فیوز بیت های میکرو تنظیم کنم ؟؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      با هر نرم افزاری که میخوای برنامه رو بریزی رو میکرو تو تنظیماتش یه قستمی برا این کار داره – شما با کدوم نرم افزار اینکارو انجام میدید و پروگرامرتون چیه؟

  6. Avatar

    مهمان

    علیرضا آهنی

    سلام.
    اگر پروزه دما ی ۰ رو همش نشون میده از سنسور lm34استفاده کنید.

  7. Avatar

    مهمان

    مینو

    سلام ببخشید چ طور میشه این برنامه رو طوری تغییر بدیم ک مثلا السیدی دوعدد 21 و 27 رو از ما بخواد بعد اگ دما کمتر از21 شد led خاموش و اگ دما از27 بیشتر شد led روشن بشه وبین این دو دما ب حالت قبلی خودش ادامه بده؟ خوااااااااهش میکنم کمک کنید

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      مطالب آموزش Avr قسمت Adc رو بخونید.

  8. Avatar

    مهمان

    یوسف

    درود بر شما
    اخه اگه میتونستم نشون بدم ک مزاحمت نمیشدم؟
    البته با این تابع هم مشکل اساسی دارم خط 27 نمیدونم چجوری باید تغییرش بدم؟
    کاراکتر های ستون اول پر بشن و بعد ستون دومش تا 5ستون از یک کاراکتر پر بشن و بعد کاراکتر بعدی تا 16تا خونه lcd پر بشن , از کد ها هرچی استفاده کردم جواب نگرفتم؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      عکسی بکشی – فیلمی بدی و… حتما نباید تو LCD نشون بدی تا من منظورت رو متوجه بشم که…
      تو خطوط 13-15 من 3 تا کاراکتر تعریف کردم، این دیتا های این متغییر ها رو از اون نرم افزاری که عکسش رو در اول مطلب میبینی کدش رو از اون نرم افزار گرفتم-کاراکترم رو براش رسم کردم و اون نرم افزار هم کد رو به من داد و منم تو خطوط 13-15 ازشون استفاده کردم و 3 تا کاراکتر جدید تعریف کردم.
      خب این چیزی که میخوای یکم آشنایی با برنامه نویسی و توابع LCD رو میطلبه
      تو خط 107 اومدم و گفتم که نمودار دماسنج تو خط 3 ام نمایش داده بشه(شمارش سطر ها از 0 شروع میشه و لذا عدد 2 یعنی سطر سوم)

      • Avatar

        مهمان

        یوسف

        مهدی جان خیلی ممنونتم اگ امکانش هست میشه خط 27 برنامه نویسی رو هم توضیح بدی دققا تابعی که تعریف کردین مشکل اساسی بندست ..
        سپاس گزارم.

        • مهدی دمرچیلو

          نویسنده این مطلب

          مهدی دمرچیلو

          چیش رو بگم؟
          نحوه استفاده ازش؟ یا محتویات داخل تابع رو؟ اگه اینو میخوای باید بگم دیتاشیت نمایشگر رو باید بخونی…

  9. Avatar

    مهمان

    MAHDI

    سلام خسته نباشید. درست متوجه نشدمo_0 از چه سنسور و ماژل دمایی استفاده کردی؟؟ از مگا۸ میشه استفاده کرد؟؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      lm35
      تو پروتئوس میدی سنسور رو اسمش رو میفهمیدی
      البته میتونی از این پروژه برا سنسور های دیگه هم استفاده کنی و باس یکم ویرایشش کنی فقط

  10. Avatar

    مهمان

    حمید

    دوست عزیز یه سوال داشتم
    من هر برنامه ای با ال سی دی مینویسم ال سی دی فقط بهم یه خط روشن و یک خط خاموش نشون میده
    با این که میکروم سالمه وال ای دی باهاش روش و خامش میکنم ولی ال سی دی رو نمیتونم
    برنامه ای که نوشتم برنامه نوشتن Hello world است.همین
    ولی بااین حال باز هم کار نمیکند.
    میکرو atmega 32
    lcd 2*16
    internal crystal

  11. Avatar

    مهمان

    محمدی

    با سلام
    ازشما بابت برنامه و توضیح هایی که داده اید کمال تشکر را دارم
    واقعا این چند برنامه ای که دیدم و دانلود کردم خیلی بدردم برای یاد گیری خورد
    متشکرم

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      خواهش smile

  12. Avatar

    مهمان

    takkitnoor

    لینک دانلود خرابه

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      درستش کردم
      ممنون از اطلاعتون

  13. Avatar

    مهمان

    آیدین

    سلام آقا مهدی هم وب خوبی داری و هم پروژه های خوبی اراعه میدی
    فقط لطفا لینک دانلود رو چک کن به نظر مشکل داره

  14. Avatar

    مهمان

    allah13

    لینک دانلود خرابه
    لطفا تصحیح بفرمائید برادر…

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سالمه که….فقط غیر مستقیم هست
      الان تو سایت آپلودش میکنم

      • مهدی دمرچیلو

        نویسنده این مطلب

        مهدی دمرچیلو

        لینک غیر مستقیم رو هم حذف کردم…فایلش رو هم همین طور
        تو سایت آپلود کردم

  15. Avatar

    مهمان

    مهسا

    آقا مهدی می تونم خواهش کنم توی همین برنامه ی دماسنج بخش زیر تو توضیح بدین:
    for(i=0 ; i0)
    {
    switch(i)
    {
    case 0 : lcd_putchar(2) ; break;
    case 4 : lcd_putchar(2) ; break;
    case 9 : lcd_putchar(2) ; break;
    case 14 : lcd_putchar(2) ; break;
    case 19 : lcd_putchar(2) ; break;
    default : lcd_putchar(1) ; break;
    }
    }
    حلقه ی for چیکار می کنه؟
    سوییچ و کیس هایی که نوشتین چطور؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      من ۳ تا کاراکتر تعریف کردم….مثلا define_char(char0,0); و مقادیر ۰ و ۱ و ۲ بهشون دادم….که هر جا تو برنامت بگی مثلا کاراکتر ۰ رو چاپ کن…میاد و و بیای نمایش ۰٫٫٫٫٫اون کاراکتری که ما تعریف کردیم رو نشون میده……
      .
      .
      .
      حلقه فور هم برا اینه که ببینه دما تو چه رنجی هستش…
      که این چند خط برا نمایش دما به صورت مربع(مستطیل) هستش…..عکس اول مطلب…اون lcd هه رو ببین

  16. Avatar

    مهمان

    مهسا

    ببخشید blush

  17. Avatar

    مهمان

    مهسا

    نظر ندی یه وقت…گناه میشه

  18. Avatar

    مهمان

    مهسا

    توی برنامه ی دماسنج ساده توی خط اول حلقه ی وایل ممکنه بگین چرا تقسیم بر 4؟
    while (1)
    {
    T=temp()/4;
    itoa(T,str1);
    lcd_puts(“Temp : “);
    lcd_puts(str1);
    delay_ms(100);
    lcd_clear();
    };

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      ۱۰۰*(۱۰۲۳/۲٫۵۶)~=۴

  19. Avatar

    مهمان

    مهسا

    با سلام
    آقا مهدی من پروتئوس 7.7 رو دانلود کردم و برنامه خیلی خوب اجرا شد.
    بی نهایت از لطفتون ممنونم.
    فقط دوس داشتم بدونم چی باعث این مشکل میشه که تو پروتئوس 8.1 برنامه ها اجرا نشن؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      خدا رو شکر cry
      دقیقا نمیدونم…..فقط برا پروتئوس این طور نیست…برا بقیه نرم افزار ها هم همین موضوع برقراره

  20. Avatar

    مهمان

    مهسا

    ممنون از لطفتون.
    ببخشید زیاد سوال پرسیدم.

  21. Avatar

    مهمان

    مهسا

    یعنی الان شما اینو تو پروتئوس 7.7 ران می کنی کاملا جواب میده؟
    اگه مطمئن هستین من پروتئوس 7.7 رو دانلود کنم و نتیجه رو ببینم.

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      بعععععععععععله
      بعلهههههههههههههههههه

  22. Avatar

    مهمان

    مهسا

    من از آخرین نسخه ی پروتئوس استفاده می کنم که 8.1 هستش.
    شما همین رو تو پروتئوس تست کردین؟
    آخه توی برنامتون هم هیج جاش read_adc نداره،دیگه این چجور می تونه مقدار دما رو که از سنسور به adc داده شده رو بگیره؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      من از ۷٫۷ استفاده میکنم
      نامش رو به temp تغییر دادم….حتما نباید که نام تابع read_adc باشه…..اختیاریه…میتونی تغییرش بدی victory

  23. Avatar

    مهمان

    مهسا

    سلام دوست عزیز
    از سایت خیلی خوب و مفیدتون واقعا تشکر می کنم.
    من این پروژه ی دماسنج که گذاشتین رو تو پروتئوس روی میکرو لود کردم ولی کار نکرد،یعنی فقط دما رو صفر قرار میده و دیگه تغییرات دما رو نشون نمیده.
    التبه یه دماسنج ساده دیگه هم گذاشتین تو سایت که اونم به همین شکله.
    اگه واستون مقدوره یه بازنگری کنین.
    من منتظر جوابتون هستم.

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      پروژه رو دیدم …مشکلی نداره
      احتمالا مشکل از پروتئوس شما هستش…از نسخه ۷ استفاده کنید

  24. Avatar

    مهمان

    میلاد

    اقا دمت گرم give_rose