خانه » دانشنامه‌ها » دانشنامه آردوینو » راه اندازی سنسور دمای LM35 از طریق آردوینو
  1. خانه
  2. »
  3. دانشنامه‌ها
  4. »
  5. دانشنامه آردوینو
  6. »
  7. راه اندازی سنسور دمای LM35 از طریق آردوینو

راه اندازی سنسور دمای LM35 از طریق آردوینو

بازدید: 1207

سنسورها

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

سنسور دما

LM35DZ یک سنسور دمای دقیق با گستره دمای کاری 0  تا 100 درجه سانتی‌گراد می باشد که به ازای یک  درجه سانتی‌گراد تغییر دما، 10میلی‌ولت ولتاژ خروجی را تغییر می دهد. حداکثر ولتاژ خروجی سنسور LM35DZ میلی‌ولت 100×10یا 1 ولت است. مبدل آنالوگ به دیجیتال (ADC) در آردوینو  ولتاژ خوانده شده از سنسور را به مقدار دیجیتالی بین 0 تا 1023 تبدیل می‌کند. حداکثر ولتاژ اندازه گیری ADC در آردوینو بصورت پیش فرض 5 ولت (معادل با مقدار 1023) می باشد، بنابراین مقدار ولتاژ خروجی آنالوگ سنسور 0 تا 205 (= 1023/5) است. اگر حداکثر ولتاژ اندازه گیری ADC را بجای 5 ولت روی 1.1 ولت تنظیم کنیم، گستره آنالوگ ولتاژ خروجی سنسور  0 تا 930 (=1023/1.1) می شود، و دقت سنسور دما افزایش می یابد. به عنوان مثال، با 1 درجه سانتی گراد افزایش دما و تنظیم حداکثر ولتاژ اندازه گیری ADC در مقدار پیش فرض 5 ولت مقدار از سنسور خوانده می شود اما در صورت تنظیم حداکثر ولتاژ  اندازه گیری ADC  در 1.1 ولت  این مقدار به 9 افزایش می یابد. ولتاژ اندازه گیری ADC آردوینو با دستور analog Reference(INTERNAL) از 5 به 1.1 ولت کاهش می‌یابد.

آردوینو 3 مقدار مرجع آنالوگ دارد:

  •  با دستور analogReference(DEFUALT)  ولتاژ  5  ولت  معادل 1023= 1- 210 می شود. 
  • با دستور analogReference(INTERNAL)  ولتاژ  1.1  ولت معادل  1023 می شود. 
  • با دستور analogReference(EXTERNAL)  ولتاژ  3.3 ولت  هنگامی‌که پایه 3.3 به پایه AREF  متصل شده معادل  1023 می شود.

با تنظیم ولتاژ مرجع ADC در 1.1 ولت،  مقدار خوانده شده از سنسور دما برای تبدیل به میلی ولت ضرب در 1100/1023 و برای تبدیل به درجه سانتی گراد  تقسیم بر 10 می شود. همانند شکل 1، اتصال سنسور دمای LM35DZ به برد آردوینو باید به گونه ای باشد که سمت راست سطح صاف آن به 5 ولت متصل شده؛ در غیر این صورت، سنسور  LM35DZ به سرعت بیش از حد گرم می شود. پایه خروجی سنسور دما را به یکی از شش پایه آنالوگ آردوینو، که با A0 تا A5 مشخص شده‌اند، متصل می کنیم. جدول 1 را مشاهده کنید

جدول 1. اتصال های سنسور دما

آردوینو

سنسور

Arduino GND

LM35DZ  GND       

Arduino  A0

                           LM35DZ   OUT                                  

Arduino  5V

                    LM35DZ   VCC                           

برد بورد
شکل 1. اتصال سنسور دما به برد آردوینو UNO
پایه های LM35
شکل 2. پایه های LM35

