سنسور های دما و اردینیو

سنسور MAX6675

Mohammad Amin Raznahan Mohammad Amin Raznahan Mohammad Amin Raznahan · 1404/3/18 03:43 ·
راهنمای ماژول ترموکوپل MAX6675

راهنمای کامل ماژول ترموکوپل MAX6675

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

مشخصات کلیدی ماژول (دیتاشیت)

ویژگی (Feature)مقدار (Value)
نوع ترموکوپل سازگارنوع K
محدوده اندازه‌گیری دما0 تا 1024 درجه سانتی‌گراد
دقت تفکیک‌پذیری (Resolution)0.25 درجه سانتی‌گراد
پروتکل ارتباطیSPI (Serial Peripheral Interface)
ولتاژ کاری3.0 ولت تا 5.5 ولت
ویژگی داخلیجبران‌ساز اتصال سرد (Cold-Junction Compensation)

پیش‌نیاز نرم‌افزاری: دانلود و نصب کتابخانه

برای کار با این ماژول به کتابخانه MAX6675 از شرکت Adafruit نیاز دارید. آن را از لینک زیر دانلود و نصب کنید.

راهنمای دانلود و نصب:

  1. وارد لینک بالا شوید. روی دکمه سبز رنگ <> Code کلیک کرده و گزینه Download ZIP را انتخاب کنید.
  2. در نرم‌افزار آردوینو، به منوی Sketch > Include Library > Add .ZIP Library... بروید.
  3. فایل ZIP دانلود شده را انتخاب کرده و روی Open کلیک کنید.

کد تست آردوینو برای MAX6675

کد زیر دما را از ماژول می‌خواند و در سریال مانیتور نمایش می‌دهد. پایه‌های تعریف شده در کد مطابق با ورودی شما هستند.


#include "max6675.h"

// تعریف پایه‌های ارتباطی SPI بر اساس ورودی شما
const int thermoSO = 12; // Data Out (MISO)
const int thermoCS = 10; // Chip Select
const int thermoSCK = 13; // Serial Clock

// ساخت یک نمونه از کلاس کتابخانه با پایه‌های تعریف شده
MAX6675 thermocouple(thermoSCK, thermoCS, thermoSO);

void setup() {
  Serial.begin(9600);
  
  Serial.println("MAX6675 Test");
  
  // یک تاخیر کوتاه برای پایدار شدن ماژول
  delay(500);
}

void loop() {
  Serial.print("Temperature = ");
  Serial.print(thermocouple.readCelsius());
  Serial.println(" C");

  // برای بررسی خطای قطع بودن ترموکوپل می‌توانید از کد زیر هم استفاده کنید
  /*
  if (isnan(thermocouple.readCelsius())) {
    Serial.println("Error: Thermocouple is not connected!");
  } else {
    Serial.print("Temperature = ");
    Serial.print(thermocouple.readCelsius());
    Serial.println(" C");
  }
  */

  delay(1000);
}
        

سنسور DS18B20 بدون کابل

Mohammad Amin Raznahan Mohammad Amin Raznahan Mohammad Amin Raznahan · 1404/3/18 03:39 ·
راهنمای سنسور DS18B20 (نسخه TO-92)

راهنمای کامل سنسور DS18B20 (نسخه بدون کابل TO-92)

این راهنما مخصوص نسخه بدون کابل سنسور DS18B20 است که به شکل یک ترانزیستور (پکیج TO-92) می‌باشد. این سنسور از نظر کارکرد داخلی و کدنویسی هیچ تفاوتی با نسخه کابلی ندارد.

مشخصات کلیدی سنسور (دیتاشیت)

ویژگی (Feature)مقدار (Value)
پروتکل ارتباطی1-Wire (دیجیتال)
ولتاژ کاری3.0 ولت تا 5.5 ولت
محدوده اندازه‌گیری دما55- تا 125+ درجه سانتی‌گراد
دقت±0.5 درجه سانتی‌گراد (در محدوده 10- تا 85+)
دقت تفکیک‌پذیری (Resolution)قابل تنظیم از 9 تا 12 بیت

پیش‌نیاز نرم‌افزاری: دانلود و نصب کتابخانه‌ها

برای کار با این سنسور به دو کتابخانه نیاز دارید. آن‌ها را از لینک‌های رسمی زیر دانلود کرده و به صورت دستی نصب کنید.

راهنمای دانلود و نصب:

  1. وارد هر یک از لینک‌های بالا شوید و در صفحه باز شده، روی بخش **Releases** کلیک کنید.
  2. آخرین نسخه (latest) را با فرمت ZIP. دانلود نمایید.
  3. در نرم‌افزار آردوینو، به منوی Sketch > Include Library > Add .ZIP Library... بروید.
  4. فایل ZIP دانلود شده را انتخاب کنید. این کار را برای هر دو فایل تکرار نمایید.

کد تست آردوینو برای DS18B20

کد زیر برای خواندن دما از سنسور DS18B20 که به پین D2 متصل است، نوشته شده و با نسخه بدون کابل نیز کاملا سازگار است.


#include 
#include 

// پین دیتا روی کیت شما به D2 متصل است
const int ONE_WIRE_BUS_PIN = 2;

OneWire oneWire(ONE_WIRE_BUS_PIN);
DallasTemperature sensors(&oneWire);

