نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
أَللّهُمَّ ارْزُقْنی شَفاعَةَ الْحُسَیْنِ یَومَ الْوُرُودِ
مهدی دمیرچیلو

آموزش ساده ساخت دماسنج با lm35

24

به نام خدا  : آموزش ساده ساخت دماسنج با lm35؛ پیشنیاز این پروژه  ؛  مطالعه مطلب >>>>>   مبدل آنالوگ به دیجیتال در میکروکنترلرهای AVR

سنسور lm35 : روش کارش اینطوریه که با  هر درجه سانتی گراد افزایش دما ، ۱۰ میلی ولت  میندازه روی پایه  V out
مثلا تو همین برنامه ما (عکس بالا) ؛ اگه دقت کرده باشید دما در سنسور lm35   برابر ۵ سانتی گراد هستش و ولت سنج مقدار    ۰۵٫   (۵ صدم) ولت رو نشون میده و سون سگمنت هم که قراره دما رو نشون بده ، عدد ۵ رو نشون میده که همون دمای ما هستش.(چیه عدد رو سون سگمنت خوب معلوم نیست–تقصیر من چیه ، جنسش چینیه   ^_^)

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

این برنامه چیز خاصی نداره ولی چند تا نکته رو باید بگم :

این کد یعنی این که در ریجستر ADCSRA بیتی که اسمش ADSC هست رو یک کن.
مثلا مثل اینه که بگیم بیت ۴ ام   پورت A رو یک کن>>>>>>>>>PORTA.4=1
افتاد یا نه؟ (دو هزاریت رو میگم !!! ^_^)

تو بعضی خط ها کنار هر خط کد یه توضیح هم نوشتم (مثلا کد بالا) که منضورم اینه که این دو تا یه معنی میدن و یه کاری رو انجام میدن.
(البته تو این کد استسناعا(گیر نده!) بیت آخر رو یک کردم  ( ۰b11000000 ) چون  اگه یک نمیکردم ADC غیر فعال میشد)

این کد زبون بسته هم میخواد اینو بگه که تا این بیت( ADIF ) از ریجستر  ADCSRA یک نشده و هنوز صفر است حلقه رو ادامه بده و این قدر بررسی کن تا زمانی که یک بشه!!!

کد های کامل برنامه>>>> البته این کد ها به همراه فایل شبیه ساز در فایل دانلود موجود است.
کداش چیز خاصی نداره ولی مشکلی بود در خدمتیم.

 

دانلود پروژه دماسنج با lm35

