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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

3) نظرات حاوی کد برنامه نویسی تایید نمیشوند ( قالب سایت بهم میریزه )

  1. مهمان

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

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

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

  2. مهمان

    ارین مرادی

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

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

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

      کدویژن

  3. مهمان

    داداش

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

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

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

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

      • مهمان

        داداش

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

  4. مهمان

    محمد

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

  5. مهمان

    مریم

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

  6. مهمان

    نسرین

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

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

      مهدی دمرچیلو

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

  7. مهمان

    AmirMkh

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

  8. مهمان

    توحید

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

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

      مهدی دمرچیلو

      سلام-نه-

  9. مهمان

    محمد

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

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

      مهدی دمرچیلو

      سلام
      به کمک پروگرامر
      من پروگرامر هاتل دارم – فقط حواست باشه موقع خرید پروگرامر چیزی بخری که به 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 ) از کتاب؟ سایت؟ چی؟
    خیلی خیلی مرسی

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

      مهدی دمرچیلو

      سلام-گوگل

  12. مهمان

    mahdi

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

  13. مهمان

    ناشناس

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

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

      مهدی دمرچیلو

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

  14. مهمان

    mohammad

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

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

      مهدی دمرچیلو

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

  15. مهمان

    فاطمه

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

    • مهمان

      پارسا

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

  16. مهمان

    علیرضا آهنی

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

  17. مهمان

    میلاد

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

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

      مهدی دمرچیلو

      کدویژن

  18. مهمان

    miller

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

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

      مهدی دمرچیلو

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

  19. مهمان

    miller

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

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

      مهدی دمرچیلو

      سلام
      چه کمکی؟

  20. مهمان

    علیرضا

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

  21. مهمان

    مهجور

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

    • مهمان

      پارسا

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

  22. مهمان

    مهناز

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

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

      مهدی دمرچیلو

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

    • مهمان

      مهجور

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

    • مهمان

      1 1

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

  23. مهمان

    علی

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

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

      مهدی دمرچیلو

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

  24. مهمان

    علی

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

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

      مهدی دمرچیلو

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

  25. مهمان

    حامد

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

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

      مهدی دمرچیلو

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

  26. مهمان

    حامد

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

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

      مهدی دمرچیلو

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

  27. مهمان

    ممد

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

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

      مهدی دمرچیلو

      سلام

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

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

  28. مهمان

    محمد

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

  29. مهمان

    میلاد

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

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

      مهدی دمرچیلو

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

  30. مهمان

    میلاد

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

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

      مهدی دمرچیلو

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

  31. مهمان

    میلاد

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

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

      مهدی دمرچیلو

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

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

        مهدی دمرچیلو

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

  32. مهمان

    میلاد

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

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

      مهدی دمرچیلو

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

  33. مهمان

    حمید

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

  34. مهمان

    میلاد

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

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

      مهدی دمرچیلو

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

  35. مهمان

    میلاد

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

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

      مهدی دمرچیلو

      نوکریم hi

  36. مهمان

    میلاد

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

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

      مهدی دمرچیلو

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

  37. مهمان

    میلاد

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

  38. مهمان

    مهسا

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

  39. مهمان

    نوید

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

  40. مهمان

    نوید

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

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

      مهدی دمرچیلو

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

  41. مهمان

    طبسی

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

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

      مهدی دمرچیلو

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

  42. مهمان

    alireza_g698

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

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

    مهدی دمرچیلو

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

  44. مهمان

    sam

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

    • مهمان

      محمد جلوخانی

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

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

        مهدی دمرچیلو

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