حساس(حس کننده) دما LM75A با LCD1602 I2C

حساس(حس کننده) دما LM75A با LCD1602 I2C

در این آموزش می‌آموزیم چگونه با استفاده از حساس(حس کننده) دمای LM75A و ارتباط I2C، مقادیر دما را به‌صورت هم‌زمان در واحدهای سانتی‌گراد و فارنهایت روی صفحه LCD1602 نمایش دهیم. LM75A می‌تواند دماها را در بازهٔ -55°C تا +125°C اندازه‌گیری کند، که آن را برای کاربردهای گوناگون مناسب می‌سازد. پس از تکمیل تنظیمات، قادر خواهید بود خوانش‌های دما را به‌صورت زمان واقعی روی نمایشگر LCD مشاهده کنید.

LCD1602-I2C display module with 4 wires

برای این پروژه از حساس(حس کننده) LM75A و ماجیول LCD1602 که از طریق I2C متصل می‌شوند استفاده می‌کنیم، که این امر سیم‌کشی را ساده‌تر کرده و تعداد پایه‌های مورد استفاده روی Arduino را کاهش می‌دهد. هدف ایجاد سیستمی است که به‌صورت پیوسته دما را می‌خواند و آن را روی LCD نمایش می‌دهد. اگر در هر قسمت از فرایند به توضیح بیشتری نیاز دارید، حتماً آموزش ویدیویی را ببینید (در ویدیو در 00:00).

شرح سخت‌افزار

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

LCD1602 یک نمایشگر کاراکتری 16x2 است که می‌تواند تا 32 خصیصه را هم‌زمان نمایش دهد. با استفاده از رابط I2C می‌توان آن را تنها با 2 سیم اضافی کنترل کرد که این کار فرآیند سیم‌کشی را به‌طور چشمگیری ساده می‌کند. قابلیت نور پس‌زمینهٔ LCD همچنین می‌تواند در محیط‌های کم‌نور دید بهتری فراهم کند.

جزئیات برگه مشخصات

تولیدکنندهتگزاس اینسترومنتس
شماره قطعهLM75A
ولتاژ منطق/ورودی‌خروجی2.7 V تا 5.5 V
ولتاژ تغذیه2.7 V تا 5.5 V
جریان خروجی (برای هر کانال)مربوط نیست
جریان پیک (برای هر کانال)مربوط نیست
راهنمای فرکانس PWMقابل اعمال نیست
آستانه‌های منطقی ورودی0.3 * Vcc (پایین)، 0.7 * Vcc (بالا)
افت ولتاژ / RDS(روشن)/ اشباعغیرقابل‌اعمال
محدودیت‌های حرارتیدمای کاری: -55°C تا +125°C
بستهSOT-23
یادداشت‌ها / واریانت‌هادر چندین آدرس I2C در دسترس است

  • از منبع تغذیه مناسب (2.7 V تا 5.5 V) اطمینان حاصل کنید.
  • در صورت لزوم از مقاومت‌های pull-up روی خطوط SDA و SCL استفاده کنید.
  • پیکربندی آدرس I2C برای چندین دستگاه را بررسی کنید.
  • برای کاهش تداخل، سیم‌کشی را کوتاه نگه دارید.
  • دامنه دمای مانیتور: -55°C تا +125°C
  • برای اشکال‌زدایی خوانش‌های دما از نمایشگر مسلسل استفاده کنید.
  • حالت‌های خطا را در شِفر (کود) به‌طور مؤثر مدیریت کنید.
  • در مورد نیازهای برق نمایشگر محتاط باشید.

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

Arduino_wiring_LM75A_LCD_bb

برای سیم‌کشی حساس(حس کننده) دمای LM75A و نمایشگر LCD1602، کار را با اتصال منبع تغذیه آغاز کنید. پایه VCC هر دو ماجیول LM75A و LCD1602 را به پایه 5V روی آردوینو متصل کنید. سپس پایه زمین (GND) هر دو ماجیول را به پایه GND آردوینو وصل کنید.

سپس خطوط ارتباطی I2C را متصل کنید. پایه SDA در LM75A باید به پایه A4 روی آردوینو وصل شود، در حالی که پایه SCL باید به پایه A5 متصل شود. این باعث برقراری ارتباط I2C بین حساس(حس کننده) و آردوینو می‌شود. مطمئن شوید اتصالات محکم هستند تا از هرگونه خطای ارتباطی جلوگیری شود.

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

در شِفر (کود)، ابتدا کتابخانه‌های لازم برای حساس(حس کننده) LM75A و نمایشگر LCD1602 را وارد می‌کنیم. قطعهٔ شِفر (کود) زیر نشان می‌دهد چگونه یک نمونه از حساس(حس کننده) LM75A را ایجاد کنیم:

LM75A lm75a_sensor(false, false, false);

این خط شیء حساس(حس کننده) LM75A را مقداردهی اولیه می‌کند. پارامترهای بولی متناظر با پایه‌های A0، A1 و A2 در LM75A هستند و در صورت نیاز امکان استفاده از آدرس‌های مختلف I2C را فراهم می‌کنند.

سپس، نمایشگر مسلسل را تنظیم کرده و نمایشگر LCD را مقداردهی اولیه می‌کنیم:

void setup(void) {
  Serial.begin(9600);
  lcd.begin();  
  lcd.backlight();
  lcd.print("Robojax LM75A");
}

در اینجا ارتباط سریال را با سرعت 9600 baud آغاز می‌کنیم و نمایشگر LCD را مقداردهی اولیه می‌کنیم. نور پس‌زمینه روشن می‌شود و یک پیام اولیه روی صفحه چاپ می‌شود.

در حلقهٔ اصلی، به‌طور مداوم دما را می‌خوانیم و آن را نمایش می‌دهیم:

float temperature_in_degrees = lm75a_sensor.getTemperatureInDegrees();
if (temperature_in_degrees == INVALID_LM75A_TEMPERATURE) {
  Serial.println("Error while getting temperature");
}

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

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

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

تصاویر

LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
LM75a-1
LM75a-1
LM75a-3
LM75a-3
LM75a-12
LM75a-12
Arduino_wiring_LM75A_LCD_bb
Arduino_wiring_LM75A_LCD_bb
129-LM75A temperature sensor with LCD1602 I2C
زبان: C++
کپی شد!

مواردی که ممکن است به آن‌ها نیاز داشته باشید

منابع و مراجع

فایل‌ها📁

فایل Fritzing

سایر فایل‌ها