مقدار دمای خوانده شده از LM35DZ با استفاده از پلاتر سریال Arduino IDE از بخش Tools زیر بخش Serial Plotter بصورت گرافیکی نمایش داده شده است. سرعت ارتباط بین آردوینو و پلاتر سریال را روی 9600  بایت بر ثانیه تنظیم کردیم (شکل 3 را مشاهده کنید). پلاتر سریال دائما مقادیر حداقل و  حداکثر محور Y  را به روز رسانی می‌کند. برای جلوگیری از به روز رسانی، مقادیر min و max تعریف شده و سپس با مقدار خوانده شده از سنسور در یک رشته با سه متغیر- max، مقدار سنسور (temp)، و min ادغام و بطور همزمان رسم می‌شوند.

نمودار تغییرات دما از پلاتر سریال
شکل 3.نمودار تغییرات دما از پلاتر سریال

 

 

دستورات سنسور دما

				
					
float temp;                              //define temp as a real number
int min=20;                             //define minimum plot value
int max=30;                             //define maximum plot value
int reading;                           // define reading as an integer

 () void setup
 {
  Serial.begin(9600);                 // define serial outpur baud rate 
  analogReference(INTERNAL);          // Set ADC voltage to 1.1 rather than 5v         
}
 () void loop
 {
     reading=analogRead(A0);      //read temperature sensor pin
     temp= (reading*110.0)/1023;     // convert reading to temperature
     String axis = String(min) +" "+ String(temp) +" "+ String(max);  // convert minimum, temperature and maximum to a string
     Serial.println(axis);             // update plot
     delay(500); // delay 10ms between readings
}
				
			

دستور temp= (reading*110.0)/1023 زمانی‌که مقدار خوانده‌شده از سنسور مقداری حقیقی باشد، عددی حقیقی را برای temp برمی‌گرداند. اگر تمام اعداد در محاسبه صحیح باشند، مقداری صحیح برگردانده می‌شود اگرچه‌ temp عددی حقیقی تعریف شده باشد. برای مثال، مقدار خوانده‌شده (reading) 500 با دستورهای temp = (reading * 110.0)/1023 و temp = (reading * 110)/1023  به‌ترتیب مقادیر 53.76  و 53  را برای temp برمی‌گرداند.

نظرتان را درباره این مقاله بگویید 11 نظر

راه اندازی سنسور دمای LM35 از طریق آردوینو

با ثبت نظر و نوشتن کامنت، تیم ما را در راستای بهبود و افزایش کیفیت محتوا یاری خواهید کرد :)

فهرست مطالب

مقالات مرتبط

بروزترین مقالات

این مقاله را با دوستانتان به اشتراک بگذارید!

راه اندازی سنسور دمای LM35 از طریق آردوینو

فهرست مطالب

سنسورها

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

سنسور دما

LM35DZ یک سنسور دمای دقیق با گستره دمای کاری 0  تا 100 درجه سانتی‌گراد می باشد که به ازای یک  درجه سانتی‌گراد تغییر دما، 10میلی‌ولت ولتاژ خروجی را تغییر می دهد. حداکثر ولتاژ خروجی سنسور LM35DZ میلی‌ولت 100×10یا 1 ولت است. مبدل آنالوگ به دیجیتال (ADC) در آردوینو  ولتاژ خوانده شده از سنسور را به مقدار دیجیتالی بین 0 تا 1023 تبدیل می‌کند. حداکثر ولتاژ اندازه گیری ADC در آردوینو بصورت پیش فرض 5 ولت (معادل با مقدار 1023) می باشد، بنابراین مقدار ولتاژ خروجی آنالوگ سنسور 0 تا 205 (= 1023/5) است. اگر حداکثر ولتاژ اندازه گیری ADC را بجای 5 ولت روی 1.1 ولت تنظیم کنیم، گستره آنالوگ ولتاژ خروجی سنسور  0 تا 930 (=1023/1.1) می شود، و دقت سنسور دما افزایش می یابد. به عنوان مثال، با 1 درجه سانتی گراد افزایش دما و تنظیم حداکثر ولتاژ اندازه گیری ADC در مقدار پیش فرض 5 ولت مقدار از سنسور خوانده می شود اما در صورت تنظیم حداکثر ولتاژ  اندازه گیری ADC  در 1.1 ولت  این مقدار به 9 افزایش می یابد. ولتاژ اندازه گیری ADC آردوینو با دستور analog Reference(INTERNAL) از 5 به 1.1 ولت کاهش می‌یابد.

