فهرست مطالب
ماژول سنسور دما
سنسور دما دیجیتال KY-028 برای آردوینو، تغییرات دما را بر اساس مقاومت ترمیستور اندازه گیری می کند. این ماژول دارای دو خروجی دیجیتال و آنالوگ است ویک پتانسیومتر برای تنظیم آستانه تشخیص در رابط دیجیتال وجود دارد.
مشخصات فنی ماژول ترمیستور
ماژول KY-028 شامل یک ترمیستور NTC ، یک مقایسه گر دیفرانسیل LM393 دوتایی ، پتانسیومتر 3296W ، شش مقاومت و دو ال ای دی نشانگر است. این برد دارای یک خروجی آنالوگ و یک خروجی دیجیتال است.
دامنه اندازه گیری دما: -55 تا 125 درجه سانتیگراد است و شامل ترمیستور NTC ااست که مقاومت آن با افزایش درجه حرارت کاهش می یابد
خروجی دیجیتال: اندازه گیری دمایی که بالاتر از حد مجاز باشد، در اینجا نشان داده می شود و می توانید مقدار را از طریق پتانسیومتر تنظیم کنید.
خروجی آنالوگ: اندازه گیری مستقیم توسط واحد سنسور
LED1: نشان می دهد سنسور تغذیه را دریافت کرده است.
LED2: نشان می دهد که یک میدان مغناطیسی تشخیص داده شده است.
عملکرد سنسور دما
این سنسور در صفحه مدار خود دارای 3 مؤلفه اصلی است. ابتدا واحد سنسور در قسمت جلویی یک سیگنال آنالوگ را به واحد دوم، یعنی تقویت کننده می فرستد. آمپلی فایر با توجه به مقدار مقاومت پتانسیومتر، سیگنال را تقویت می کند و سیگنال را به خروجی آنالوگ ماژول می فرستد. مؤلفه سوم مقایسه گری است که اگر سیگنال تحت یک مقدار خاص قرار گیرد، خروجی دیجیتال و LED را خاموش می کند. (با تنظیم پتانسیومتر می توانید حساسیت را کنترل کنید).
توجه کنید که این سنسور مقادیر مطلق را نشان نمی دهد در واقع این اندازه گیری یک اندازه گیری نسبی است: برای مثال شما یک مقدار را برای یک وضعیت محیطی عادی تعیین می کنید و اگر اندازه گیری بیش از مقدار مشخص شده باشد، سیگنال ارسال می شود. مشخصات در جدول زیر امده است :
پایه های ماژول سنسور دما
اتصال پایه های ماژول در برد Arduino و Raspberry Pi در جدول های زیر آورده شده است:
دیاگرام اتصالات ترمیستور
پایه های مختلف ماژول را مطابق جدول بالا و به صورت آنچه در تصویر زیر مشاهده میشود به برد آردوینو متصل کنید.
کدهای آردوینو
براساس کد زیر با رسیدن دما به مقدار آستانه، رابط دیجیتال یک سیگنال HIGH را ارسال می کند و LED (پین 13) را در آردوینو روشن می کند
برای افزایش آستانه تشخیص، پتانسیومتر را در جهت ساعتگرد و برای کاهش آستانه تشخیص، پتانسیومتر را در جهت پاد ساعتگرد بچرخانید.
int led = 13; // define the LED pin int digitalPin = 3; // KY-028 digital interface int analogPin = A0; // KY-028 analog interface int digitalVal; // digital readings int analogVal; //analog readings void setup() { pinMode(led, OUTPUT); pinMode(digitalPin, INPUT); //pinMode(analogPin, OUTPUT); Serial.begin(9600); } void loop() { // Read the digital interface digitalVal = digitalRead(digitalPin); if(digitalVal == HIGH) // if temperature threshold reached { digitalWrite(led, HIGH); // turn ON Arduino's LED } else { digitalWrite(led, LOW); // turn OFF Arduino's LED } // Read the analog interface analogVal = analogRead(analogPin); Serial.println(analogVal); // print analog value to serial delay(100); }
کدهای رسپبری پای
Raspberry PI برخلاف آردوینو، مبدل آنالوگ به دیجیتال (ADC) را در تراشه خود ارائه نمی دهد. بنابراین اگر از سنسور غیر دیجیتال استفاده کنید، Raspbery Pi محدود می شود. برای اجتناب از این موضوع از ماژول هایی که یک ADC 16 بیتی را ایجاد می کنند مانند ماژول KY-53 استفاده می کنیم تا آن را با 4 پین ورودی آنالوگ اضافی ارتقا دهیم.
ماژول KY-035 از طریق I2C به Raspberry Pi متصل می شود. داده های آنالوگ را اندازه گیری کرده و آن را به یک سیگنال دیجیتال مناسب برای Raspberry Pi تبدیل می کند. بنابراین اگر می خواهید از سنسورهای آنالوگ به همراه Raspberry Pi استفاده کنید، از KY-053 ADC استفاده کنید. اتصال پایه های ماژول در برد Raspberry Pi در جدول های زیر آورده شده است:
# This code is using the ADS1115 and the I2C Python Library for Raspberry Pi # 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) # Input pin for the digital signal will be picked here Digital_PIN = 24 GPIO.setup(Digital_PIN, GPIO.IN, pull_up_down = GPIO.PUD_OFF) # main program loop # The program reads the current value of the input pin # and shows it at the terminal try: while True: #Current values will be recorded analog = adc.readADCSingleEnded(adc_channel_0, gain, sps) # Output at the terminal if GPIO.input(Digital_PIN) == False: print "Analog voltage value:", analog,"mV, ","extreme value: not reached" else: print "Analog voltage value:", analog, "mV, ", "extreme value: reached" print "---------------------------------------" sleep(delayTime) except KeyboardInterrupt: GPIO.cleanup()
ویدیو نحوه ارتباطات و اتصالات مدار و راه اندازی آن
ما در این ویدیو به شما نحوه ارتباط و اتصال پایه های ماژول سنسور دما (ترمیستور) با دیسکاوری بورد Arduino UNO را نمایش می دهیم.