ماژول دما LM75 مدل CJMCU-75 با پروتکل I2C
ماژول دما LM75 مدل CJMCU-75
ماژول دماسنج LM75 یک سنسور دما دیجیتال با دقت بالا و مصرف کم است که از پروتکل ارتباطی I2C استفاده میکند. یکی از ماژولهای LM75 با نام تجاری CJMCU-75 است که شامل یک سنسور دما LM75 و مدارهای مربوط به آن است.این ماژول دارای سرعت بالای انتقال دادهها با استفاده از پروتکل I2C میباشد و دارای دقت 0.5 درجه سانتیگراد است. ولتاژ کاری این ماژول 3.3 ولت است و به راحتی میتوان آن را به میکروکنترلرها و بردهای توسعهی مبتنی بر آردوینو متصل کرد.
این ماژول دارای پینهایی برای اتصال به سیستمهای مختلف است که عبارتند از: پایه VCC و GND برای تغذیه، پایه SCL و SDA برای ارتباط با میکروکنترلر، پایه OS برای تنظیم نقطه تریگر خروجی تحت ولتاژ بر اساس دمای مشخص شده توسط کاربر و پایه GNDA برای اتصال به مرجع زمین.در کتابخانههای مختلف میکروکنترلرها، کدهای آماده برای ارتباط با این ماژول در پروتکل I2C وجود دارد که برای استفاده از آنها، کافی است که کتابخانه مربوطه را به کد برنامهی میکروکنترلر خود اضافه کنید.
ویژگی های ماژول دما LM75
مشخصات فنی ماژول LM75 به شرح زیر است:
- ولتاژ کاری: 3.3 ولت
- پروتکل ارتباطی: I2C
- دقت اندازهگیری دما: 0.5 درجه سانتیگراد
- محدوده دمایی عملکرد: -55 تا +125 درجه سانتیگراد
- پینهای ورودی/خروجی: VCC، GND، SCL، SDA، OS، GNDA
- ابعاد: 15.5 × 11.5 میلیمتر
- مصرف برق کم
- پشتیبانی از تنظیم نقطه تریگر خروجی تحت ولتاژ
- قابلیت استفاده در انواع پروژههای الکترونیکی و رباتیک
بررسی پایه های ماژول LM75
ماژول LM75 شامل پایه های زیر است:
- VCC: پایه تغذیه، ولتاژ کاری این ماژول 3.3 ولت است.
- GND: پایه زمین، برای اتصال به مرجع زمین.
- SCL: پایه ساعت ارتباطی I2C، برای ارتباط با میکروکنترلر.
- SDA: پایه داده ارتباطی I2C، برای ارتباط با میکروکنترلر.
- OS: پایه خروجی تحت ولتاژ، که میتوان آن را برای تنظیم نقطه تریگر خروجی بر اساس دمای مورد نظر توسط کاربر استفاده کرد.
راه اندازی ماژول LM75 با آردوینو
یک کد آردوینو برای استفاده از سنسور دمای LM75 آورده شده است. در این کد، از کتابخانه Wire برای ارتباط با سنسور LM75 از طریق I2C استفاده میشود. ابتدا، نشانگر را به ثبت دما (0x00) تنظیم کرده و سپس دو بایت داده از سنسور درخواست میشود. سپس دو بایت داده به یک عدد صحیح اشاره شده و با تقسیم به ۲۵۶، دمای سنسور را به درجه سلسیوس تبدیل میکنیم. در نهایت، دمای سنسور را در مانیتور سریال چاپ میکنیم و ۱ ثانیه قبل از خواندن مجدد، منتظر میمانیم.
توجه کنید که سنسور LM75 دارای آدرس I2C پیش فرض 0x48 است، اما با اتصال پینهای A0، A1 و A2 به VCC یا GND میتوانید آدرس را به مقدار دیگری تنظیم کنید. اگر آدرس سنسور LM75 خود را تغییر دادهاید، باید ثابت LM75_ADDR را در کد به مقدار جدید تغییر دهید.
#include <Wire.h>
#define LM75_ADDR 0x48
void setup() {
Serial.begin(9600);
Wire.begin();
}
void loop() {
Wire.beginTransmission(LM75_ADDR);
Wire.write(0x00); // set pointer to temperature register
Wire.endTransmission();
Wire.requestFrom(LM75_ADDR, 2); // request two bytes of data
int16_t temp = Wire.read() << 8 | Wire.read(); // combine two bytes into a signed integer
float temperature = temp / 256.0; // convert raw value to temperature in degrees Celsius
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" °C");
delay(1000); // wait for 1 second before reading again
}
راه اندازی ماژول LM75 با میکروپایتون و ESP32
در این کد، از کلاس I2C برای ارتباط با سنسور دمای LM75 از طریق I2C استفاده میکنیم. ابتدا پوینتر را به ثبت دما (0x00) تنظیم کرده و سپس 20 میلیثانیه صبر میکنیم تا تبدیل کامل شود. سپس دو بایت اطلاعات را از سنسور خوانده و آنها را به عدد صحیح امضا دار تبدیل کرده و بر 32 تقسیم میکنیم تا دمای درجه سلسیوس را دریافت کنیم. در نهایت دما را به کنسول چاپ کرده و 1 ثانیه صبر میکنیم قبل از خواندن مجدد.
توجه داشته باشید که آدرس پیشفرض سنسور LM75 0x48 است، اما با اتصال پینهای A0، A1 و A2 به VCC یا GND، میتوان آدرس را به مقدار دیگری تنظیم کرد. اگر آدرس LM75 خود را تغییر دادهاید، باید ثابت LM75_ADDR را در کد مطابق با آدرس جدید تنظیم کنید.
from machine import I2C, Pin
import time
i2c = I2C(0, scl=Pin(22), sda=Pin(21))
LM75_ADDR = 0x48
while True:
i2c.writeto(LM75_ADDR, bytes([0x00])) # set pointer to temperature register
time.sleep_ms(20) # wait for conversion to complete
data = i2c.readfrom(LM75_ADDR, 2) # read two bytes of data
temp = (data[0] << 8 | data[1]) >> 5 # combine two bytes into a signed integer and divide by 32
temperature = temp / 8.0 # convert raw value to temperature in degrees Celsius
print("Temperature: {:.2f} °C".format(temperature))
time.sleep(1) # wait for 1 second before reading again
راه اندازی ماژول LM75 با میکروپایتون و RP2040
مثالی از کد MicroPython برای خواندن دمای سنسور دمای LM75 با استفاده از میکروکنترلر RP2040 است.در این کد، ما از ماژول machine MicroPython برای مقداردهی اولیه باس I2C با پین های SCL و SDA متصل به پین های 1 و 0 به ترتیب استفاده می کنیم.
ما آدرس سنسور LM75 را به 0x48 و آدرس رجیستر دما را به 0x00 تنظیم می کنیم. سپس در یک حلقه بینهایت وارد می شویم و به صورت مداوم داده های دمایی را از سنسور می خوانیم.درون حلقه، ابتدا با استفاده از روش i2c.writeto()، نشانگر را به رجیستر دما تنظیم می کنیم. سپس 20 میلی ثانیه منتظر می مانیم تا تبدیل کامل شود. سپس با استفاده از روش i2c.readfrom()، 2 بایت اطلاعات دما را می خوانیم و آنها را به یک عدد صحیح تبدیل می کنیم.
سپس این مقدار را با تقسیم بر 4.0 به درجه سلسیوس تبدیل می کنیم. در نهایت، دما را به کنسول چاپ می کنیم و 1 ثانیه قبل از خواندن دوباره با استفاده از روش utime.sleep() منتظر می مانیم.لطفا توجه کنید که کد فوق فرض می کند که SCL به GPIO 1 و SDA به GPIO 0 روی RP2040 متصل شده است. اگر از پین های متفاوت استفاده می کنید، از متد سازنده Pin به شکل مورد نیاز برای تنظیمات پین استفاده کنید.
from machine import Pin, I2C
import utime
# I2C bus setup
i2c = I2C(0, scl=Pin(1), sda=Pin(0), freq=400000)
# LM75 sensor address
LM75_ADDR = 0x48
# temperature register address
TEMP_REG_ADDR = 0x00
while True:
# set pointer to temperature register
i2c.writeto(LM75_ADDR, bytes([TEMP_REG_ADDR]))
# wait for conversion to complete
utime.sleep_ms(20)
# read 2 bytes of temperature data
temp_data = i2c.readfrom(LM75_ADDR, 2)
# combine the two bytes and convert to signed integer
temp = int.from_bytes(temp_data, 'big', True) // 32
# convert to temperature in Celsius
temp_c = temp / 4.0
# print temperature to console
print("Temperature: {:.2f} C".format(temp_c))
# wait for 1 second before reading again
utime.sleep(1)
مشخصات
- نوع ماژول
- دماسنج - Thermometer
- ابعاد
- 20x13mm
- ولتاژ مورد نياز
- 2.8V ~ 5.5V
- محدوده دمایی
- -55 ° +125° سانتی گراد
- چاپ مس
- بنفش
- تعداد پایه ها
- 5 پایه
- اقلام همراه محصول
- پین هدر
- ترتیب پایه ها
- مطابق چاپ روی برد
- نوع کانکتور
- پین هدر
- سنسور
- دما
- دقت اندازه گیری
- 2 درجه سانتی گراد برای بازه 25- الی 100+ درجه سانتی گراد و 3 درجه سانی گراد برای بازه 55- الی 125+ درجه سانتی گراد
- پردازنده
- LM75
- سرعت
- HIGH SPEED
- سایر توضیحات
- 11 بیتی ADC
- نوع سنسور
- دما
- نوع مبدل
- پروتکل I2C
این برد یک ترموستات دمایی است. برای درخواست مورد نظرتان قابل استفاده است. ولتاژ AC همان برق 220 است.
امکان راه اندازی چند سنسور DHT با ESP8266 با استفاده از MicroPython وجود دارد. سنسورهای DHT با پروتکل دیجیتال و از طریق پایههای GPIO قابل اتصال به میکروکنترلرها هستند.
برای ساخت یک سیستم کنترل دما با برد میکروکنترلر ESP32، به موارد زیر نیاز دارید:
یک برد میکروکنترلر ESP32
یک سنسور دما مثل DHT DS18B20
یک المان سرد کننده
با استفاده از کتابخانه DHT.h، میتوانید از سنسور دما برای خواندن دمای محیط استفاده کنید. سپس، میتوانید از این دما برای کنترل المان گرمایشی یا سرمایشی استفاده کنید.
در خصوص برنامه نویسی از کتابخانه DHT و در صورت نیاز کتابخانه وای فای برای ارسال دادهها به پلتفرم IoT باید استفاده کنید.