NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3791 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 7 از 7

موضوع: سوال در مورد دستکاری کردن مقدار adcw برای پروژه دماسنج + برنامه + پروتئوس

  1. #1
    کاربر علاقه مند
    تاریخ عضویت
    Aug 2011
    نوشته ها
    77
    تشکر
    46
    تشکر شده 29 بار در 26 پست

    پیش فرض سوال در مورد دستکاری کردن مقدار adcw برای پروژه دماسنج + برنامه + پروتئوس

    سلام به همگی

    من امروز بیکار بودم... خواستم یه برنامه دماسنج برای خودم بنویسم و نوشتم ولی نمیدونم چگونه باید خروجی ADCW از ماژول A2D رو مقدار دهی کرد تا خروجی رو درست روی lcd نمایش بده.

    برنامه اینه:
    کد:
    #include <mega16.h>
    #include <delay.h>
    #include <alcd.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    void main(void)
    {
    char buffer[10];
    
    PORTA=0x00;
    DDRA=0x00;
    PORTB=0x00;
    DDRB=0x00;
    PORTC=0x00;
    DDRC=0x00;
    PORTD=0x00;
    DDRD=0x00;
    
    ADMUX = 0b01100000;
    ADCSRA = 0b11100111;
    SFIOR = 0b00000000;
    
    lcd_init(16);
    lcd_gotoxy(0,0);
    lcd_puts("TEMP:    'C");
    while (1)
          {
          ADCW= (ADCW/4); 
          sprintf(buffer,"%d",ADCW);
          lcd_gotoxy(6,0);  
          lcd_puts(buffer);
          } 
    }
    آدرس فایل کدویژن به همراه فایل پروتئوس هم اینه: حجمش 96 کیلوبایت بیشتر نیست:
    termometer

    یه کمکی بکنید...چیز زیادی از شما نمیخوام...فقط بفرمایید ضرب و تقسیم مقدار خروجی ADCW که شامل دو رجیستر هشت بیتی ADCH و ADCL هست چگونه باید باشد تا مقدار دما درست نشون داده بشه..

    اون تقسیم بر 4 رو هم همینجوری گذاشتم...چیز بهتری به ذهنم نرسید.


    در ضمن از سنسور LM35 برای پروژه استفاده کردم.

    ممنونم

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    کاربر ارشد 1nafar آواتار ها
    تاریخ عضویت
    Jul 2007
    نوشته ها
    2,745
    تشکر
    1,266
    تشکر شده 4,874 بار در 1,377 پست

    پیش فرض

    سلام
    من امروز بیکار بودم... خواستم یه برنامه دماسنج برای خودم بنویسم و نوشتم ولی نمیدونم چگونه باید خروجی ADCW از ماژول A2D رو مقدار دهی کرد تا خروجی رو درست روی lcd نمایش بده.
    تا اونجا که یادم میاد ADCW یک رجیستر فقط خواندنی هست که کاربر نمیتونه اون رو مقدار دهی کنه .
    در مورد راه اندازی adc در کدویژن قبلا زیاد در سطح نت و انجمن بحث شده ، جستوجو کنید .

  4. تشکرها از این نوشته :


  5. #3
    کاربر علاقه مند
    تاریخ عضویت
    Aug 2011
    نوشته ها
    77
    تشکر
    46
    تشکر شده 29 بار در 26 پست

    پیش فرض

    نقل قول نوشته اصلی توسط 1nafar نمایش پست ها
    سلام

    تا اونجا که یادم میاد ADCW یک رجیستر فقط خواندنی هست که کاربر نمیتونه اون رو مقدار دهی کنه .
    در مورد راه اندازی adc در کدویژن قبلا زیاد در سطح نت و انجمن بحث شده ، جستوجو کنید .
    بله...منظور هم دستکاری همین مقدار خوانده شده هست.

    با راه اندازی adc مشکلی ندارم...مشکل با این بود که برای نمایش دما باید با این مقدار خوانده شده چه کرد...یعنی مثلا دمای 100 درجه معادل چه مقدار adcw میشه.

  6. #4
    مدير بخش STM32 sadmonew آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    صادق محمدي
    نوشته ها
    2,002
    تشکر
    6,283
    تشکر شده 3,115 بار در 1,408 پست

    پیش فرض

    سلام مهندس
    LM35 يه سنسور دماست كه به ازاي تغيير هر درجه سانتيگراد به ما 10mV تو خروجي ولتاژ ميده.
    خوب اگه دما 100 درجه سانتيگراد بشه فقط كافيه 100*10mV كنيم ، يعني ولتاژ 1 ولت رو تو خروجي سنسور داريم.
    چون ADC ميكروي AVR ولتاژ رو به صورت 10 بيتي نمونه برداري ميكنه پس براي تبديل مقداري كه تو ADCW ريخته ميشه به ولتاز اين كارو انجام بده:
    کد:
       Vin = (ADCW * Vref) / (2^10) 
           = (ADCW * 2560mV) / 1024
    خوب دما رو راحت ميتونيم بدست بياريم:
    کد:
    Temp = (Vin / 10)
    ویرایش توسط sadmonew : 19-12-2013 در ساعت 17:55
    _____________________________________
    _____________________________________

  7. کاربران : 3 تشکر کرده اند از شما sadmonew برای ارسال این پست سودمند:


  8. #5
    ناظم انجمن Ma3ood آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    مسعود
    نوشته ها
    2,248
    تشکر
    1,912
    تشکر شده 3,087 بار در 1,509 پست

    پیش فرض

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

  9. #6
    کاربر فعال r0b0 آواتار ها
    تاریخ عضویت
    Jan 2013
    نام
    امید عزیزی
    نوشته ها
    140
    تشکر
    205
    تشکر شده 198 بار در 80 پست

    پیش فرض

    نقل قول نوشته اصلی توسط sadmonew نمایش پست ها
    سلام مهندس
    LM35 يه سنسور دماست كه به ازاي تغيير هر درجه سانتيگراد به ما 10mV تو خروجي ولتاژ ميده.
    خوب اگه دما 100 درجه سانتيگراد بشه فقط كافيه 100*10mV كنيم ، يعني ولتاژ 1 ولت رو تو خروجي سنسور داريم.
    چون ADC ميكروي AVR ولتاژ رو به صورت 10 بيتي نمونه برداري ميكنه پس براي تبديل مقداري كه تو ADCW ريخته ميشه به ولتاز اين كارو انجام بده:
    کد:
       Vin = (ADCW * Vref) / (2^10) 
           = (ADCW * 2560mV) / 1024
    خوب دما رو راحت ميتونيم بدست بياريم:
    کد:
    Temp = (Vin / 10)
    سلام
    ببخشید مهندس adc بصورت 10بیتی نمونه برداری میکنه
    در تقسیمات بجای 256 باید 1024 جایگزین بشه
    ویرایش توسط sadmonew : 19-12-2013 در ساعت 17:55

  10. تشکرها از این نوشته :


  11. #7
    مدير بخش STM32 sadmonew آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    صادق محمدي
    نوشته ها
    2,002
    تشکر
    6,283
    تشکر شده 3,115 بار در 1,408 پست

    پیش فرض

    نقل قول نوشته اصلی توسط r0b0 نمایش پست ها
    سلام
    ببخشید مهندس adc بصورت 10بیتی نمونه برداری میکنه
    در تقسیمات بجای 256 باید 1024 جایگزین بشه
    سلام، بله درسته
    البته ولتاژ مرجع ADC که دارین استفاده میکنید هم به جای Vref در رابطه قرار بدین.
    _____________________________________
    _____________________________________

  12. تشکرها از این نوشته :


موضوعات مشابه

  1. سوال و جواب در مورد پروتئوس
    توسط alamdar در انجمن آموزش نرم افزارهای برق و الکترونیک
    پاسخ: 34
    آخرين نوشته: 07-11-2018, 19:57
  2. سوال درباره برنامه پروتئوس
    توسط mehdi29665 در انجمن آموزش نرم افزارهای برق و الکترونیک
    پاسخ: 1
    آخرين نوشته: 19-02-2014, 01:40
  3. سوال درباره برنامه پروتئوس
    توسط mehdi29665 در انجمن AVR
    پاسخ: 0
    آخرين نوشته: 18-02-2014, 12:10
  4. پاسخ: 4
    آخرين نوشته: 13-10-2011, 23:42
  5. یه سوال از پروتئوس
    توسط arsalan681 در انجمن آموزش نرم افزارهای برق و الکترونیک
    پاسخ: 1
    آخرين نوشته: 10-01-2010, 16:01

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

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