شِفر (کود) آردوینو برای حساس(حس کننده) دمای LM75A

شِفر (کود) آردوینو برای حساس(حس کننده) دمای LM75A

در این آموزش یاد می‌گیریم چگونه از حساس(حس کننده) دمای LM75A همراه با آردوینو برای اندازه‌گیری دما به‌صورت سلسیوس و فارنهایت استفاده کنیم. حساس(حس کننده) LM75A از طریق پروتکل I2C ارتباط برقرار می‌کند که ادغام آن با بردهای آردوینو را آسان می‌سازد. در پایان این آموزش یک راه‌اندازی عملی خواهید داشت که هر ثانیه مقادیر دما را نمایش می‌دهد.

برای بهره‌برداری حداکثری از این آموزش، توصیه می‌کنم ویدیوی مرتبط را که راهنمای بصری در مورد راه‌اندازی و پیاده‌سازی شِفر (کود) ارائه می‌دهد، تماشا کنید (در ویدیو در 20:29).

توضیح سخت‌افزار

حساس(حس کننده) دمای LM75A یک حساس(حس کننده) دیجیتال است که قادر به اندازه‌گیری دمای محیط با دقت بالا می‌باشد. این حساس(حس کننده) از پروتکل ارتباطی I2C استفاده می‌کند و امکان اتصال چندین حساس(حس کننده) به همان باس را فراهم می‌آورد. این حساس(حس کننده) دارای قابلیت خاموش شدن در صورت افزایش بیش از حد دما است که می‌تواند در زمان‌هایی که مورد استفاده قرار نمی‌گیرد به صرفه‌جویی در مصرف انرژی کمک کند.

این حساس(حس کننده) معمولاً یا به‌صورت یک چیپ مستقل یا به‌صورت ماجیول PCB در دسترس است. ماجیول شامل پایه‌های ضروری مانند VCC، GND، SDA و SCL است که برای ارتباط با آردوینو لازم‌اند. هنگام استفاده از این حساس(حس کننده) مهم است که اتصالات به‌درستی برقرار شوند و آدرس I2C صحیح برای ارتباط انتخاب شود.

جزئیات مشخصات فنی

تولیدکنندهان‌ای‌ایکس‌پی / تگزاس اینسترومنتس
شماره قطعهLM75A
ولتاژ منطقی/ورودی-خروجی2.7 V تا 5.5 V
ولتاژ تغذیه2.7 V تا 5.5 V
جریان خروجی (به ازای هر کانال)3 میلی‌آمپر
جریان پیک (به ازای هر کانال)10 mA
راهنمای فرکانس PWMقابل اعمال نیست
آستانه‌های منطقی ورودی0.3 VCC (بالا)، 0.2 VCC (پایین)
افت ولتاژ روی RDS(روشن)/ اشباعحداکثر 0.5 V
محدودیت‌های حرارتی-55 °C تا +125 °C
بستهSOIC-8 / TSSOP
یادداشت‌ها / انواعدر آدرس‌های مختلف I2C موجود است.

  • اطمینان حاصل کنید که آدرس صحیح I2C در شِفر (کود) شما تنظیم شده است.
  • در صورت لزوم از مقاومت‌های pull-up در خطوط SDA و SCL استفاده کنید.
  • حساس(حس کننده) را با ولتاژ پایدار تغذیه کنید (۲٫۷ ولت تا ۵٫۵ ولت).
  • گرم شدن بیش از حد را زیر نظر داشته باشید؛ حساس(حس کننده) می‌تواند تا 125 °C کار کند.
  • حساس(حس کننده) را هنگام نصب با ملایمت جابجا کنید تا آسیب نبیند.

دستورالعمل‌های سیم‌کشی

Arduino_wiring_LM75A_bb