تعداد مطالب : 367 تا
جنگ ما فتح قدس را به همراه خواهد داشت. [ امام خمینی (ره) ]
بقیه جلسات :
این مطلب هیچ طبقه بندی یی ندارد!
ارسال دیدگاه
86
نظرات این مطلب بسته شده است.
  1. محمد ایرانشاهی

    مهمان

    محمد ایرانشاهی

    سلام داداش
    اولا خدا خیرت بده بابت این وب سایت معرکت.
    دوما یه سوال دارم (شاید واسه تو خیلی ساده باشه ولی واسه من این طور نیست):
    توی اون خط که گفتی: while ((ADCSRA & (1<<ADIF))==0) چرا به این صورت ننوشتی:
    while(ADIF==0) ؟؟
    مشکل کد بالا چیه؟
    و اینکه تو کدی که خودت نوشتی از ADCSRA فقط بیت پرچم وقفشو با ADIF اند میکنه؟ چون اون یه رجیستر هشت بیتیه ولی ADIF فقط یک بیته

    مرسی که پاسخ میدی

  2. ارین مرادی

    مهمان

    ارین مرادی

    درود
    این کد ها رو توی کجا نوشتین؟
    من با بسکام ای وی ار برنامه نویسی میکنم

    مشاهده پاسخ ها (1)
    • مهدی دمیرچیلو

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

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

      کدویژن

  3. داداش

    مهمان

    داداش

    سلام.چرا فایل شبیه سازی پروتئوسش توی قسمت دانلود نیست؟

    مشاهده پاسخ ها (2)
    • مهدی دمیرچیلو

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

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

      سلام / پوشه ISIS / فایل 2.DSN

      • داداش

        مهمان

        داداش

        مگه نباید با پسوند پروتئوس باشه.
        من فیلم های در مورد میکرو گذاشتی تو اپارات تا قسمت 5 که یوزارت هست رو دیدم.خیلی خ وبه.فیلم های بیشتری هست در این مورد که قسمت های دیگه رو توضیح داده باشه.با زبان c.دمت گرم

  4. محمد

    مهمان

    محمد

    سلام
    با کسب اجازه اقای دمرچیلو بله امکانش هست توسط این مدار ولتاژ منفی هم از lm35 میتونید بگیرید و با یهتغییراتی تو کدها اون رو پردازش کنید.
    یه سرچی هم تو گوگل کنید به جاهای خوبی میرسید

  5. مریم

    مهمان

    مریم

    سلام، من این کد رو یکم تغییر دادم ،برای lcd.
    ولی وقتی روی برد امتحان میکنم، درست جواب نمیده.هر ثانیه یه عدد نشون میده. حتی وقتی lm35رو از میکرو جدا میکنم هم تغییری نمیکنه. به تغییر دما هم حساس نیست.(وقتی به سنسور دست میزنم، یا اگه یخ بگذارم روش)
    مشکل از کجا میتونه باشه؟

  6. نسرین

    مهمان

    نسرین

    سلام وقتتون بخیر
    تشکر میکنم بابت مطالب مفیدتون
    یه سوال مهم و عجله ای دارم
    چرا قطعه LM016L(ال سی دی) در پروتئوس 4 پایه اش به هیچ جا وصل نمیشه؟ و تفاوت ال سی دی واقعی با پروتئوس چیه؟
    فردا باید پروژمو ارائه بدم ممنون میشم جواب بدین

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      سلام
      خب lcd دو مد راه اندازی داره – یه مد 8 بیتی که از همه پایه های دیتا استفاده میکنیم که خب پایه زیاد اشغال میکنه ولی خب سریع تره.
      و یه مد 4 بیتی که از 4 تا پایه آخری پایه دیتا lcd استفاده میکنه که خب پایه کمتر اشغال میکنه و یکم کندتره که خب چون پایه مصرفی مهم تره – اکثرا به این روش راه اندازی میکنن lcd رو.
      که خب جدیدا به همین lcd یه آیسی وصل کردن تا با پروتکول i2c بشه با 2 تا پایه lcd رو کنترل کرد – این بحث پایه خیلی مهمه – ولی خب بعضی جاها سرعت اولویت هستش که خب اون بحثش جداس –
      منم الان تو پروژم هم پایه مصرفی و هم سرعت هر دوش برام خیلی مهمه laugh
      (تا جایی که یادمه.)

  7. AmirMkh

    مهمان

    AmirMkh

    سلام ممنون از سایت خوبتون ی سوال داشتم میشه LM35 رو کاری کنیم ک دمای منفی هم نشون بده این سوال پروژه هنرستان رشته مکاترونیک ممنون میشم ج بدید

  8. توحید

    مهمان

    توحید

    سلام من برا دما های منفی میخوام از lm35 استفاده کنم.ایا کدهاش رو دارین؟

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      سلام-نه-

  9. محمد

    مهمان

    محمد

    سلام ببخشید ی‌ سوال …
    این میکرو چجوری باید برنامه ایی که روش نوشتیم رو بریزمش‌ روش؟ درایو داره؟ چجوریه؟

    مشاهده پاسخ ها (5)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      سلام
      به کمک پروگرامر
      من پروگرامر هاتل دارم – فقط حواست باشه موقع خرید پروگرامر چیزی بخری که به pc وصل بشه – بعضی از اینا مثلا stk300 به کامپیوتر وصل میشه ولی کامپیوتر های زمان نادر شاه dash

      • محمد

        مهمان

        محمد

        ببخشید یکبار که میکرو رو پروگرم‌ کنم و کد‌ رو بریزم‌ روش کافیه دیکه؟ نه با اینکه هر بار بخوام استفاده کنم هر دفعه باید پروگرام کنم؟..ممنونم از راهنمایی هاتون

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

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

          مهدی دمرچیلو

          نه یکبار کافیه – میکروکنترلر حافظه flash داره
          ولی مثلا تو میکروپروسسور FPGA تراشته هایی مثل اسپارتان مدل x400 تا جایی که یادمه حافظه فلش به طور پیشفرض ندارن لذا بعد هربار قطع و وصل شدن برق باید دوباره برنامه رو ریخت رو IC
          ولی خب تو AVR از این خبرا نیست و میکرو حافظه فلش داره و برنامش با قطع برق پاک نمیشه

      • محمد

        مهمان

        محمد

        لطفا winkآموزش پروگرم‌ کردن رو میشه بذارین، ممنون….

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

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

          مهدی دمرچیلو

          شما پروگرامرتونو انتخاب کنید – آموزش کار باهاش تو نت هستش.

  10. مرتضی شهابی زاده

    مهمان

    مرتضی شهابی زاده

    ADCSRA |=(1<<ADSC)
    این اشتباه رفیق درستش اینه
    ADCSRA = (1<<ADEN) | (1<<ADSC);
    تو پروژت سون سگمنت کاتد مشترک استفاده کردی اما
    unsigned char anode_seg; اینو گداشتی
    کدات را داخل while گداشتی که بهینه نیست
    ADCSRA = 0b00010000; این کد بود و نبودش تا جایی که من میدونم لازم نیست
    دمت گرم با سایتت
    اگه میشه برنامه هات رو با atmel بنویس یا علی

  11. سینا

    مهمان

    سینا

    سلام. اول اینکه دست گلت درد نکنه مطالب خیلی عالیه و منی که از بچگی عاشق الکترونیک بودم و به خاطر نوع آموزش تو دانشگاه به کلی زده شده بود رو به راه آوردید. smile
    بعد یک سوال داشتم شما این همه دانش و مهارت رو چطور به دست آوردید؟ میشه به من هم بگین(ترجیحا ایمیل rofl ) از کتاب؟ سایت؟ چی؟
    خیلی خیلی مرسی

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      سلام-گوگل

  12. mahdi

    مهمان

    mahdi

    سلام من مبخوام یه برنامه دما سنج برای آردوبنو بنویسم میشه راهنماییم کنید

  13. ناشناس

    مهمان

    ناشناس

    سلام میخوا ستم بدونم دماسنج lm35 چه قطعاتی داره

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      سلام – برای ساختن درست حسابیش باید بری دیتاشیت سنسور فوق و ببینی چه مداری ارائه داده – غیر اون – یه میکرو + بردبرد + سیم برد برد + آدابتور ۵ ولت هم لازمه.

  14. mohammad

    مهمان

    mohammad

    سلام
    من جلسه ی شما رو خوندم ولی
    چند تا سوال
    ۱- چرا تو تابع temp مقدار ADCSRA=0b11000000 قرار دادی ولی تو while اصلی برنامه هم دوباره همین مقدار رو دادی به نظرت اضافی نیست؟
    ۲- T=(T*256/1023); تو این فرمول چرا ۱۰۲۴ نیست. مگه ۱۰ بیت نمیشه ۱۰۲۴
    ۳- داخل آموزشی که تو جلسه ADC دادی فرمول اینه اگه اشتباهه درستش کن : Vadc=(Vin*1024)/Vref
    ۴ – در آخر هم وقتی میای پورت A و C رو ورودی و خروجی میکنی لازم نیست بیای مقدار بشون بدی مثلا : PORTA=0XFF که مقدارش HIGH باشه یا pinc بدی ؟؟؟؟
    با تشکر
    در ضمن سایتت هم حرف نداره داداش give_rose

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      سلام
      ۱) به مطلب adc مراجعه کنید ببینید بیت هاش چین و کارشون چیه – احتمالا برای راه اندازی اولیه هستش – تا چیزی راه اندازی اولیه نشه که تابع وقفش رخ نمیده که – اگه غیر از این بود پس حرف شما صحیح هستش.
      ۲و۳) ۱۰۲۴ درسته
      ۴) برای پایه های adc نیازی نیست ورودی خروجی بودن پایه ها رو تعیین کرد تا جایی که خاطرمه – لذا کد DDRA = 0X00; اضافه هستش.

  15. فاطمه

    مهمان

    فاطمه

    سلام و خسته نباشید و ممنون از سایت خوبتون
    نام قطعه ولت سنج در پروتئوس چیه؟ مدتیه که درگیرش هستم
    ممنون

    مشاهده پاسخ ها (1)
    • پارسا

      مهمان

      پارسا

      سلام;در داخل خود پروتعوس گوشه سمت چپ نگا کنی عکس یک ولتی متر هست اونو بزن و زینه دیسی ولت متر رو انتخاب کم
      سوال دیگه هم داشتی میتونی تو ایمیل ازم بپرسیparsaghazvineh@gmail.com blush smile blush

  16. علیرضا آهنی

    مهمان

    علیرضا آهنی

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

  17. میلاد

    مهمان

    میلاد

    عزیز با چه برنامه ای برنامه نویسی کردی؟
    میشه باهات درتماس باشم تلگرام یا هرچی؟

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      کدویژن

  18. miller

    مهمان

    miller

    دادش چرا من هر چی نظر میدم تایید نمیشه؟ت
    توو نظرام ازت چندتا سوال پرسیدم.تو رو خدا جواب بده

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      یه دونه مونده بود که اونم جواب دادم – اگه این نظر رو داری میخونی بهم اطلاع بده تا مطمئن بشم سایت مشکل نداره
      چون در غیر این صورت میزنم به حساب این که یا سایت خرابه یا نظر رو ندیدی.

  19. miller

    مهمان

    miller

    سلام.دوست عزیز من میخام یه خنک کننده یا فن به میکرو وصل کنم.میشه یه راهنماییم کنی؟

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      سلام
      چه کمکی؟

  20. علیرضا

    مهمان

    علیرضا

    آخه چه نظری بدم کارت عالیه
    خدا خیرت بده

  21. مهجور

    مهمان

    مهجور

    هر درجه افزایش دما برابر 0.010 ولت افزایش ورودی آنالوگ هست .ولتاژ مرجع 2.56 ولت است که میشه 256 قسمت در ورودی آنالوگ(2.56 تقسیم بر 0.010).مبدل دیجیتال ده بیتی است(1024) و هر افزایش ورودی آنالوگ در دیجیتال 4 برابر میشه یعنی 0.010 ولت افزایش میشه یک درجه افزایش دما و 4 برابر اون مقدار دیجیتال است.حال اینجا ما مقدار دیجیتال رو داریم پس فقط با تقسیم مقدار adcw به 4 مقدار درجه سانتی گراد به دست میاد
    T = temp
    T=(T/4)

    مشاهده پاسخ ها (1)
    • پارسا

      مهمان

      پارسا

      سلام داداش من یک سری سوالات دارم ازت ممکنه ادرس جیمیلتونو بدید مال منparsaghazvineh@gmail.com

  22. مهناز

    مهمان

    مهناز

    سلام.2 تا سوال دارم
    1.لطفا عبارت داخل while رو ساده تر بنویسید تا دقیق متوجه بشیم!while ((ADCSRA & (1<<ADIF))==0);
    2.چرا بعد while علامت ; رو گذاشتید؟؟

    مشاهده پاسخ ها (3)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      سلام
      1-کجاش رو مشکل دارید؟
      2-خب تو زبون سی بعد هر دستوری باید ; رو قرار داد – به کتب آموزش سی مراجعه کنید.

    • مهجور

      مهمان

      مهجور

      در حالتی که آخر حلقه whileسمی کالون باشه اینطوری تفسیر میشه که تا وقتی شرط درسته ،حلقه تکرار بشه ولی هیچ دستوری انجام نمیشه و دائم شرط بررسی میشه و خط های بعد اجرا نخواهد شد(شرط حلقه اینه وضعیت adcsra وتبدیل adif غیر فعال باشه ) حالا اگه خلاف این بشه یعنیadcsraفعال ADIF یک بشه شرط حلقه درست نیست و حلقه تموم میشه .مثل اینه که بگیم تا دوتا دوستت نیومدن نهار نخور(اگه فقط یکی بیاد هنوز شرط پابرجاست و ناهار بی ناهار)حالا اگه اون دومی هم بیاد یعنی بخور دیگه .

    • 1 1

      مهمان

      1 1

      منظور از ADCSRA ، همون عبارت ۸ بیتی هست. عملگر “&” هم میاد به صورت بیت به بیت شرط and mosking رو بررسی میکنه. مثلا:
      ۱۰۰۱&۱۱۱۰=۱۰۰۰
      بیت های متناظر رو با هم مقایسه میکنیم. اگه هر دو یک بود، اون طرف هم میشه یک.

  23. علی

    مهمان

    علی

    سلام آقا من این دماسنج رو میخوام برای اندازه گیری یک ظرف المنتی با دمای 80 تا 100 درجه جواب میده لطفاراهنمایی بفرمایید ممنون از مطالبی که میذارید

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      سلام
      از ماژول ترموکوپل MAX6675 K استفاده کن

  24. علی

    مهمان

    علی

    هیچ وقت نتونستم بفهمم چرا (T*256/1023) اصن برا چیه ینی چی

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      2.56 ولتاژ مرجع – حالا اگه ولتاژ مرجع 5 ولت باشه که 5 قرار میدی
      1024-1 بیانگر 10 بیتی بودن adc هستش
      یه ضرب در 100 هم میکنن تا…. تست کن تا علتش رو بفهمی

  25. حامد

    مهمان

    حامد

    آقا من برنامه نوشتم واسه 2رقمی دما سنج
    فقط مثلا دما از 20 یهو ببری تو 30 این آروم آروم یکی یکی میره بالا
    اگه بخوام یدفه مثلا 20 نشون بده و یهو 30 چیکار کنم؟

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      خب کاری نداره
      ولی حالت های مختلفی میتونه داشته باشه که من یه موردش رو میگم
      بیا تو کد نویسی بگو اگه مقدار دما بین 21 تا 29 بود عدد 20 رو نشون بده و اگه 30 شد هم که همو 30 رو نشون بده
      یه حالت دیگه
      اگه دما بین 20-25 بود عدد 20 رو نشون بده و اگه بین 25-30 بود عدد 30 رو نشون بده
      یا هر حالتی که دوست داری با if و if ele برنامش رو بنویس

  26. حامد

    مهمان

    حامد

    آقا منم بستم مدارو ولی فقط 8 نشون میده
    حالا نمیدونم نویز از محیط میگیره یا اینکه چون رنج دمای خونه بالاتر از 9درجس اینطوریه!!!
    اومدم برا دماهای بالاتراز 9 یه سری کد تعین کردم که مثلا اگه 20 درجه شد ال ای دی A سون سکمنو نشون بده ولی بازم فقط 8 نشون میده :(((((

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      پایه aref و avcc رو به 5 ولت وصل کن

  27. ممد

    مهمان

    ممد

    سلام
    چرا پرچم ADIF را یک کردید؟
    ADCSRA = 0b00010000;
    چرا؟؟

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      سلام

      بیت ۴ : ADIF این فلگ هم معروف به فلگ وقفه ADC هست و هر وقت که عملیات تبدیل ADC تمام شد این بیت بصورت اتوماتیک ۱ میشه و ما رو مطلع میکنه که آیا عملیات تبدیل انجام شده یا نه ؟!

      تو خط ۱۵ اومدم گفتم تا زمانی که این پرچم ۰ هستش وایسا…یعنی تا زمانی که تبدیل تمام نشده وایسا
      تو خط ۱۷ : معمولا پرچم ها رو برای این که ریستشون کنیم باید بعد از این که کارمون باهاش تموم شد مقدار ۱ رو بهشون بدیم تا ریست بشن

  28. محمد

    مهمان

    محمد

    ای ول .به این همه معرفت و به این همه علم .

  29. میلاد

    مهمان

    میلاد

    همون میخاستم با سگمت تستش کنم متاسفانه ال سی دی ندارم

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      یه سری اعداد از قبل تعیین شده به ۷s بده ببین درست نشون میده و بعد بیا lm35 رو هم بهش اضافه کن

  30. میلاد

    مهمان

    میلاد

    سلام
    همونجور ک شماگفتین پیاده کردم
    ولی انگا بودو نبود سنسور تو مدار فرقی ایجاد نمیکنه سگمنت همون صفر یا هشتو نشون میده
    در ضمن من تو مدارم ولت متر نذاشتما
    مرسی

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      خوب یه کاری کن….بیا از lcd استفاده کن…..
      سنسورت رو عوض کن
      یه عکس هم بزار از مدارت

  31. میلاد

    مهمان

    میلاد

    سلام
    مهندس من اینو تو عمل جوابی ازش نگرفتم حتی سنسورشم گذاشتم تو فریزر ک دماش تک رقمی شه بلکه تو سگمنت دیده شه ولی نشد
    تو عمل ولتاژ منبع رو به vccه میکرو وصل کردما

    مشاهده پاسخ ها (2)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      سلام
      راه انداری این سادس
      فقط یه کاری کن
      ولتاژ ورجع رو بزار رو AVCC
      و بعد پایه های AVCC و AREF رو به تغزیه میکرو(VCC) وصل کن…مهم
      در ضمن مطلب LM35 چند تا تو سایت هستش….و بعد خودت هم میتونی با کدویزارد کدویژن برنامش رو بنویسی
      تست کن و خبرم کن

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

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

        مهدی دمرچیلو

        در ضمن اگه دیدی سنسور داغ کرد…سریع برعکسش کن…..پایه وسطی کا ثابته …فقط پایه های طرفین رو جاشون رو عوض کن

  32. میلاد

    مهمان

    میلاد

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

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      سلام
      کد ها رو به اون صورتی که تو جعبه نظرات توضیح دادم قرار بده
      و بعد سوالت رو تو مطلب مربوطه مطرح کن…آخه من از کجا بدونم این کدوم مطلب هستش که شما تغییرش دادین

  33. حمید

    مهمان

    حمید

    بیت ADIF یک فلگ میباشد و در AVR برای پاک کردن فلگها باید در روتین وقفه روی آنها یک بنویسیم
    با نوشتن یک روی فلگ آن فلگ مجددا مقدار پیش فرض خودش یعنی ADIF=0 به خود میگیرد
    این یک نوشتن روی فلگ ها برای پاک شدن آنها جزئ موارد عجیب AVR هست

  34. میلاد

    مهمان

    میلاد

    با سلام
    راجب این خط توضیح میخاستم مرسی
    T=(T*256/1023)

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      سلام
      مطلب مربوط به ADC رو نخوندی مثل این که
      مقدار دریافتی از تابع ضربدر ولتاژ مرحع تقسیم بر دقت تایمر ضربدر ۱۰۰(تا به ولت تبدیل بشه….۱گه ضرب نکنی اینو مثلا به جای ۱۰ ولت…ولتاژت میشه ۰٫۱ ولت)

  35. میلاد

    مهمان

    میلاد

    مرسی داداشم خعلی اقایی smile heart

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      نوکریم hi

  36. میلاد

    مهمان

    میلاد

    با سلام
    خب مهندس تقریبا فهمیدم رجیستراشو ولی اینارو باید حفظ شیم؟شما تو کد نویسی چجوری فهمیدین که اینارو باید اضافه کرد؟منظورم برا مثال همین کده ADCSRA |=(1<<ADSC)
    کلا این کدا کارشون چیه؟نباشن چی میشه sad

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      سلام
      والا من چیزی حفظ نمیکنم و فقط منبع رو میبینم و کار ریجستر ها و هر بیتش رو و بعد پروژم رو انجام میدم
      ولی همین که چندین بار پروژه انجام بدی دیگه خودکار میره تو ذهنت….
      ولا اگه بگم میدونم دروغ گفتم
      چون من چیزی حفظ نمیکنم و اگه الان بخوام جوابت رو بدم باس برم یا مطلب Adc رو بخونم یا کتابم رو یا دیتاشیت رو
      لذا خودت بری این ۳ کار رو بکنی بهتره….

  37. میلاد

    مهمان

    میلاد

    سلام مهندس
    ببخشید من اون کدهایی که مربوط به adc میشه رو خوب متوجه نشدم یکیش مثلا ADMUX = 0b11000001
    خب این ینی چی؟ممنون میشم
    مرسی از زحماتتون

    مشاهده پاسخ ها (2)
  38. مهسا

    مهمان

    مهسا

    سلام
    ممنون از اموزشتون.یه سوال داشتم
    توی خط ۱۵ شرط خروج از while اینه که ADIF بشه ۱, خب حالا چرا تو خط ۱۸ چرا دوباره بیت ADIF رو یک کرده ,مگه قبلا تو خط۱۵ مقدارش۱ نشده؟
    با تشکر

    مشاهده پاسخ ها (1)
  39. نوید

    مهمان

    نوید

    خونده ام مطلب رو ولی متوجه نشدم

  40. نوید

    مهمان

    نوید

    سلام
    اگه امکانش هست لطفا تابع temp داخل کد رو بیشتر توضیح بدید من متوجه نشدم برای چی بعد از while شما دوباره ADIF رو 1 کردید؟کلا تابع داره چیکار میکنه؟
    یا یه چیز دیگه شما تو تابع temp مقدار ADCSRA=0b11000000 قرار دادید ولی تو while اصلی برنامه هم دوباره همین مقدار رو دادید به نظرتون اضافی نیست؟
    با تشکر

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      سلام
      شما مطلب جلسه ۲ آموزش AVR که تو سایت هستش رو بخون…..اگه دوهزاریت نیوفتاد بگو تا بگم buba >>> crazy

  41. طبسی

    مهمان

    طبسی

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

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      LM35 سه تا پایه داره-زمین-۵ولت-و پایه ای که به ADC میکرو وصل میشه و شما با محاسبه ولتاژ این پایه دما رو متوجه میشی…….
      برا سنسور دقیق تر از LM35 میتونید تو فروشگاه ها رو سرچ کنید….

  42. alireza_g698

    مهمان

    alireza_g698

    سلام
    خیلی ممنون از آموزش هاتون
    یه سوال داشتم شما این جا ولتاژ مرجع رو چی انتخاب کردین؟
    یه سوال دیگه هم هست
    این کد برا چی استفاده شده
    T=(T*256/1023)؟؟؟
    ممنون از راهنمایی های شما

    مشاهده پاسخ ها (1)
  43. مهدی دمرچیلو

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

    مهدی دمرچیلو

    سلام
    ممنون
    آموزشش تو اینترنت هست ولی به زبون سی کم مطلب هستش.>>>برا بیسیک مطلب بیشتره
    انشاالله بعد از این که عملی بستمش آموزش ساختش+فیلم و از این جور چزاش smile رو میزارم سایت.
    موفق باشید.

  44. sam

    مهمان

    sam

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

    مشاهده پاسخ ها (2)
    • محمد جلوخانی

      مهمان

      محمد جلوخانی

      سلام مهندس
      من بیشتر چیزایی که یا گرفتم تو این سایت بوده واقعا ممنون که اینقدر عامیانه می نویسید خیر ببینی جوون
      یه خواهشی داشتم اگه میشه یه دماسنج با ntc یا همون مقاومت حرارتی که خیلی ارزون تر از lm35 هست رو با زبان c و میکرو avr آموزش بدید ممنون
      راستی اگرم بلد نیستید لطفا یاد بگیرید و به ما هم آموزش بدید ، زبانتون گویاست ممنون
      موفق باشید

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

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

        مهدی دمرچیلو

        سلام
        والا بحث خرید قطعه یکم دردسر سازه….لذا منم فعلا کار با قطعات رو گزاشتم کنار(فعلا)—و بیشتر روی درسام(موقع امتحاناس الان) کار میکنم و یکم طراحی pcb و qt (تا یادشون بگیرم و یاد بدم در حد خودم-چون مطلب دربارشون کم هستش)—— ولی در مورد اونی که گفتید مقاومت متغییر بر اساس دما…..میتونید با یه تقسیم ولتاژ یه دماسنج بسازید—یه سنسور بسازید مثل lm35—-تقسیم ولتاژ هم اگه دربارش نمیدونید تو گوگل بسرچید کلی مطلب دربارش میاد بالا—–البته دقیقا نمیدونم دقت اینا(مقاومت حرارتی) در چه حدی هستش……به درد دماسنج میخوره نمیخوره و…(اینو نمیدونم)