NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3733 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از 1 به 20 از 30

موضوع: دماسنج با lm335

  1. #1
    کاربر علاقه مند
    تاریخ عضویت
    Oct 2012
    نوشته ها
    27
    تشکر
    21
    تشکر شده 2 بار در 1 پست

    New دماسنج با lm335

    باعرض سلام خدمت دوستان و مهندسان عزيز من ميخواهم بدانم
    lm35 را ميدانم كه به ازاي هر درجه سلسيوس خروجي 10ميلي ولت تغيير ميكند
    اما
    lm335 را نميدانم چگونه كار ميكند كاتالوگش را خواندم چيز زيادي دستگيرم نشد
    اگر امكانش هست يه راهنمايي و توضيحي برايم بدهيد
    با تشكر از مهندسين بزرگوار

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

  3. #2
    کاربر فعال amiray آواتار ها
    تاریخ عضویت
    Jul 2010
    نام
    عباس یکانلو
    نوشته ها
    351
    تشکر
    187
    تشکر شده 360 بار در 187 پست

    پیش فرض

    با سلام چرا تو کاتالوحکش دقیقا نوشته که Output Voltage Temperature +10 mV/°C
    که به ازای هر درجه 10 mv ولتاژش افزایش پیدا میکنه لازم به ذکر است که این برا درجه بندی کلیون مناسب تر هست.

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


  5. #3
    کاربر علاقه مند
    تاریخ عضویت
    Oct 2012
    نوشته ها
    27
    تشکر
    21
    تشکر شده 2 بار در 1 پست

    پیش فرض

    lm35 با lm335 چه فرقي دارد كدام بهتر است

    چگونه مي توان دماهاي منفي را هم نشان داد؟
    نقل قول نوشته اصلی توسط amiray نمایش پست ها
    با سلام چرا تو کاتالوحکش دقیقا نوشته که Output Voltage Temperature +10 mV/°C
    که به ازای هر درجه 10 mv ولتاژش افزایش پیدا میکنه لازم به ذکر است که این برا درجه بندی کلیون مناسب تر هست.
    ویرایش توسط imannejaty : 01-02-2014 در ساعت 15:29

  6. #4
    کاربر فعال amiray آواتار ها
    تاریخ عضویت
    Jul 2010
    نام
    عباس یکانلو
    نوشته ها
    351
    تشکر
    187
    تشکر شده 360 بار در 187 پست

    پیش فرض

    دما منفی رو میتونین با lm35 اندازه بگیرین. و تو دیتا شیت هم گفته که میتونین این جوری استفاده کنین
    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: Untitled.jpg
