آموزش کامل ساخت دماسنج با سنسور LM35 و برد آردوینو را آماده کردیم. در این مطلب ما دماسنج LM35 را راه اندازی میکنیم و در سریال مانیتور دمای محیط را نمایش میدهیم.
مدار دماسنج LM35 با آردوینو
اتصالات مدار بسیار ساده است. شما فقط باید پایه 1 سنسور را به 5 ولت و پایه 3 را به GND آردوینو متصل کنید. در نهایت باید پایه وسط (2) سنسور را به پایه A0 آردوینو متصل کنید. تصویر زیر این اتصالات را نمایش میدهد.
قطعات مورد نیاز
- آردوینو Uno
- سنسور LM35
سنسور LM35
برای درک نحوه برنامه نویسی ابتدا باید نحوه کار سنسور LM35 را بدانیم. مشخصات سنسور در جدول زیر آورده شده است.
ولتاژ تغذیه | 4 V تا 30 V |
جریان مصرفی | 60 µA |
محدوده دما | -55°C تا + 155°C |
دقت | ±0.5°C در +25°C ±1°C از -55°C تا +150°C |
نسبت ولتاژ خروجی | 10 mV/°C |
ولتاژ خروجی در 25 درجه | 250 mV |
گرما | <0.1°C در هوای آزاد |
بسته بندی | 3-pin TO-92 |
همانطور که در جدول بالا نوشته شده است، سنسور LM35 به ازای تغییر هر درجه دما، خروجی را 10 میلی ولت تغییر میدهد. مثلا در دمای 0 درجه، ولتاژ خروجی سنسور 0 است. در دمای 25 درجه، ولتاژ خروجی سنسور 250 میلی ولت است. به همین ترتیب با تغییرات دما ولتاژ خروجی سنسور نیز تغییر میکند.
کد دماسنج برای آردوینو
قسمت اصلی دماسنج با LM35، تبدیل آنالوگ به دیجیتال است. ما باید آنالوگ به دیجیتال را انجام بدهیم و با یک محاسبه ساده دما را بدست می آوریم. اگر در مورد آنالوگ به دیجیتال اطلاعی ندارید، مقاله آنالوگ به دیجیتال آردوینو را بخوانید.
در قسمت void setup ما فقط ارتباط سریال را با نرخ 9600 آغاز میکنیم.
void setup(){ Serial.begin(9600); }
در قسمت void loop در ابتدا تبدیل آنالوگ به دیجیتال را انجام میدهیم. ولتاژ پایه A0 خوانده میشود و به یک عدد بین 0 تا 1023 تبدیل میشود. این عدد در متغیر reading ذخیره میشود.
void loop() { int reading = analogRead(A0); // تبدیل آنالوگ به دیحیتال float voltage = reading * (5000 / 1024.0); // محاسبه ولتاژ float temperature = voltage / 10; // محاسبه دما Serial.print(temperature); // چاپ دما در سریال مانیتور Serial.println(" C"); delay(1000); // تاخیر 1 ثانیه ای }
سپس یک متغیر Float ایجاد میکنیم و عملیات تناسب گیری را انجام میدهیم تا بفهمیم عدد بدست آمده چند ولت است. نتیجه را در متغیر voltage ذخیره میکنیم.
همانطور که گفته شد هر 10 میلی ولت، یک درجه سانتی گراد است، بنابراین ما ولتاژ بدست آمده را تقسیم بر 10 میکنیم تا درجه سانتی گراد را بدست آوردیم. در نهایت دمای بدست آمده را در سریال مانیتور نمایش میدهیم.
void setup() { Serial.begin(9600); } void loop() { int reading = analogRead(A0); float voltage = reading * (5000 / 1024.0); float temperature = voltage / 10; Serial.print(temperature); Serial.println(" C"); delay(1000); }