void setup(void) {
  Serial.begin(9600);
  Serial.println("DS18B20 (TO-92) Sensor Test");
  sensors.begin();
}

void loop(void) {
  Serial.print("Requesting temperatures...");
  sensors.requestTemperatures(); 
  Serial.println(" DONE");

  float tempC = sensors.getTempCByIndex(0);

  if (tempC == -127.00) {
    Serial.println("Error: Failed to read from sensor! Please check the connection.");
  } else {
    Serial.print("Temperature is: ");
    Serial.print(tempC);
    Serial.println(" C");
  }

  delay(2000);
}
        

سنسور DS18B20 کابلی

Mohammad Amin Raznahan Mohammad Amin Raznahan Mohammad Amin Raznahan · 1404/3/18 03:30 ·
راهنمای سنسور DS18B20 (نسخه کابلی)

راهنمای کامل سنسور DS18B20 (نسخه کابلی)

سنسور DS18B20 یک سنسور دمای دیجیتال با دقت بالا است. نسخه کابلی و ضدآب آن برای اندازه‌گیری دمای مایعات و استفاده در محیط‌های مرطوب بسیار مناسب است.

مشخصات کلیدی سنسور (دیتاشیت)

ویژگی (Feature)مقدار (Value)
پروتکل ارتباطی1-Wire (دیجیتال)
ولتاژ کاری3.0 ولت تا 5.5 ولت
محدوده اندازه‌گیری دما55- تا 125+ درجه سانتی‌گراد
دقت±0.5 درجه سانتی‌گراد (در محدوده 10- تا 85+)
دقت تفکیک‌پذیری (Resolution)قابل تنظیم از 9 تا 12 بیت

پیش‌نیاز نرم‌افزاری: دانلود و نصب کتابخانه‌ها

برای کار با این سنسور به دو کتابخانه نیاز دارید. آن‌ها را از لینک‌های رسمی زیر دانلود کرده و به صورت دستی نصب کنید.

راهنمای دانلود و نصب:

  1. وارد هر یک از لینک‌های بالا شوید و در صفحه باز شده، روی بخش **Releases** کلیک کنید.
  2. آخرین نسخه (latest) را با فرمت ZIP. دانلود نمایید.
  3. در نرم‌افزار آردوینو، به منوی Sketch > Include Library > Add .ZIP Library... بروید.
  4. فایل ZIP دانلود شده را انتخاب کنید. این کار را برای هر دو فایل تکرار نمایید.

کد تست آردوینو برای DS18B20

این کد برای خواندن دما از سنسور DS18B20 که به پین D2 متصل است، نوشته شده است.


#include 
#include 

// پین دیتا روی کیت شما به D2 متصل است
const int ONE_WIRE_BUS_PIN = 2;

OneWire oneWire(ONE_WIRE_BUS_PIN);
DallasTemperature sensors(&oneWire);

void setup(void) {
  Serial.begin(9600);
  Serial.println("DS18B20 (Cabled) Sensor Test");
  sensors.begin();
}

void loop(void) {
  Serial.print("Requesting temperatures...");
  sensors.requestTemperatures(); 
  Serial.println(" DONE");

  float tempC = sensors.getTempCByIndex(0);

  if (tempC == -127.00) {
    Serial.println("Error: Failed to read from sensor! Please check the connection.");
  } else {
    Serial.print("Temperature is: ");
    Serial.print(tempC);
    Serial.println(" C");
  }

  delay(2000);
}
        

سنسور دمای LM35

Mohammad Amin Raznahan Mohammad Amin Raznahan Mohammad Amin Raznahan · 1404/3/18 02:45 ·
راهنمای سنسور دما LM35

راهنمای کامل سنسور دما LM35

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

مشخصات کلیدی سنسور (دیتاشیت)

ویژگی (Feature)مقدار (Value)
ولتاژ کاری4 ولت تا 30 ولت
محدوده اندازه‌گیری دما55- تا 150+ درجه سانتی‌گراد
دقت±0.5 درجه سانتی‌گراد (در دمای 25 درجه)
ضریب خروجی (فاکتور مقیاس)10 میلی‌ولت / درجه سانتی‌گراد (10 mV / °C)
جریان مصرفیکمتر از 60 میکروآمپر (< 60 µA)
نوع خروجیآنالوگ (Analog)

کد تست آردوینو برای LM35

کد زیر دما را از سنسور متصل به پین A0 می‌خواند و نتیجه را در سریال مانیتور نمایش می‌دهد.


// پین آنالوگ برای خواندن مقدار سنسور LM35
const int tempPin = A0;

void setup() {
  // راه‌اندازی ارتباط سریال
  Serial.begin(9600);
}

void loop() {
  // خواندن مقدار خام از سنسور (عددی بین 0 تا 1023)
  int sensorValue = analogRead(tempPin);

  // تبدیل مقدار خوانده شده به ولتاژ (میلی‌ولت)
  float voltage = (sensorValue / 1024.0) * 5000.0;
  
  // تبدیل ولتاژ به دما بر حسب سانتی‌گراد
  float tempCelsius = voltage / 10.0;

  // نمایش دما در سریال مانیتور
  Serial.print("Temperature: ");
  Serial.print(tempCelsius);
  Serial.println(" C");

  delay(1000); 
}