اطلاعیه

Collapse
No announcement yet.

نمایش دما بر روی سون سگمنت با سنسور ds18b20 در کدویژن

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

    نمایش دما بر روی سون سگمنت با سنسور ds18b20 در کدویژن

    دوستان عزیز برای نمایش دما بر روی سون سگمنت به مشکل خوردم
    در سنسور های آنالوگ معمولی همچون lm35 براحتی می تونم دما رو بر روی سون سگمنت نمایش بدم ولی زمانی که همین کار رو با سنسور DS18B20 انجام می دم
    سون سگمنت شروع به چشمک زدن می کنه این مشکل هم برمی گرده به مدت زمان پاسخ گویی سنسور که 750میلی ثانیه طول می کشه
    این مشکل رو هم حل کردم با قرار دادن تابع نمایش در یک تایمر ولی اینبار در تابع اصلی مدار دما خونده میشه ولی رو سون سگمنت نمایش داده نمی شه و عدد صفر نمایش داده میشه

    #include <mega32.h>
    #include <ds18b20.h>
    #include <1wire.h>
    #include <delay.h>

    #define Data_Pin PORTD
    #define En1 PORTC.2
    #define En2 PORTC.3
    #define En3 PORTC.4
    #define En4 PORTC.5
    #define xtal 8000000
    #define MAX_DS1820 8

    این قسمت تایمر
    interrupt [TIM0_OVF] void timer0_ovf_isr(void)
    {




    d++;
    if(d==1)
    {
    Hex_to_DEC(temp_t);
    }
    if(d>5)
    {
    PORTC = 0b00101111;
    PORTA =part1;
    }
    if(d>10)
    {
    PORTC = 0b00110111;
    PORTA =part2| 0x80; // 0x80 Is For dot in SevenSegmeant
    }
    if(d>15)
    {
    PORTC = 0b00111011;
    PORTA =part3;
    }
    if(d>20)
    {
    PORTC = 0b00011111;
    PORTA =0x39;


    }
    if(d>25)
    {
    //PORTC = 0b00111111;
    d=0;
    }

    //------------------------
    TCNT0=0xB2;

    }

    اینم قسمت سوم
    while (1)
    {
    temp_t =temp_sensor();
    delay_ms(750);

    }

    دوستان لطفا راهنمایی کنید .
    جدیدترین ویرایش توسط kazemihossein33; ۱۸:۴۹ ۱۳۹۵/۱۲/۰۴.
    [img width=67 height=100]http://dc365.4shared.com/img/pGCA8eEE/30607875402595991224.jpg[/img]
    1-مردان بزرگ اراده مي کنند و مردان کوچک آرزو
    2-افراد بزرگ، هميشه به دنبال ايده هاي بزرگند و افراد کوچک به دنبال افراد بزرگ
    3-هميشه سعي کن آنقدر کامل باشي که بزرگترين تنبيه تو براي ديگران گرفتن خودت از آنها باشد.

    #2
    پاسخ : نمایش دما بر روی سون سگمنت با سنسور ds18b20 در کدویژن

    من با کدویژن کار نمیکنم ولی اینو میدونم که برای کار با این سنسور از یک تایمر برای زمان بندی معمولا استفاده میشه.احتمالا از تایمر صفر استفاده شده که برنامه شما درست جواب نمیده.تایمر نمایش رو به یکی از تایمرهای دیگه تغییر بدین احتمالا درست بشه
    Aristar Group - Always And Forever

    دیدگاه


      #3
      پاسخ : نمایش دما بر روی سون سگمنت با سنسور ds18b20 در کدویژن

      سلام دوست عزیز ،
      دستور نمایش سون سگمنت رو به سایر تایمر ها هم انتقال دادم ولی کار نکرد
      مشکل اصلی اینه که وقتی دستور زیر رو


      temp_t =temp_sensor();

      میارم قبل دستور

      Hex_to_DEC(temp_t);


      شروع به نمایش دما میکنه ولی بدلیل تاخیر 750 میلی ثانیه ای تابع
      temp_t =temp_sensor();

      نمایشگر بصورت چشمک زن در میاد

      اینم بگم دستور نمایش سون سگمنت تو حلقه while قرار دادم و دستور خوندن دما رو به تایمر انتقال دادم که تو این شرایط سون سگمنت بازم دما رو نمایش نداد
      جدیدترین ویرایش توسط kazemihossein33; ۱۳:۳۰ ۱۳۹۵/۱۲/۰۵.
      [img width=67 height=100]http://dc365.4shared.com/img/pGCA8eEE/30607875402595991224.jpg[/img]
      1-مردان بزرگ اراده مي کنند و مردان کوچک آرزو
      2-افراد بزرگ، هميشه به دنبال ايده هاي بزرگند و افراد کوچک به دنبال افراد بزرگ
      3-هميشه سعي کن آنقدر کامل باشي که بزرگترين تنبيه تو براي ديگران گرفتن خودت از آنها باشد.

      دیدگاه


        #4
        پاسخ : نمایش دما بر روی سون سگمنت با سنسور ds18b20 در کدویژن

        اگر نتوانستید به جواب برسید، به جزییات پروژه ای برای نمایش دمای ds18b20 روی 7segment که در لینک زیر قرار داده ام مراجعه کنیدو ببینید در کدنویسی چطور عمل شده است. البته پروژه در AtmelStudio نوشته شده اما برنامه به زبان c است و تفاوت چندانی ندارد.
        لینک
        اوژن: به معنای افکننده و شکست دهنده است
        دانایی، توانایی است-Knowledge is POWER
        برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
        وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
        قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
        اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
        ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

        دیدگاه


          #5
          پاسخ : نمایش دما بر روی سون سگمنت با سنسور ds18b20 در کدویژن

          کد:
          [FONT=Yekan]  char seven_seg[20]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x86,0xAF,0x89,0xC6,0xA1,0x87,0xA3,0xAB,0x8B,0x83};[/FONT]  float temp,temp1;
            #define seg3 PORTA.7
            #define seg1 PORTC.7
            #define seg2 PORTC.6 
            //*****************************************
           void show_temp()
             {    
                  
              
                  cun++;
                  
                      if (cun<=1 )
                  {             
                     seg2=1;PORTD=seven_seg[13];
                     temp = ds18b20_temperature(0);
                   }  
                   
                      temp1=temp*10;
                     
                     if(temp1<10){dig1=temp1;dig2=0;dig3=0;}
                     if(temp1>=10){dig1=temp1%10;dig2=temp1/10;dig3=0;}
                     if(temp1>99){dig3=temp1/100;dig2=temp1%100;dig1=dig2%10;dig2=dig2/10;}
                     if(cun<=200)
                     {          
                     seg1=1; PORTD=seven_seg[dig3];delay_ms(2);seg1=0;             
                     seg2=1; PORTD=seven_seg[dig1];PORTD.7=0;delay_ms(2);seg2=0;
                     seg3=1; PORTD=seven_seg[dig2];delay_ms(2);seg3=0;
                      } 
                      if(cun>200)cun=0;
                      }
          از کتابخونه خود میکرو استفاده کن و فرکانس 8 مگا
          اول یه C نمایش میده بعد خود دما با یک رقم اعشار
          ,d.7 را هم به دات سون سگمنت وصل کن
          این اند مشترک برای کاتد مشترک باید کدها را عوض کنی
          جدیدترین ویرایش توسط 1hoshmand; ۲۲:۴۱ ۱۳۹۵/۱۲/۰۶.
          دوربين مدار بسته و دزد گير و رفع مشكلات
          بانك اطلاعاتي سنسورها
          ساخت رقص نور براي شيشه سكوريت مغازه ها
          تعمير لوازم خانگي را اينجا مطرح كنيد
          [move][b] موفقيت بر روي ستون هاي شکست شکل مي گيرد.

          دیدگاه


            #6
            پاسخ : نمایش دما بر روی سون سگمنت با سنسور ds18b20 در کدویژن

            زمانی که شما مقدار دما رو روی سون سگمنت درتایمرها رفرش می کنید،نباید اصلا چشمک بزنه.یعنی یاینکه تاخیر ها تاثیری درچشمک زدن ندازند.
            eshop-hodhod.ir

            دیدگاه

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