برای سیم‌کشی حساس(حس کننده) دمای LM75A به آردوینو خود، با اتصال پایه زمین (GND) حساس(حس کننده) به پایه زمین آردوینو شروع کنید. سپس پایه VCC حساس(حس کننده) را به پایه 5V روی آردوینو متصل کنید. برای ارتباط I2C، پایه SDA حساس(حس کننده) (معمولاً با رنگ سبز مشخص شده) را به پایه A4 آردوینو و پایه SCL (معمولاً با رنگ آبی مشخص شده) را به پایه A5 متصل کنید. اگر از مدل دیگری از آردوینو استفاده می‌کنید، مطمئن شوید به پایه‌های صحیح I2C متصل می‌شوید؛ برای مثال روی Arduino Mega، SDA به پایه 20 و SCL به پایه 21 متصل می‌شود.

اگر از LM75A به‌صورت تراشهٔ تنها و نه ماجیول استفاده می‌کنید، مطمئن شوید پایه‌های مربوطه را به‌درستی متصل کرده‌اید: پایه اول به A4 (SDA)، پایه دوم به A5 (SCL)، پایه چهارم به زمین (GND) و پایه هشتم به VCC متصل می‌شوند. سایر پایه‌ها را بدون اتصال رها کنید. این تنظیم تضمین می‌کند که حساس(حس کننده) بتواند به‌درستی با آردوینو ارتباط برقرار کند.

نمونه‌های شِفر (کود) و راهنمای گام‌به‌گام

شِفر (کود) زیر حساس(حس کننده) LM75A را مقداردهی اولیه می‌کند و دما را هر ثانیه می‌خواند. شناسهٔ کلیدی در این شِفر (کود) عبارت است ازlm75a_sensor، که نمونه‌ای از کلاس LM75A است. از این نمونه برای دریافت قرائت‌های دما از حساس(حس کننده) استفاده می‌شود.

LM75A lm75a_sensor(false, false, false);

این خط یک نمونه از کلاس LM75A ایجاد می‌کند و پارامترهایی را می‌فرستد که نشان‌دهنده وضعیت پایه‌های A0، A1 و A2 هستند. حالت پیش‌فرض می‌تواند تنظیم شود بهfalseاگر از این پایه‌ها استفاده نشود.

درsetup()در تابع، ارتباط سریال را با نرخ 9600 باود راه‌اندازی می‌کنیم که برای نمایش قرائت‌های دما در نمایشگر مسلسل حیاتی است.

void setup(void) {
  Serial.begin(9600);
  Serial.println("Robojax LM75A Test");
}

این قطعه شِفر (کود) نمایشگر مسلسل را راه‌اندازی می‌کند، به‌طوری‌که می‌توانیم خوانش‌های دما را همان‌طور که هر ثانیه چاپ می‌شوند مشاهده کنیم.

درloop()در تابع، دما را بر حسب درجهٔ سانتی‌گراد دریافت کرده و برای خطاها بررسی می‌کنیم. اگر دما معتبر باشد، آن را همراه با معادل فارنهایت چاپ می‌کنیم.

float temperature_in_degrees = lm75a_sensor.getTemperatureInDegrees();
if (temperature_in_degrees == INVALID_LM75A_TEMPERATURE) {
  Serial.println("Error while getting temperature");
} else {
  Serial.print("Temperature: ");
  Serial.print(temperature_in_degrees);
  Serial.print(" degrees (");
  Serial.print(LM75A::degreesToFahrenheit(temperature_in_degrees));
  Serial.println(" Fahrenheit)");
}

این بخش از شِفر (کود) نشان می‌دهد چگونه خوانش دما را پردازش کرده و آن را هم به درجهٔ سانتی‌گراد و هم به درجهٔ فارنهایت روی نمایشگر مسلسل چاپ می‌کند. همچنین شامل مدیریت خطا برای خوانش‌های نامعتبر است.

برای مشاهدهٔ شِفر (کود) کامل، به بخش بارگذاری در پایین مقاله مراجعه کنید.

نمایش / چه انتظاری باید داشته باشید

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

تصاویر

LM75a-1
LM75a-1
LM75a-3
LM75a-3
LM75a-12
LM75a-12
Arduino_wiring_LM75A_bb
Arduino_wiring_LM75A_bb
127-Arduino code for an LM75A temperature sensor
زبان: C++
کپی شد!

منابع و مراجع

هنوز هیچ منبعی موجود نیست.

فایل‌ها📁

فایل فریزینگ