نمایش نتایج: از 1 به 10 از 10
Like Tree5 لایک
  • 1 Post By
  • 1 Post By
  • 1 Post By
  • 1 Post By siib
  • 1 Post By siib

موضوع: در خواست راه اندازی دماسنج توسط ntc و اوردینو

Hybrid View

  1. #1
    Senior Member
    تاریخ عضویت
    Nov 2015
    نوشته ها
    229
    کد:
    #include "math.h"
    float R1=1000;
    void setup() {
      // put your setup code here, to run once:
    Serial.begin(9600);
    
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
    float v=analogRead(0);
    float r=R1*1024/v-R1;
    double t=1/(0.000581798+0.000511142*log(r)+(-1.68459E-06)*(pow(log(r),3)))-273.15;
    Serial.print("Temprature : ");
    Serial.print(t);
    Serial.println(" 'C");
    }
    برای استفاده از کد بالا مدارت رو به شکل زیر ببند:
    مقاومت NTC رو از یک سر به 5V آردوینو و از سر دیگه به یه مقاومت 1 کیلو اهم وصل کن ، اون یکی سر مقاومت یک کیلو اهم رو هم به GND آردوینو وصل کن و نهایتا پین analog IN شماره 0 (A0) رو به محل اتصال مقاومت NTC و مقاومت یک کیلو اهم (بینشون) وصل کن،

    اون 273.15 برای تبدیل کلوین به درجه سانتیگراد هست
    ویرایش توسط siib : 06-27-2017 در ساعت 01:38 PM
    لایک کردن

  2. #2
    Member
    تاریخ عضویت
    Aug 2015
    نوشته ها
    55
    نقل قول نوشته اصلی توسط siib نمایش پست ها
    کد:
    #include "math.h"
    float R1=1000;
    void setup() {
      // put your setup code here, to run once:
    Serial.begin(9600);
    
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
    float v=analogRead(0);
    float r=R1*1024/v-R1;
    double t=1/(0.000581798+0.000511142*log(r)+(-1.68459E-06)*(pow(log(r),3)))-273.15;
    Serial.print("Temprature : ");
    Serial.print(t);
    Serial.println(" 'C");
    }
    برای استفاده از کد بالا مدارت رو به شکل زیر ببند:
    مقاومت NTC رو از یک سر به 5V آردوینو و از سر دیگه به یه مقاومت 1 کیلو اهم وصل کن ، اون یکی سر مقاومت یک کیلو اهم رو هم به GND آردوینو وصل کن و نهایتا پین analog IN شماره 0 (A0) رو به محل اتصال مقاومت NTC و مقاومت یک کیلو اهم (بینشون) وصل کن،

    اون 273.15 برای تبدیل کلوین به درجه سانتیگراد هست
    سلام
    عزیز خیلی خیلی ممنونم . وصل کردم داره کار میکنه . البته هنوز نمیدونم دقتش درسته یا نه دارم بررسی میکنم ( تصحیح میکنم با سنسور S18S20 و کدی که برای این نوع دماسنج بود مقایسه کردم . حدودا 4 درجه اختلاف داره )
    فقط یه سئوالی برام هستش اینکه عدد های (0.000581798+0.000511142*log(r)+(-1.68459E-06) اینا رو از کجا آوردید ؟ چون با اعدادیکه توی نرم افزار محاسبه شده بود بر اساس نوع NTC که دارم متفاوته . آیا باید اعدادی که خودم توی برنامه به دست آوردم بگذارم توی برنامه ؟
    مساله بعدی اینکه : در این مدار از یک مقاومت یک کیلو استفاده شده . در کدهای سایتهای دیگه من دیدم مثلا از یک NTC 10 کیلو استفاده شده و به همون مقدار از یک مقاومت 10 کیلو استفاده شده . اینکه نوع TNC که من دارم در 25 درجه داره 500 اهم نشون میده آیا بهتره از یک مقاومت 500 اهم استفاده کنم به جای یک کیلو ؟
    ویرایش توسط hamed-pc : 06-28-2017 در ساعت 10:05 AM

  3. #3
    Senior Member
    تاریخ عضویت
    Nov 2015
    نوشته ها
    229
    خواهش میکنم
    دقت دماسنجت رو تو شرایط واقعی بررسی کن
    اون معادله همون معادله Steinhart-HArt هست و اون اعداد هم پارامترهایی هستن که با سه تا دما-مقاومتی که خودت گفتی حساب شدن ، همون لینک خودت حساب کرد پارامترها رو اما انگار من اشتباه واردشون کردم!

    نه نمیشه نسبت بگیری ، باید حداقل حدود یک کیلو باشه تا به آردوینو فشار نیاد و جریان زیادی ازش نگذره ، رابطه ولتاژ بین دو تا مقاومت و اندازه مقاومت ها رو هم میتونی با یه معادله ساده به دست بیاری ، به گمونم بهش میگن قانون تقسیم ولتاژ!
    کد اصلاح شده (با مقدار پارامتر های صحیح)
    کد:
    #include "math.h"
    float R1=1000;
    void setup() {
      // put your setup code here, to run once:
    Serial.begin(9600);
    
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
    float v=analogRead(0);
    float r=R1*1024/v-R1;
    double t=1/(0.001052366+0.000405863*log(r)+(-9.19218E-07)*(pow(log(r),3)))-273.15;
    Serial.print("Temprature : ");
    Serial.print(t);
    Serial.println(" 'C");
    }
    لایک کردن

  4. #4
    Member
    تاریخ عضویت
    Aug 2015
    نوشته ها
    55
    نقل قول نوشته اصلی توسط siib نمایش پست ها
    خواهش میکنم
    دقت دماسنجت رو تو شرایط واقعی بررسی کن
    اون معادله همون معادله Steinhart-HArt هست و اون اعداد هم پارامترهایی هستن که با سه تا دما-مقاومتی که خودت گفتی حساب شدن ، همون لینک خودت حساب کرد پارامترها رو اما انگار من اشتباه واردشون کردم!

    نه نمیشه نسبت بگیری ، باید حداقل حدود یک کیلو باشه تا به آردوینو فشار نیاد و جریان زیادی ازش نگذره ، رابطه ولتاژ بین دو تا مقاومت و اندازه مقاومت ها رو هم میتونی با یه معادله ساده به دست بیاری ، به گمونم بهش میگن قانون تقسیم ولتاژ!
    کد اصلاح شده (با مقدار پارامتر های صحیح)
    کد:
    #include "math.h"
    float R1=1000;
    void setup() {
      // put your setup code here, to run once:
    Serial.begin(9600);
    
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
    float v=analogRead(0);
    float r=R1*1024/v-R1;
    double t=1/(0.001052366+0.000405863*log(r)+(-9.19218E-07)*(pow(log(r),3)))-273.15;
    Serial.print("Temprature : ");
    Serial.print(t);
    Serial.println(" 'C");
    }
    نقل قول نوشته اصلی توسط siib نمایش پست ها
    خواهش میکنم
    دقت دماسنجت رو تو شرایط واقعی بررسی کن
    اون معادله همون معادله Steinhart-HArt هست و اون اعداد هم پارامترهایی هستن که با سه تا دما-مقاومتی که خودت گفتی حساب شدن ، همون لینک خودت حساب کرد پارامترها رو اما انگار من اشتباه واردشون کردم!

    نه نمیشه نسبت بگیری ، باید حداقل حدود یک کیلو باشه تا به آردوینو فشار نیاد و جریان زیادی ازش نگذره ، رابطه ولتاژ بین دو تا مقاومت و اندازه مقاومت ها رو هم میتونی با یه معادله ساده به دست بیاری ، به گمونم بهش میگن قانون تقسیم ولتاژ!
    کد اصلاح شده (با مقدار پارامتر های صحیح)
    کد:
    #include "math.h"
    float R1=1000;
    void setup() {
      // put your setup code here, to run once:
    Serial.begin(9600);
    
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
    float v=analogRead(0);
    float r=R1*1024/v-R1;
    double t=1/(0.001052366+0.000405863*log(r)+(-9.19218E-07)*(pow(log(r),3)))-273.15;
    Serial.print("Temprature : ");
    Serial.print(t);
    Serial.println(" 'C");
    }
    ممنون
    پس برای مقاومت حتما باید حداقل 1 کیلو باشه . اگر اینطوریه به نظرم بیشترش کنم که کمتر جریان بکشه مثلا 5 کیلو یا 10 کیلو
    برای این کار هم باید از برنامه تقسیم ولتاژ استفاده بشه ؟
    ضمن اینکه این کدیکه جدید گذاشتید را آپلود کردم توی اوردینو باز هم داره متفاوت نشون میده
    البته من با برنامه این سایت استفاده کردم آموزش راه اندازی سنسور دما DS18B20 به برد Arduino آردوینو + سورس برنامه
    با دماسنج DS18S20 دما را 27.69 نشون میده . با برنامه کدیکه فرستادید دما را 25.87 نشان میده
    به نظرتون کجا را باید بررسی کنم ؟

    در ضمن لینکی که برنامه برای تبدیل هستش . مقدار مقاومتهای منو به این اعداد محاسبه میکنه
    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: 44.jpg
مشاهده: 262
حجم: 48.0 کیلو بایت
    شما اون اعدادیکه گذاشتید چطور فرق داره
    (0.001052366+0.000405863*log(r)+(-9.19218E-07) ( لطفا راجع به این خط توضیح بده چطور محاسبه شده ؟ چون با اعداد توی جدول فرق داره )
    اینا چطوری میشه مثلا اون قسمت سوم عدد - 7 چطور بهش اضافه میشه . من نمیفهمم اینجاشو
    ویرایش توسط hamed-pc : 06-28-2017 در ساعت 06:42 PM

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

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

SEO by vBSEO