آردوینو 3 مقدار مرجع آنالوگ دارد:

  •  با دستور analogReference(DEFUALT)  ولتاژ  5  ولت  معادل 1023= 1- 210 می شود. 
  • با دستور analogReference(INTERNAL)  ولتاژ  1.1  ولت معادل  1023 می شود. 
  • با دستور analogReference(EXTERNAL)  ولتاژ  3.3 ولت  هنگامی‌که پایه 3.3 به پایه AREF  متصل شده معادل  1023 می شود.

با تنظیم ولتاژ مرجع ADC در 1.1 ولت،  مقدار خوانده شده از سنسور دما برای تبدیل به میلی ولت ضرب در 1100/1023 و برای تبدیل به درجه سانتی گراد  تقسیم بر 10 می شود. همانند شکل 1، اتصال سنسور دمای LM35DZ به برد آردوینو باید به گونه ای باشد که سمت راست سطح صاف آن به 5 ولت متصل شده؛ در غیر این صورت، سنسور  LM35DZ به سرعت بیش از حد گرم می شود. پایه خروجی سنسور دما را به یکی از شش پایه آنالوگ آردوینو، که با A0 تا A5 مشخص شده‌اند، متصل می کنیم. جدول 1 را مشاهده کنید

جدول 1. اتصال های سنسور دما

آردوینو

سنسور

Arduino GND

LM35DZ  GND       

Arduino  A0

                           LM35DZ   OUT                                  

Arduino  5V

                    LM35DZ   VCC                           

برد بورد
شکل 1. اتصال سنسور دما به برد آردوینو UNO
پایه های LM35
شکل 2. پایه های LM35

مقدار دمای خوانده شده از LM35DZ با استفاده از پلاتر سریال Arduino IDE از بخش Tools زیر بخش Serial Plotter بصورت گرافیکی نمایش داده شده است. سرعت ارتباط بین آردوینو و پلاتر سریال را روی 9600  بایت بر ثانیه تنظیم کردیم (شکل 3 را مشاهده کنید). پلاتر سریال دائما مقادیر حداقل و  حداکثر محور Y  را به روز رسانی می‌کند. برای جلوگیری از به روز رسانی، مقادیر min و max تعریف شده و سپس با مقدار خوانده شده از سنسور در یک رشته با سه متغیر- max، مقدار سنسور (temp)، و min ادغام و بطور همزمان رسم می‌شوند.

نمودار تغییرات دما از پلاتر سریال
شکل 3.نمودار تغییرات دما از پلاتر سریال

 

 

دستورات سنسور دما

				
					
float temp;                              //define temp as a real number
int min=20;                             //define minimum plot value
int max=30;                             //define maximum plot value
int reading;                           // define reading as an integer

 () void setup
 {
  Serial.begin(9600);                 // define serial outpur baud rate 
  analogReference(INTERNAL);          // Set ADC voltage to 1.1 rather than 5v         
}
 () void loop
 {
     reading=analogRead(A0);      //read temperature sensor pin
     temp= (reading*110.0)/1023;     // convert reading to temperature
     String axis = String(min) +" "+ String(temp) +" "+ String(max);  // convert minimum, temperature and maximum to a string
     Serial.println(axis);             // update plot
     delay(500); // delay 10ms between readings
}
				
			

دستور temp= (reading*110.0)/1023 زمانی‌که مقدار خوانده‌شده از سنسور مقداری حقیقی باشد، عددی حقیقی را برای temp برمی‌گرداند. اگر تمام اعداد در محاسبه صحیح باشند، مقداری صحیح برگردانده می‌شود اگرچه‌ temp عددی حقیقی تعریف شده باشد. برای مثال، مقدار خوانده‌شده (reading) 500 با دستورهای temp = (reading * 110.0)/1023 و temp = (reading * 110)/1023  به‌ترتیب مقادیر 53.76  و 53  را برای temp برمی‌گرداند.

نظرتان را درباره این مقاله بگویید 11 نظر

راه اندازی سنسور دمای LM35 از طریق آردوینو

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

فروشگاه