قیمت و موجودی قطعات با بررسی کارشناسان به‌روز می‌شود.درخواست تأمین فوری

ماژول سنسور دما آنالوگ

فهرست مطالب سنسور دما آنالوگمشخصات فنی سنسور دما آنالوگپایه های سنسور دما آنالوگدیاگرام اتصالات سنسور دماکدهای آردوینو مربوط به ماژول سنسور دما آنالوگکدهای رزبری پای سنسور دما آنالوگ ماژول سنسور دما آنالوگ KY-013 برای آردوینو ، دمای محیط را

ماژول سنسور دما آنالوگ

سنسور دما آنالوگ

ماژول سنسور دما آنالوگ KY-013 برای آردوینو ، دمای محیط را بر اساس مقاومت ترمیستور اندازه گیری می کند.

مشخصات فنی سنسور دما آنالوگ

ماژول سنسور دما آنالوگ KY-013 از ترمیستور NTC و مقاومت  10KΩتشکیل شده است. مقاومت ترمیستور با دمای اطراف آن متفاوت است، ما از معادله Steinhart-Hart برای استخراج دمای دقیق ترمیستور استفاده خواهیم کرد. مشخصات در جدول زیر آمده است:

نمودار بالا تغییرات مقاومت بر حسب دما را نشان می دهد  که میتوان این نمودار را به صورت  نمودار خطی مدل سازی کرد. با استفاده از نمودار میتوان ضریب دما (نسبت تغییر مقاومت به تغییر دما) را تعیین کرد. با دانستن مقاومت فعلی می توان دمای واقعی را تعیین کرد.

مقدار این مقاومت را می توان از طریق تقسیم ولتاژ، بین یک مقاومت شناخته شده و یک مقاومت ناشناخته (متغیر) مثل شکل زیر تعیین کرد. محاسبه کامل در مثال زیر آورده شده است.

پایه های سنسور دما آنالوگ

اتصال پایه های ماژول در برد Arduino و Raspberry Pi در جدول های زیر آورده شده است:

پایه های ماژول سنسور اثر هال

اتصال پایه های ماژول در برد Arduino و Raspberry Pi در جدول های زیر آورده شده است:

دیاگرام اتصالات سنسور دما

پایه های مختلف ماژول را مطابق جدول بالا و به صورت آنچه در تصویر زیر مشاهده می‌شود به برد آردوینو متصل کنید.

کدهای آردوینو مربوط به ماژول سنسور دما آنالوگ

برنامه نوشته شده در زیر ولتاژ واقعی را از NTC اندازه گیری می کند، دما را محاسبه می کند و نتیجه را برای خروجی سریال به درجه سانتیگراد  تبدیل می کند.

int ThermistorPin = A5;
int Vo;
float R1 = 10000; // value of R1 on board
float logR2, R2, T;
float c1 = 0.001129148, c2 = 0.000234125, c3 = 0.0000000876741; //steinhart-hart coeficients for thermistor

void setup() {
  Serial.begin(9600);
}

void loop() {
  Vo = analogRead(ThermistorPin);
  R2 = R1 * (1023.0 / (float)Vo - 1.0); //calculate resistance on thermistor
  logR2 = log(R2);
  T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2)); // temperature in Kelvin
  T = T - 273.15; //convert Kelvin to Celcius
 // T = (T * 9.0)/ 5.0 + 32.0; //convert Celcius to Farenheit

  Serial.print("Temperature: "); 
  Serial.print(T);
  Serial.println(" C"); 

  delay(500);
}

کدهای رزبری پای

 
# import needed modules
import math, signal, sys, os
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
 
# initialise variables
delayTime = 0.5 # in Sekunden
 
# assigning the ADS1x15 ADC
 
ADS1015 = 0x00  # 12-bit ADC
ADS1115 = 0x01  # 16-bit
 
# choosing the amplifing gain
gain = 4096  # +/- 4.096V
# gain = 2048  # +/- 2.048V
# gain = 1024  # +/- 1.024V
# gain = 512   # +/- 0.512V
# gain = 256   # +/- 0.256V
 
# choosing the sampling rate
# sps = 8    # 8 Samples per second
# sps = 16   # 16 Samples per second
# sps = 32   # 32 Samples per second
sps = 64   # 64 Samples per second
# sps = 128  # 128 Samples per second
# sps = 250  # 250 Samples per second
# sps = 475  # 475 Samples per second
# sps = 860  # 860 Samples per second
 
# assigning the ADC-Channel (1-4)
adc_channel_0 = 0    # Channel 0
adc_channel_1 = 1    # Channel 1
adc_channel_2 = 2    # Channel 2
adc_channel_3 = 3    # Channel 3
 
# initialise ADC (ADS1115)
adc = ADS1x15(ic=ADS1115)
 
# temperature calculation function
def calcTemp(voltage):
        temperature = math.log((10000/voltage)*(3300-voltage))
        temperature = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * temperature * temperature)) * temperature);
        temperature = temperature - 273.15;
        return temperature
 

# Main Loop
# ########
# Reading the values from the input pins and print to console
 
try:
        while True:
                #read voltage-value and calculate temperature
                temp0 = round(calcTemp(adc.readADCSingleEnded(adc_channel_0, gain, sps)), 2)
                temp1 = round(calcTemp(adc.readADCSingleEnded(adc_channel_1, gain, sps)), 2)
                temp2 = round(calcTemp(adc.readADCSingleEnded(adc_channel_2, gain, sps)), 2)
                temp3 = round(calcTemp(adc.readADCSingleEnded(adc_channel_3, gain, sps)), 2)
 
 
                # print to console
                print "Channel 0:", temp0, "C"
                print "Channel 1:", temp1, "C"
                print "Channel 2:", temp2, "C"
                print "Channel 3:", temp3, "C"
                print "---------------------------------------"
 
                sleep(delayTime)


except KeyboardInterrupt:
        GPIO.cleanup()

مطالب مرتبط

ادامهٔ مطالعه در همین موضوع

سلف یا القاگر (Inductor) چیست و چه کاربردهایی دارد؟آموزش
۱ اسفند ۱۴۰۰ 19 دقیقه

سلف یا القاگر (Inductor) چیست و چه کاربردهایی دارد؟

سلف یک وسیله الکتریکی پسیو دو ترمینالی است که با عبور جریان از آن به طور موقت انرژی الکتریکی را به شکل میدان مغناطیسی ذخیره می کند و یکی از اجزای مهم در زمینه الکترونیک و برق است. نام های دیگر آن عبارتند از کویل، القا گر یا سیم پیچ. خاصیت ا

ادامهٔ مطلب
خازن چیست؟ انواع و کاربردهای آنآموزش
۲۴ بهمن ۱۴۰۰ 31 دقیقه

خازن چیست؟ انواع و کاربردهای آن

خازن را با حرف C که ابتدای کلمه Capacitor است نمایش می‌دهند. با توجه به اینکه بار الکتریکی در خازن ذخیره می‌شود، برای ایجاد میدان‌های الکتریکی یکنواخت می‌توان از خازن استفاده کرد. خازنها می‌توانند میدانهای الکتریکی را در حجم‌های کوچک نگه دا

ادامهٔ مطلب