🌡️ نمایشگر دما با آردوینو و LCD

یک پروژه‌ی مفید و ساده که چند مهارت را با هم تمرین می‌دهد: خواندن سنسور، تبدیل واحد، و نمایش روی LCD.

کدام سنسور؟

کد با LM35

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);

const int sensor = A0;
const int buzzer = 8;

void setup() {
  lcd.init();
  lcd.backlight();
  pinMode(buzzer, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  int raw = analogRead(sensor);
  float volts = raw * 5.0 / 1023.0;
  float celsius = volts * 100.0;      // ۱۰ میلی‌ولت به ازای هر درجه

  lcd.setCursor(0, 0);
  lcd.print("Dama: ");
  lcd.print(celsius, 1);
  lcd.print(" C   ");

  lcd.setCursor(0, 1);
  if (celsius > 30) {
    lcd.print("Garm ast!    ");
    tone(buzzer, 1000, 200);
  } else if (celsius < 15) {
    lcd.print("Sard ast     ");
  } else {
    lcd.print("Monaseb :)   ");
  }

  Serial.print("dama:");
  Serial.println(celsius);
  delay(1000);
}

چرا فاصله‌های اضافه بعد از متن؟

LCD متن قبلی را پاک نمی‌کند. اگر «Monaseb :)» روی «Garm ast!» بیفتد، باقی‌مانده‌ی حروف قبلی می‌ماند. چند فاصله‌ی اضافه آن‌ها را پاک می‌کند — خیلی بهتر از lcd.clear() که کل صفحه را می‌پراند و باعث سوسو می‌شود.

چرا با فرمت name:value چاپ می‌کنیم؟

چون آن‌وقت می‌توانی به‌جای ستون اعداد، نمودار دما را در طول زمان ببینی — برای فهمیدن رفتار سنسور خیلی گویاتر است.

قدم بعدی

یک فن کوچک با ترانزیستور اضافه کن که وقتی دما از ۳۰ گذشت روشن شود — و پروژه‌ات از «نمایشگر» به «کنترل‌کننده» ارتقا پیدا می‌کند.

نمایشگر دما را بساز 🌡️

مقاله‌های دیگر

🤖

آردوینو چیست؟ راهنمای کامل برای شروع از صفر

بهترین شبیه‌ساز مدار آنلاین فارسی — چرا شبیه‌ساز، و چرا روبومیکر؟

💡

ساده‌ترین پروژه الکترونیک برای بچه‌ها: روشن‌کردن یک LED