ماژول دما ترموکوپل MAX31855
توجه: عدد نوشته شده روی تراشه MAX31855 است.
ماژول ترموکوپل MAX31855
ماژول دما ترموکوپل MAX31855 یک ماژول سنسور دما است که از ترموکوپل استفاده می کند و برای اندازه گیری دمای بالایی که با دیگر سنسورهای دما سنجی امکان پذیر نیست، مورد استفاده قرار می گیرد. این ماژول دارای خروجی دیجیتال SPI است و به راحتی با میکروکنترلرها و برد های توسعه میکروکنترلرها مانند آردوینو قابل اتصال است.
ترموکوپل MAX31855 برای اندازه گیری دما از پروتکل SPI استفاده می کند و خروجی آن در درجه سانتی گراد است. این ماژول از ترموکوپل های نوع K، J، N، T، S، R و E پشتیبانی می کند و دقت اندازه گیری دمای آن به دلیل داشتن فیلترینگ دیجیتال بالا و عملکرد لیمیتر بازدهی بسیار بالایی دارد. همچنین این ماژول دارای قابلیت اتصال دو ترموکوپل به صورت همزمان می باشد.
ویژگی های ماژول ترموکوپل MAX31855
مشخصات فنی ماژول دما ترموکوپل MAX31855 عبارتند از:
- ولتاژ کاری: 3.0 تا 3.6 ولت
- جریان مصرفی: کمتر از 50 میلی آمپر
- پروتکل ارتباطی: SPI
- تعداد ترموکوپل های قابل اتصال: 2 عدد
- نوع ترموکوپل های قابل پشتیبانی: K، J، N، T، S، R و E
- دمای کاری: -270 تا 1800 درجه سانتیگراد
- دقت اندازه گیری: 0.25 درجه سانتیگراد
- قابلیت تشخیص خطاهای مختلف شامل کوتاه شدن و قطع شدن ترموکوپل، خطای آدرس دهی و خطای عدم توانایی در خواندن داده ها
- قابلیت نصب سطحی (SMD)
- دارای پایه های ورودی و خروجی SPI، خط CS و خروجی تغذیه
- سازگار با بردهای توسعه میکروکنترلرها مانند آردوینو
بررسی پایه های ماژول MAX31855
- VCC: ورودی تغذیه، به محدوده ولتاژ کاری ماژول 3.0 تا 5.5 ولت متصل می شود.
- GND: مربوط به زمین ماژول است و با زمین سیستم متصل می شود.
- SCK: ورودی سیگنال ساعت SPI، که با استفاده از آن داده ها به کنترلر میکروکنترلر ارسال می شوند.
- CS: ورودی کنترل کارت خوان، که با استفاده از آن می توان ارتباط SPI را برقرار کرد.
- DO: خروجی داده های دیجیتالی ماژول است.
- GND: مربوط به زمین ماژول است و با زمین سیستم متصل می شود.
- T-: ورودی ترموکوپل منفی که به یک سیم ترموکوپل متصل می شود.
- T+: ورودی ترموکوپل مثبت که به سیم دیگر ترموکوپل متصل می شود.
راه اندازی ماژول MAX6675 MAX31855 با آردوینو
این کد نمونه Arduino برای خواندن دادههای دمایی از ماژولهای ترموکوپل MAX6675 یا MAX31855 با استفاده از رابط SPI است.این کد از کتابخانه SPI برای ارتباط با ماژولها از طریق رابط SPI استفاده میکند. در این کد، پینهای انتخاب چیپ برای هر ماژول تعریف شده، به عنوان پینهای خروجی مقداردهی اولیه شدهاند و در ابتدا برای غیرفعالسازی ماژولها مقدار بالایی را اختصاص میدهد. در تابع loop()، دادههای دمایی از هر ماژول به صورت ترتیبی با استفاده از تابع SPI.transfer16() و SPI.transfer32() به ترتیب برای MAX6675 و MAX31855 خوانده شده و با استفاده از فرمول تبدیلی ارائه شده در صفحه دادهها به مقادیر دمایی تبدیل میشوند. سپس مقادیر دمایی در مانیتور سریال چاپ میشوند. در نهایت، کد قبل از خواندن دوباره، 1 ثانیه صبر میکند.
#include <SPI.h>
// define the chip select pins for each module
const int CS_MAX6675 = 10;
const int CS_MAX31855 = 9;
void setup() {
// start the SPI communication
SPI.begin();
// initialize the chip select pins
pinMode(CS_MAX6675, OUTPUT);
digitalWrite(CS_MAX6675, HIGH);
pinMode(CS_MAX31855, OUTPUT);
digitalWrite(CS_MAX31855, HIGH);
// initialize the serial communication
Serial.begin(9600);
}
void loop() {
// read temperature from MAX6675
digitalWrite(CS_MAX6675, LOW);
delay(1); // small delay for stability
uint16_t data = SPI.transfer16(0);
digitalWrite(CS_MAX6675, HIGH);
float temp = data * 0.25;
Serial.print("Temperature (MAX6675): ");
Serial.print(temp);
Serial.println(" C");
// read temperature from MAX31855
digitalWrite(CS_MAX31855, LOW);
delay(1); // small delay for stability
uint32_t data32 = SPI.transfer32(0);
digitalWrite(CS_MAX31855, HIGH);
float temp2 = ((data32 >> 18) & 0x3FFF) * 0.25;
Serial.print("Temperature (MAX31855): ");
Serial.print(temp2);
Serial.println(" C");
delay(1000); // wait for 1 second before reading again
}
راه اندازی ماژول MAX6675 MAX31855 با میکروپایتون و ESP32
یک نمونه کد میکروپایتون برای خواندن داده های دما از ماژول های ترموکوپل MAX6675 یا MAX31855 با استفاده از رابط SPI ESP32 آمده است:در این کد، ابتدا پایه های انتخاب چیپ برای هر ماژول را تعریف کرده و رابط SPI را با پارامترهای مورد نظر مقداردهی اولیه می کنیم. سپس دو تابع برای خواندن داده های دما به ترتیب از MAX6675 و MAX31855 تعریف می کنیم. این توابع ماژول را فعال می کنند ، تعداد بایت های مورد نیاز را از رابط SPI می خوانند ، ماژول را غیرفعال می کنند و سپس داده های خام را با استفاده از فرمول تبدیل موجود در برگه داده ها به مقادیر دما تبدیل می کنند.
import machine
import time
# define the chip select pins for each module
cs_max6675 = machine.Pin(5, machine.Pin.OUT)
cs_max31855 = machine.Pin(18, machine.Pin.OUT)
# initialize SPI interface
spi = machine.SPI(1, baudrate=5000000, polarity=0, phase=0)
# function to read temperature data from MAX6675
def read_max6675():
cs_max6675.value(0) # enable the module
spi.read(2) # discard first 2 bytes
data = spi.read(2) # read next 2 bytes
cs_max6675.value(1) # disable the module
temp = ((data[0] << 8) | data[1]) >> 3 # convert raw data to temperature
return temp * 0.25 # apply conversion factor
# function to read temperature data from MAX31855
def read_max31855():
cs_max31855.value(0) # enable the module
data = spi.read(4) # read 4 bytes
cs_max31855.value(1) # disable the module
if data[0] & 0x01: # check for error
return None
else:
temp = ((data[0] << 8) | data[1]) >> 2 # convert raw data to temperature
return temp * 0.25 # apply conversion factor
# main loop
while True:
temp_max6675 = read_max6675()
temp_max31855 = read_max31855()
if temp_max6675 is not None:
print("MAX6675 temperature:", temp_max6675)
راه اندازی ماژول MAX6675 MAX31855 با میکروپایتون و RP2040
نمونه کد میکروپایتون برای خواندن داده های دما از ماژول های ترموکوپل MAX6675 یا MAX31855 با استفاده از رابط SPI RP2040 آمده است:ابتدا، پایه های انتخاب چیپ را برای هر ماژول تعریف کرده و رابط SPI را با پارامترهای مورد نیاز مقداردهی اولیه می کنیم. سپس، یک تابع را برای خواندن داده های دما از MAX6675 یا MAX31855 تعریف می کنیم. این تابع ماژول را فعال می کند، تعداد بایت های مورد نیاز را از رابط SPI می خواند، ماژول را غیرفعال می کند و سپس داده های خام را با استفاده از فرمول تبدیل موجود در برگه داده ها به مقادیر دما تبدیل می کند.
import machine
import time
# Define chip select pins for each module
MAX6675_CS = machine.Pin(15, machine.Pin.OUT)
MAX31855_CS = machine.Pin(14, machine.Pin.OUT)
# Initialize SPI interface with required parameters
spi = machine.SPI(0, baudrate=5000000, polarity=0, phase=0)
# Function to read temperature data from MAX6675 or MAX31855
def read_temp(module, cs_pin):
# Enable chip select pin for the module
cs_pin.value(0)
# Read required number of bytes from SPI interface
if module == 'MAX6675':
raw_data = spi.read(2)
elif module == 'MAX31855':
raw_data = spi.read(4)
# Disable chip select pin for the module
cs_pin.value(1)
# Convert raw data to temperature value using conversion formula
if module == 'MAX6675':
temp = (raw_data[0] << 8 | raw_data[1]) >> 3
temp = temp * 0.25
elif module == 'MAX31855':
temp = (raw_data[0] << 8
مشخصات
- کاربری
- مناسب برای استفاده شخصی
- نوع ماژول
- دماسنج - Thermometer
- ابعاد
- 20x20mm
- ولتاژ مورد نياز
- 3 - 5 ولت DC
- دمای کاری
- - 200 تا + 1350 درجه سانتی گراد
- چاپ مس
- آبی
- پروتکل ارتباطی
- SPI
- دقت اندازه گیری
- ±2°C to ±6°C
- خروجی
- دارای خروجی دیجیتال مستقیم
- پردازنده
- MAX31855
- وضعیت لوازم جانبی
- دارای ترمینال پیچی دو پایه و پین هدر
- سایر توضیحات
- فاقد آمپلی فایر و ADC
- کیفیت LCD
- 14-bit
- سایر قابلیتها
- راه اندازی با تمامی ترموکوپل های سری K
- نوع سنسور
- دما
این برد یک ترموستات دمایی است. برای درخواست مورد نظرتان قابل استفاده است. ولتاژ AC همان برق 220 است.
امکان راه اندازی چند سنسور DHT با ESP8266 با استفاده از MicroPython وجود دارد. سنسورهای DHT با پروتکل دیجیتال و از طریق پایههای GPIO قابل اتصال به میکروکنترلرها هستند.
برای ساخت یک سیستم کنترل دما با برد میکروکنترلر ESP32، به موارد زیر نیاز دارید:
یک برد میکروکنترلر ESP32
یک سنسور دما مثل DHT DS18B20
یک المان سرد کننده
با استفاده از کتابخانه DHT.h، میتوانید از سنسور دما برای خواندن دمای محیط استفاده کنید. سپس، میتوانید از این دما برای کنترل المان گرمایشی یا سرمایشی استفاده کنید.
در خصوص برنامه نویسی از کتابخانه DHT و در صورت نیاز کتابخانه وای فای برای ارسال دادهها به پلتفرم IoT باید استفاده کنید.