اطلاعیه

Collapse
No announcement yet.

کمک در ساختن دماسنج دیجیتال

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    کمک در ساختن دماسنج دیجیتال

    سلام
    خسته نباشید
    من تازه عضوء سایت شدم من دانشجویی نرم افزار هستم
    به یه پروژه برای درس آز ریز پردازنده دارم عناوینی پروژه های من اهم متر دیجیتال ، امپر متر دیجیتال ، ذماسنج دیجیتال و رطوبت سنج دیجیتال هستش البته من به یکی از این ها نیاز دارم
    مواردی که برای این پروژع نیاز هست لینه که زبان برنامه نویسی باید c باشه از ic 8051 باید استفاده بشه و من به فایل hex و فایل protus و المان های مورد نیاز برای ساخت این پروژه نیاز دارم البته اگه یه توضیح هم در مورد این پروژه باشه ممنون میشم
    ممنون میشم به من کمک کنید اخه این پروژه 16 نمره داره و من خیلی بهش نیاز دارم زمانم هم کوتاه هستش
    بازم ممنون

    #2
    پاسخ : کمک در ساختن دماسنج دیجیتال

    سلام ...............

    با AVR نمیتونید کار کنید؟
    دوستان! مدتی کمتر به سایت میام ..

    دیدگاه


      #3
      پاسخ : کمک در ساختن دماسنج دیجیتال

      می تونید با LM335 و مدار و برنامه ی زیر پروژتونو تحویل بدین:



      کد:
      #include <reg52.h>
      void outLCD(char c);
      
      pdata unsigned char ADC0804;
      
      unsigned char ReadADC0804(void){
         ADC0804 = 0;  // invoke ADC0804 to start conversion
         while (P3^2) ; // waiting end of conversion
         return ADC0804;
      }
      
      void nain(void){
      unsigned char v;
         v = ReadADC0804();
         outLCD((v/100)+0x30); v = v % 100;
         outLCD((v/10 )+0x30); v = v % 10;
         outLCD((v  )+0x30);
      }
      با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

      دیدگاه


        #4
        پاسخ : کمک در ساختن دماسنج دیجیتال

        سلام
        این برنامه ی دماسنج با 8051 است ولی به زبان اسمبلی.
        سخت افزارش هم همان سخت افزار بالا است که دوست عزیزمان زحمتش رو کشیدن و گذاشتن.
        فایل های پیوست شده

        دیدگاه


          #5
          پاسخ : کمک در ساختن دماسنج دیجیتال

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

          دیدگاه


            #6
            پاسخ : کمک در ساختن دماسنج دیجیتال

            مدار و برنامه ای رو که براتون گذاشتم متوجه نشدید؟
            با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

            دیدگاه


              #7
              پاسخ : کمک در ساختن دماسنج (avr)

              لطفا pm کنید

              دیدگاه


                #8
                پاسخ : کمک در ساختن دماسنج دیجیتال

                سلام ممنون میشم اگر کسی خیلی سریع کمکم کنه
                من یک دماسنج دیجیتال با stm32f103c8 و lm35 طراحی کردم و میخوام دما از یک حد بالا بره ال ای دی رو بهم روشن کنه و دما رو روی ال سی دی نشون بده اما برنامم کار نمیکنه.
                اینم کد برنامم
                hadc1.Init.NbrOfConversion=1;//rank1
                HAL_ADC_Init(&hadc1);
                HAL_ADC_Start(&hadc1);
                if(HAL_ADC_PollForConversion(&hadc1,500)==HAL_OK)
                {
                Temp=HAL_ADC_GetValue(&hadc1);
                Temp=(Temp/4095)*500;

                }

                HAL_ADC_Stop(&hadc1);

                if(Temp>25)
                {
                HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_SET);
                sprintf(data,"Themp=%2f",Temp);
                lcd_puts(data);
                HAL_Delay(1000);
                lcd_clear();
                }


                if(Temp<23)
                {
                HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_RESET) ;
                sprintf(data,"Themp=%2f",Temp);
                lcd_puts(data);
                HAL_Delay(1000);
                lcd_clear();
                بازم ممنون میشم جوابموسریع بدید.

                دیدگاه


                  #9
                  پاسخ : کمک در ساختن دماسنج دیجیتال

                  نوشته اصلی توسط masoume&sajjad نمایش پست ها
                  سلام ممنون میشم اگر کسی خیلی سریع کمکم کنه
                  من یک دماسنج دیجیتال با stm32f103c8 و lm35 طراحی کردم و میخوام دما از یک حد بالا بره ال ای دی رو بهم روشن کنه و دما رو روی ال سی دی نشون بده اما برنامم کار نمیکنه.
                  اینم کد برنامم
                  hadc1.Init.NbrOfConversion=1;//rank1
                  HAL_ADC_Init(&hadc1);
                  HAL_ADC_Start(&hadc1);
                  if(HAL_ADC_PollForConversion(&hadc1,500)==HAL_OK)
                  {
                  Temp=HAL_ADC_GetValue(&hadc1);
                  Temp=(Temp/4095)*500;

                  }

                  HAL_ADC_Stop(&hadc1);

                  if(Temp>25)
                  {
                  HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_SET);
                  sprintf(data,"Themp=%2f",Temp);
                  lcd_puts(data);
                  HAL_Delay(1000);
                  lcd_clear();
                  }


                  if(Temp<23)
                  {
                  HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_RESET) ;
                  sprintf(data,"Themp=%2f",Temp);
                  lcd_puts(data);
                  HAL_Delay(1000);
                  lcd_clear();
                  بازم ممنون میشم جوابموسریع بدید.
                  سلام
                  فکر میکنم هنگام تبدیل مقدار ADC به دما قسمت اعشاری رو حذف میکنه. خط 7 رو به شکل زیر اصلاح کنید:
                  Temp=(Temp/4095.0)*500;

                  دیدگاه


                    #10
                    پاسخ : کمک در ساختن دماسنج دیجیتال

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

                    دیدگاه


                      #11
                      پاسخ : کمک در ساختن دماسنج دیجیتال

                      نوشته اصلی توسط masoume&sajjad نمایش پست ها
                      ممنون از پاسختون
                      اما من ال سی دیم کار نمیکنه فقط از ال ای دی استفاده میکنم در هر حالت ال ایدیم روشن میشه چه دما 5 باشه چه یک عدد دیگه
                      نوع متغیر Temp چیه راستی؟ من اصلا حواسم به نوع اش نبود. شما باید داده adc رو در یک متغیر 16 بیتی مثل short int یا uint16_t بریزید و بعد از تبدیل مقدار adc به دما، اونو در یک متغیر با نوع float یا double ذخیره کنید و برای نمایش به lcd بدید.

                      دیدگاه


                        #12
                        پاسخ : کمک در ساختن دماسنج دیجیتال

                        خواهشمندم سریع کمک رسانی نماید

                        دلیل: ادغام دو پست برای جلوگیری از اسپم

                        این دو تا نوعی که شما گفتید تو نرم افزار keil که با stm cube باز میشه و با تابع HAL کار میکنه تعریف نشده و من TEMP رو float تعریف کردم

                        دلیل: ادغام دو پست برای جلوگیری از اسپم

                        البته من زیاد حرفه ای نیستم دومین پروژه عملیم هست که دارم کار میکنم .ممنون میشم اگر برام بنویسید کامل که چگونه تعریف کنم

                        دلیل: ادغام دو پست برای جلوگیری از اسپم

                        T1=HAL_ADC_GetValue(&hadc1);
                        Temp=(T1/4095)*500;
                        اومدم T1 رو short int تعریف کردم اما باز ال ایدیم در هر صورت روشنه
                        چون short int بود .00 رو از جلو 4095 برداشتم.

                        دیدگاه


                          #13
                          پاسخ : کمک در ساختن دماسنج دیجیتال

                          نوشته اصلی توسط masoume&sajjad نمایش پست ها
                          خواهشمندم سریع کمک رسانی نماید

                          دلیل: ادغام دو پست برای جلوگیری از اسپم

                          این دو تا نوعی که شما گفتید تو نرم افزار keil که با stm cube باز میشه و با تابع HAL کار میکنه تعریف نشده و من TEMP رو float تعریف کردم

                          دلیل: ادغام دو پست برای جلوگیری از اسپم

                          البته من زیاد حرفه ای نیستم دومین پروژه عملیم هست که دارم کار میکنم .ممنون میشم اگر برام بنویسید کامل که چگونه تعریف کنم

                          دلیل: ادغام دو پست برای جلوگیری از اسپم

                          T1=HAL_ADC_GetValue(&hadc1);
                          Temp=(T1/4095)*500;
                          اومدم T1 رو short int تعریف کردم اما باز ال ایدیم در هر صورت روشنه
                          چون short int بود .00 رو از جلو 4095 برداشتم.
                          ربطی به نوع نداره شما اون اعشار رو بذار. اعشار اگر نباشه توی تقسیم از باقی مونده صرف نظر میشه و از اونجایی که خروجی ADC همواره از 4096 کمتره، خارج قسمت همیشه صفر میشه؛ در نتیجه Temp هم همیشه صفر میشه

                          دیدگاه


                            #14
                            پاسخ : کمک در ساختن دماسنج دیجیتال

                            جواب نمیده

                            دلیل: ادغام دو پست برای جلوگیری از اسپم

                            ال ای دیم همش روشنه

                            دیدگاه


                              #15
                              پاسخ : کمک در ساختن دماسنج دیجیتال

                              نوشته اصلی توسط masoume&sajjad نمایش پست ها
                              جواب نمیده

                              دلیل: ادغام دو پست برای جلوگیری از اسپم

                              ال ای دیم همش روشنه
                              رفرنس adc چقدره؟ این ضریب 500 از کجا اومده دقیقا؟ اگر رفرنس 3.3 ولت باشه، با محاسبات من کافیه مقدار خونده شده ضرب در 0.080586 بشه تا دما بدست بیاد.
                              Temp = T1 * 0.080586;

                              دیدگاه

                              لطفا صبر کنید...
                              X