مشاهده: 60
حجم: 32.5 کیلو بایت
    که زیر عکس توضیحاتش نوشته شده.
    ویرایش توسط amiray : 01-02-2014 در ساعت 16:30

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


  8. #5
    کاربر علاقه مند
    تاریخ عضویت
    Oct 2012
    نوشته ها
    27
    تشکر
    21
    تشکر شده 2 بار در 1 پست

    پیش فرض

    احسن
    خوب تو برنامه نويسي هم بايد تغييري بدهم يا نيازي نيست با استفاده از اين دو شكل كافي است؟
    يه چيز جالب تو شكل دوم به چشم ميخوره 1- مقاومت R1 مقدارش منفي ميشه
    2- اينكه مگه به ازاي هر درجه سلسيوس 10 ميلي ولت تو خروجيش ولتاژ نداره
    پس چطوري تو درجه سلسيوس1500mv ، 150
    و
    (250mv at 250^(cاست ؟



    راستي شما گفتيدlm335
    Output Voltage Temperature +10 mV/°C
    اشتباه نكرديد درجه كلوينه بعد اين سنسور خطيه يا غير خطي مي تونيد درباره اين سنسور هم بيشتر توضيح دهيد ؟
    خيلي ممنون
    نقل قول نوشته اصلی توسط amiray نمایش پست ها
    دما منفی رو میتونین با lm35 اندازه بگیرین. و تو دیتا شیت هم گفته که میتونین این جوری استفاده کنین
    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: Untitled.jpg
مشاهده: 60
حجم: 32.5 کیلو بایت
    که زیر عکس توضیحاتش نوشته شده.
    ویرایش توسط imannejaty : 01-02-2014 در ساعت 17:00

  9. #6
    کاربر فعال amiray آواتار ها
    تاریخ عضویت
    Jul 2010
    نام
    عباس یکانلو
    نوشته ها
    351
    تشکر
    187
    تشکر شده 360 بار در 187 پست

    پیش فرض

    خوب تو برنامه نويسي هم بايد تغييري بدهم يا نيازي نيست با استفاده از اين دو شكل كافي است؟
    شما باید بجای استفاده از یه کانال adc از دو کانال استفاده کنید. یا هم که ولتاژ رو به اندازه اندازه ولتاژ منفی به بالا شیفت بدین بعد مانند حالت عادی بخونیدش.
    يه چيز جالب تو شكل دوم به چشم ميخوره 1- مقاومت R1 مقدارش منفي ميشه
    جالبه ولی فکر کنم اشتباه چاپی شده. تو دیتا شیت!!
    2- اينكه مگه به ازاي هر درجه سلسيوس 10 ميلي ولت تو خروجيش ولتاژ نداره
    پس چطوري تو درجه سلسيوس1500mv ، 150
    و
    (250mv at 250^(cاست ؟
    مشکل اینجاست که تو شکل هم زده که به ازای 25درجه خروجی هست 250mv نه به ازای 250 درجه!

    راستي شما گفتيدlm335
    Output Voltage Temperature +10 mV/°C
    اشتباه نكرديد درجه كلوينه بعد اين سنسور خطيه يا غير خطي مي تونيد درباره اين سنسور هم بيشتر توضيح دهيد ؟
    خيلي ممنون
    درسته ولی 1کلوین با 1درجه سانتی گراد برابر هست و این جمله جمله خود دیتاشیت بود.
    تا جایی که میدونم این سنسور یه سنسور غیر خطی هست. من هم بهاش کار نکردم.
    بازم اگه مشکلی هست در خدمتیم.

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


  11. #7
    کاربر علاقه مند
    تاریخ عضویت
    Oct 2012
    نوشته ها
    27
    تشکر
    21
    تشکر شده 2 بار در 1 پست

    پیش فرض

    خوب برنامه نويسي براي دماهاي منفي lm35 رو اگر ميشه بيشتر توضيح بدهيد ممنون ميشم. متوجه نشدم منظورتان از دو كانال؟ و شيفت يعني چي؟ چرا بايد اينكارها رو انجام بدهيم؟
    نقل قول نوشته اصلی توسط amiray نمایش پست ها
    دما منفی رو میتونین با lm35 اندازه بگیرین. و تو دیتا شیت هم گفته که میتونین این جوری استفاده کنین برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: Untitled.jpg
مشاهده: 60
حجم: 32.5 کیلو بایت که زیر عکس توضیحاتش نوشته شده.
    نقل قول نوشته اصلی توسط amiray نمایش پست ها
    شما باید بجای استفاده از یه کانال adc از دو کانال استفاده کنید. یا هم که ولتاژ رو به اندازه اندازه ولتاژ منفی به بالا شیفت بدین بعد مانند حالت عادی بخونیدش. جالبه ولی فکر کنم اشتباه چاپی شده. تو دیتا شیت!! مشکل اینجاست که تو شکل هم زده که به ازای 25درجه خروجی هست 250mv نه به ازای 250 درجه! درسته ولی 1کلوین با 1درجه سانتی گراد برابر هست و این جمله جمله خود دیتاشیت بود. تا جایی که میدونم این سنسور یه سنسور غیر خطی هست. من هم بهاش کار نکردم. بازم اگه مشکلی هست در خدمتیم.

  12. #8
    کاربر فعال amiray آواتار ها
    تاریخ عضویت
    Jul 2010
    نام
    عباس یکانلو
    نوشته ها
    351
    تشکر
    187
    تشکر شده 360 بار در 187 پست

    پیش فرض

    شما میتونین با یه op-amp ولتاژ خروجیتون رو با یه ولتاژ ثابت جمع کنین به این صورت که: میدونیم ولتاژ خروجی ما یه ولتاژی هست بین -550تا1500 میلی ولت. مشکل ما اینه که چطور ولتاژ منفی رو توسط adc بخونیم.ما میگیم مثلا با op-amp ولتاژ خروجی رو با یک ولتاژ1ولتی جمع کنیم که در این صورت ولتاژ 450 میلی ولت برای دمای 55- هست 1 ولت برای دمای صفر و 2500 هم برای دمای 155 درجه.
    یا هم که میتونین یه ولتمتر بسازین که که اختلاف ولتاژ رو حساب کنه.
    من یه مدار ولتمر قبلا ساخته بودم که براتون قرار میدم.با فایل کدویژنش فقط زحمت تغییرش به عهده خودتونه در ضمن مدار دماسنج رو به همین ولتمتر وصل کردم که یکم در مورد ظریب های برنامه باید تغییرش بدین چون مدار ولتمر برای ولتاژهای بالا بود و برای همین اعداد رو زیاد نشون میده. و باید یکم ضریبش رو تغییر بدین و در عمل هم کالیبره کنین. البته برای دمای منفی باید خودتون علامت- رو تو کد برنامه اضافه کنین.
    فايل هاي پيوست شده فايل هاي پيوست شده
    ویرایش توسط amiray : 01-02-2014 در ساعت 19:49

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


  14. #9
    کاربر فعال amiray آواتار ها
    تاریخ عضویت
    Jul 2010
    نام
    عباس یکانلو
    نوشته ها
    351
    تشکر
    187
    تشکر شده 360 بار در 187 پست

    پیش فرض

    در ضمن بهتر هست از مداری که دوتا دیود داره استفاده کنین. چون نیازی به ایجاد ولتاژ منفی ندارین.

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


  16. #10
    کاربر علاقه مند
    تاریخ عضویت
    Oct 2012
    نوشته ها
    27
    تشکر
    21
    تشکر شده 2 بار در 1 پست

    پیش فرض

    فكر كنم اشتباه كرديد 2500mv ميشه براي دماي150 درجه
    دوست عزيز من اينايي كه گفتي از بعد اپ امپ متوجه نشدم
    اصلا ولت متر و اختلاف ولتاژو براي چي ميخوايم؟
    نقل قول نوشته اصلی توسط amiray نمایش پست ها
    شما میتونین با یه op-amp ولتاژ خروجیتون رو با یه ولتاژ ثابت جمع کنین به این صورت که: میدونیم ولتاژ خروجی ما یه ولتاژی هست بین -550تا1500 میلی ولت. مشکل ما اینه که چطور ولتاژ منفی رو توسط adc بخونیم.ما میگیم مثلا با op-amp ولتاژ خروجی رو با یک ولتاژ1ولتی جمع کنیم که در این صورت ولتاژ 450 میلی ولت برای دمای 55- هست 1 ولت برای دمای صفر و 2500 هم برای دمای 155 درجه.
    یا هم که میتونین یه ولتمتر بسازین که که اختلاف ولتاژ رو حساب کنه.
    من یه مدار ولتمر قبلا ساخته بودم که براتون قرار میدم.با فایل کدویژنش فقط زحمت تغییرش به عهده خودتونه در ضمن مدار دماسنج رو به همین ولتمتر وصل کردم که یکم در مورد ظریب های برنامه باید تغییرش بدین چون مدار ولتمر برای ولتاژهای بالا بود و برای همین اعداد رو زیاد نشون میده. و باید یکم ضریبش رو تغییر بدین و در عمل هم کالیبره کنین. البته برای دمای منفی باید خودتون علامت- رو تو کد برنامه اضافه کنین.
    ویرایش توسط imannejaty : 01-02-2014 در ساعت 23:44

  17. #11
    کاربر علاقه مند
    تاریخ عضویت
    Oct 2012
    نوشته ها
    27
    تشکر
    21
    تشکر شده 2 بار در 1 پست

    پیش فرض

    منظورتون از نيازي نيست چيه؟
    اگر از اين مدار دو ديودي هم استفاده كنم احتياجي داره تو برنامه نويسي به تغييري بدم
    نقل قول نوشته اصلی توسط amiray نمایش پست ها
    در ضمن بهتر هست از مداری که دوتا دیود داره استفاده کنین. چون نیازی به ایجاد ولتاژ منفی ندارین.
    ویرایش توسط imannejaty : 01-02-2014 در ساعت 23:51

  18. #12
    کاربر فعال amiray آواتار ها
    تاریخ عضویت
    Jul 2010
    نام
    عباس یکانلو
    نوشته ها
    351
    تشکر
    187
    تشکر شده 360 بار در 187 پست

    پیش فرض

    باسلام.
    فكر كنم اشتباه كرديد 2500mv ميشه براي دماي150 درجه
    حق با شماست برای 150 درجه هست اشتباه چاپی بود!
    دوست عزيز من اينايي كه گفتي از بعد اپ امپ متوجه نشدم
    دقیقا کجارو بگین تا توضیح بدم.
    اصلا ولت متر و اختلاف ولتاژو براي چي ميخوايم؟
    ببینید تو مدار ما نیاز داریم تا ولتاژ که خروجی مدارمون هست رو بخونیم که بایه دونه adc نمیشه و مجبورین که از دو کانال استفاده کنیم. و در اصل اختلاف ولتاژ رو برای پیدا کردن دما میخوایم. چون به ازای تغییر دما به انداژه 1 درجه ولتاژ به اندازه 10 میلی ولت تغیرر میکنه پس ما باید تغییرات ولتاژ رو بدست بیاوریم.
    منظورتون از نيازي نيست چيه؟
    اگر از اين مدار دو ديودي هم استفاده كنم احتياجي داره تو برنامه نويسي به تغييري بدم
    برنامه نویسی دو مدار فرقی نداره.
    منظورم اینه که تو مدار اول اگه دقت کنید یه ولتاژ+ و یه ولتاژ- داریم که ولتاژ منفی رو باید خودمون تولید کنیم. که این کار رو میشه با یه op-amp تولید کرد.
    اون برنامه و مداری که من بهتون دادم تقریبا 90 درصد کارش درسته و فقط چون من از تقسیم مقاومتی استفاده کرده بودم. باید یه تغییراتی تو ضریب هاش انجام بدین.

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


  20. #13
    کاربر علاقه مند
    تاریخ عضویت
    Oct 2012
    نوشته ها
    27
    تشکر
    21
    تشکر شده 2 بار در 1 پست

    پیش فرض

    چجوري با اپ امپ ولتاژ منفي توليد كنم؟
    از برنامه شما اصلا سر در نياوردم
    ميشه خط به خط توضيح دهيد تا برنامه را خوب بفهمم
    //IN THE NAME OF GOD
    //ostad::Mr.GOLAHMADI
    //abbas yekanlou

    #include <mega8.h>
    #include <stdio.h>
    #include <delay.h>

    // Alphanumeric LCD Module functions
    #include <alcd.h>

    #define ADC_VREF_TYPE 0x40

    // Read the AD conversion result
    unsigned int read_adc(unsigned char adc_input)
    {
    ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
    // Delay needed for the stabilization of the ADC input voltage
    delay_us(10);
    // Start the AD conversion
    ADCSRA|=0x40;
    // Wait for the AD conversion to complete
    while ((ADCSRA & 0x10)==0);
    ADCSRA|=0x10;
    return ADCW;
    }

    // Declare your global variables here

    void main(void)
    {
    long int i,j,x=0,y=0,y1=0,x1=0,k=1,v=0,v1=0;
    char buff[10];
    DDRD=255;
    // ADC initialization
    // ADC Clock frequency: 125/000 kHz
    // ADC Voltage Reference: AVCC pin
    ADMUX=ADC_VREF_TYPE & 0xff;
    ADCSRA=0x86;

    lcd_clear();
    lcd_init(16);
    lcd_putsf("OSTAD::");
    lcd_gotoxy(0,1);
    lcd_putsf(" Dr.GOLAHMADI");
    delay_ms(300);
    lcd_clear();
    lcd_gotoxy(0,0);
    lcd_putsf("ABBAS YEKANLOU");
    delay_ms(220);
    while (1)
    {

    //--------------display------------
    lcd_clear();
    lcd_gotoxy(0,0);
    sprintf(buff,"V=%d",v);
    lcd_puts(buff);
    if(v1<10)
    sprintf(buff,".0%d",v1);
    else
    sprintf(buff,".%d",v1);
    lcd_puts(buff);
    /* //----------flasher---------------

    for(i=1;i<5;i++){
    k*=2;
    PORTD=k;
    delay_ms(3);
    if(k==128)
    k=1;} */
    //--------------end flasher------------
    y=x=0;
    //------------start adc convert----------
    for(i=1;i<=20;i++){
    y+=read_adc(1);
    delay_us(3);
    x+=read_adc(0);
    delay_us(3);}
    //------------start convert adc to voltage----------
    x/=20;
    y/=20;
    if(x>y)
    v=x-y;
    if(y>=x)
    v=y-x;
    v=(278*v)/100;
    v1=v%100;
    v/=50;
    delay_ms(37);



    }
    }

    اينم برنامه
    lm35
    براي 2درجه تا 150 درجه نوشته شده با قرار دادن ان مداري كه 2ديوده ويه مقاومت داره ميكرو دماهاي منفي رو نشون نميده؟
    #include <mega16a.h>
    #include <delay.h>
    #include <stdio.h> //// for using sprintf function
    // Alphanumeric LCD functions
    #include <alcd.h>

    #define ADC_VREF_TYPE 0x00

    // Read the 8 most significant bits
    // of the AD conversion result
    unsigned int read_adc(unsigned char adc_input)
    {
    ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
    // Delay needed for the stabilization of the ADC input voltage
    delay_us(10);
    // Start the AD conversion
    ADCSRA|=0x40;
    // Wait for the AD conversion to complete
    while ((ADCSRA & 0x10)==0);
    ADCSRA|=0x10;
    return ADCW;
    }

    // Declare your global variables here

    void main(void)
    {
    // Declare your local variables here
    int Dama;
    char lcd[16];



    // Port C initialization
    // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
    // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
    PORTC=0x00;
    DDRC=0xFF;


    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    ACSR=0x80;
    SFIOR=0x00;

    // ADC initialization
    // ADC Clock frequency: 1000.000 kHz
    // ADC Voltage Reference: AREF pin
    // ADC Auto Trigger Source: ADC Stopped
    // Only the 8 most significant bits of
    // the AD conversion result are used
    ADMUX=ADC_VREF_TYPE & 0xff;
    ADCSRA=0x83;
    // SPI initialization
    // SPI disabled
    SPCR=0x00;


    // Alphanumeric LCD initialization
    // Connections are specified in the
    // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
    // RS - PORTD Bit 0
    // RD - PORTD Bit 1
    // EN - PORTD Bit 2
    // D4 - PORTD Bit 4
    // D5 - PORTD Bit 5
    // D6 - PORTD Bit 6
    // D7 - PORTD Bit 7
    // Characters/line: 16
    lcd_init(16);
    lcd_clear();
    lcd_putsf("Temp Viewer ");
    delay_ms(20);
    lcd_clear();
    while (1)
    {

    ///// khandane meghdare ADC
    Dama = read_adc(0)*0.49; ///// sakhte nesbate dama

    sprintf(lcd,"dama=%d %f %c",Dama);
    lcd_gotoxy(0,0);
    lcd_puts(lcd);
    delay_ms(5);
    ///// agar dama paeen bood!
    if(Dama<=15){
    PORTC.0=1;
    PORTC.1=0;
    PORTC.2=0;
    lcd_gotoxy(0,1);
    lcd_putsf("COLD ");
    }
    if(Dama>16 && Dama<30){ ///// agar dama normal bood!
    PORTC.0=0;
    PORTC.1=1;
    PORTC.2=0;
    lcd_gotoxy(0,1);
    lcd_putsf("NORMAL");
    }
    if(Dama>30){ ///// agar dama bala bood!
    PORTC.0=0;
    PORTC.1=0;
    PORTC.2=1;
    lcd_gotoxy(0,1);
    lcd_putsf("HOT!!!");
    }
    }
    }
    ویرایش توسط imannejaty : 03-02-2014 در ساعت 00:25

  21. #14
    کاربر علاقه مند
    تاریخ عضویت
    Oct 2012
    نوشته ها
    27
    تشکر
    21
    تشکر شده 2 بار در 1 پست

    پیش فرض

    فايل همون برنامه lm35
    2تا 150 درجه
    فايل هاي پيوست شده فايل هاي پيوست شده

  22. #15
    کاربر فعال amiray آواتار ها
    تاریخ عضویت
    Jul 2010
    نام
    عباس یکانلو
    نوشته ها
    351
    تشکر
    187
    تشکر شده 360 بار در 187 پست

    پیش فرض

    با سلام من برنامه رو خودم تصحیح کردم.New folder (3).rar
    برنامه هم کار سختی رو انجام نمیده فقط ولتاژ دو نقطه رو اندازه گیری میکنه بعد از هم کمش میکنه بعد نمایش میده که دمای منفی هم میشه باهاش نمایش داد. مثل همون برنامه ای که خودتون نوشتید. فقط از دو کانال adcاستفاده شده.
    کد:
    unsigned int read_adc(unsigned char adc_input)
    {
    ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
    delay_us(10);
    ADCSRA|=0x40;
    while ((ADCSRA & 0x10)==0);
    ADCSRA|=0x10;
    return ADCW;
    }
    این کد که برای خودندن مقدار adc هست.
    کد:
     lcd_clear();
        lcd_gotoxy(0,0); 
        sprintf(buff,"V=%d",v);
        lcd_puts(buff);
    این قسمت هم که برای نمایش مقدار دما هست.
    کد:
    for(i=1;i<=15;i++){
         y+=read_adc(1);
         delay_us(3);
         x+=read_adc(0);
         delay_us(3);}
         //------------start convert adc to voltage----------
         x/=15;
         y/=15;
    این قسمت هم 15 بار مقدار هر کانال رو میخونه و با هم جمع میکنه و در نهایت تقسیم بر 15 میکنه یعنی میانگین میگیره.
    کد:
    v=y-x;
         v=v/2;
    این هم که دما رو که اختلاف ولتاژ خوانده شده از دو کانال هست رو از هم کم میکنه و در نهایت نصف میکنه.
    دیگه چیز خاصی نداره.
    ویرایش توسط amiray : 03-02-2014 در ساعت 09:56

  23. کاربران : 2 تشکر کرده اند از شما amiray برای ارسال این پست سودمند:


  24. #16
    کاربر فعال amiray آواتار ها
    تاریخ عضویت
    Jul 2010
    نام
    عباس یکانلو
    نوشته ها
    351
    تشکر
    187
    تشکر شده 360 بار در 187 پست

    پیش فرض

    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: Untitled.png
مشاهده: 35
حجم: 11.4 کیلو بایت
    با این مدار میشه ولتاژ منفی ایجاد کرد.
    برای توضیحات هم به این لینک مراجعه کنید.
    http://www.iranmicro.ir/forum/showthread.php?t=9390
    ولی شما اگه مداری که دوتا دیود داره رو ببندید به این قسمت نیازی ندارید.

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


  26. #17
    کاربر علاقه مند
    تاریخ عضویت
    Oct 2012
    نوشته ها
    27
    تشکر
    21
    تشکر شده 2 بار در 1 پست

    پیش فرض

    بازهم عذر ميخوام كه انقدر سوال ميپرسم.
    {
    15بار مقدار هر کانال رو میخونه و با هم جمع میکنه و در نهایت تقسیم بر 15 میکنه یعنی میانگین میگیره}؟
    چرا؟15بار چرا 2 بار اين كارو نميكنه چرا ميانگين بگيره؟

    {این هم که دما رو که اختلاف ولتاژ خوانده شده از دو کانال هست رو از هم کم میکنه و در نهایت نصف میکنه.}؟
    دما جنس و واحدش يا فارنهايتيت يا سانتي گراد يا كلوين است اگر ولتا‍را نصف كنيم باز جنسش ولت‍اژ است
    راه حل:تناسب 10mv=1^c
    ?( v=^(c
    كه از اين تناسب مقدار دما بدست مياد
    راه خوبيه؟
    vهمان v/2 برنامه نويسي است دربرنامه خودتان
    نميتوانيد تغييري در برنامه من بدهيد كه زمانهاي منفي را نشان دهد(با همان مداري كه دو ديود و يك مقاومت دارد)؟
    راستي چطوري تو پست بالا برنامه رو تو كادر نوشتي؟
    با تشكر از زحمات فراوان شما

    نقل قول نوشته اصلی توسط amiray نمایش پست ها
    با سلام من برنامه رو خودم تصحیح کردم.New folder (3).rar
    برنامه هم کار سختی رو انجام نمیده فقط ولتاژ دو نقطه رو اندازه گیری میکنه بعد از هم کمش میکنه بعد نمایش میده که دمای منفی هم میشه باهاش نمایش داد. مثل همون برنامه ای که خودتون نوشتید. فقط از دو کانال adcاستفاده شده.
    کد:
    unsigned int read_adc(unsigned char adc_input)
    {
    ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
    delay_us(10);
    ADCSRA|=0x40;
    while ((ADCSRA & 0x10)==0);
    ADCSRA|=0x10;
    return ADCW;
    }
    این کد که برای خودندن مقدار adc هست.
    کد:
     lcd_clear();
        lcd_gotoxy(0,0); 
        sprintf(buff,"V=%d",v);
        lcd_puts(buff);
    این قسمت هم که برای نمایش مقدار دما هست.
    کد:
    for(i=1;i<=15;i++){
         y+=read_adc(1);
         delay_us(3);
         x+=read_adc(0);
         delay_us(3);}
         //------------start convert adc to voltage----------
         x/=15;
         y/=15;
    این قسمت هم 15 بار مقدار هر کانال رو میخونه و با هم جمع میکنه و در نهایت تقسیم بر 15 میکنه یعنی میانگین میگیره.
    کد:
    v=y-x;
         v=v/2;
    این هم که دما رو که اختلاف ولتاژ خوانده شده از دو کانال هست رو از هم کم میکنه و در نهایت نصف میکنه.
    دیگه چیز خاصی نداره.
    ویرایش توسط imannejaty : 03-02-2014 در ساعت 16:38

  27. #18
    Banned
    تاریخ عضویت
    Apr 2013
    نام
    صادق علی بخشی
    نوشته ها
    1,148
    تشکر
    1,183
    تشکر شده 1,276 بار در 702 پست

    پیش فرض

    سلام
    من خودم از اون مدار به صورت عملی نتونستم ولتاژ
    منفی بگیرم
    در عوض از آی سی mc34062 استفاده کردم که با ورودی فکر کنم 5 ولت تونستم تا منفی 13 ولت بگیرم که فکر کنم بیشتر هم بتونید بگیرید ولی من امتحان نکردم
    خود ای سی هم بدون افت ولتاژ تا 80 میلی امپر جواب میده برای جریان های بیشتر هم
    میتونید با استفاده از یه ترانزیستور جریان بیشتر بگیرید

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


  29. #19
    کاربر علاقه مند
    تاریخ عضویت
    Oct 2012
    نوشته ها
    27
    تشکر
    21
    تشکر شده 2 بار در 1 پست

    پیش فرض

    شما كه تو پست خودتون گفتيد كه جواب گرفتم بعد الان ميگيد جواب نگرفتم
    قضيه چيه؟
    مداري كه جواب گرفتيد كدام است؟
    نقل قول نوشته اصلی توسط sadeghbakhshi نمایش پست ها
    سلام
    من خودم از اون مدار به صورت عملی نتونستم ولتاژ
    منفی بگیرم
    در عوض از آی سی mc34062 استفاده کردم که با ورودی فکر کنم 5 ولت تونستم تا منفی 13 ولت بگیرم که فکر کنم بیشتر هم بتونید بگیرید ولی من امتحان نکردم
    خود ای سی هم بدون افت ولتاژ تا 80 میلی امپر جواب میده برای جریان های بیشتر هم
    میتونید با استفاده از یه ترانزیستور جریان بیشتر بگیرید

  30. #20
    کاربر فعال amiray آواتار ها
    تاریخ عضویت
    Jul 2010
    نام
    عباس یکانلو
    نوشته ها
    351
    تشکر
    187
    تشکر شده 360 بار در 187 پست

    پیش فرض

    بازهم عذر ميخوام كه انقدر سوال ميپرسم.
    {
    خواهش میکنم.
    15بار مقدار هر کانال رو میخونه و با هم جمع میکنه و در نهایت تقسیم بر 15 میکنه یعنی میانگین میگیره}؟
    چرا؟15بار چرا 2 بار اين كارو نميكنه چرا ميانگين بگيره؟
    در عمل طوری هست که بنا به دلایلی این مقداری که از adc میخونیم ثابت نیست و یکم خطا خواهد داشت. ولی اگه چند بار یه مقدار رو بخونیم و بعد میانگین بگیریم. این مقدار تقریبا ثابت میشه اگه تو عمل تست کنید دقیقا متوجه خواهید شد.

    {این هم که دما رو که اختلاف ولتاژ خوانده شده از دو کانال هست رو از هم کم میکنه و در نهایت نصف میکنه.}؟
    دما جنس و واحدش يا فارنهايتيت يا سانتي گراد يا كلوين است اگر ولتا‍را نصف كنيم باز جنسش ولت‍اژ است
    راه حل:تناسب 10mv=1^c
    ?( v=^(c
    كه از اين تناسب مقدار دما بدست مياد
    راه خوبيه؟
    vهمان v/2 برنامه نويسي است دربرنامه خودتان
    ببینید ما میدونیم 10mv تغییر ولتاژ معدل یک درجه سناتی گراد یا کلوین هست.
    از طرفی میدونیم که
    1024<<5
    10mv<<x
    از این تناسب x میشود 2.048 که از اینجا میفهمیم یک درجه تغییر دما که معادل 10mv هست معال 2.048 واحد تغییر در عدد خوانده شده از adc خواهد بود. پس ما باید عدد adc را تقسیم بر 2.048کنیم که من این عدد رو 2 در نضر گرفته ام البته اگه دقیق حساب کنیم میتونیم در عدد 0.488 ضرب کنیم.
    نميتوانيد تغييري در برنامه من بدهيد كه زمانهاي منفي را نشان دهد(با همان مداري كه دو ديود و يك مقاومت دارد)؟
    برنامه من هم تقریبا برنامه شما هست.
    راستي چطوري تو پست بالا برنامه رو تو كادر نوشتي؟
    اول باید در حالت ویرایشگر پیشرفته برین. بعد تو تولبار بالای همان صفحه ای که توش تایب میکنین روی دگمه code که عکسش یه علامت # هست کلیک کنین البته قبل از این کار باید کد مورد نظر خودتون رو انتخاب کنید.
    ویرایش توسط amiray : 03-02-2014 در ساعت 17:16

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


صفحه 1 از 2 12 آخرینآخرین

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

  1. دماسنج با lm335
    توسط mehrdadgh در انجمن AVR
    پاسخ: 33
    آخرين نوشته: 15-04-2010, 13:26

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

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