Mundarija:

MCP9808 va Arduino Nano yordamida haroratni kuzatish: 4 qadam
MCP9808 va Arduino Nano yordamida haroratni kuzatish: 4 qadam

Video: MCP9808 va Arduino Nano yordamida haroratni kuzatish: 4 qadam

Video: MCP9808 va Arduino Nano yordamida haroratni kuzatish: 4 qadam
Video: Lesson 32: MCP9808 High Accuracy I2C Temperature | Arduino Step By Step Course 2024, Noyabr
Anonim
Image
Image

MCP9808 - yuqori aniqlikdagi raqamli harorat sensori ± 0,5 ° C I2C mini moduli. Ular foydalanuvchi tomonidan dasturlashtiriladigan registrlar bilan jihozlangan bo'lib, ular haroratni sezishni osonlashtiradi. MCP9808 yuqori aniqlikdagi harorat sensori raqamli, I2C formatida kalibrlangan, chiziqli sensorlar signallarini ta'minlovchi, form faktor va razvedka nuqtai nazaridan sanoat standartiga aylandi.

Ushbu qo'llanmada MCP9808 sensor modulining arduino nano bilan o'zaro aloqasi ko'rsatilgan. Harorat qiymatlarini o'qish uchun I2c adapterli malina pi ishlatilgan, bu I2C adapteri sensor moduliga ulanishni oson va ishonchli qiladi.

1 -qadam: Uskuna kerak:

Uskunalar talab qilinadi
Uskunalar talab qilinadi
Uskunalar talab qilinadi
Uskunalar talab qilinadi
Uskunalar talab qilinadi
Uskunalar talab qilinadi

Maqsadga erishish uchun bizga kerak bo'lgan materiallar quyidagi apparat komponentlarini o'z ichiga oladi:

1. MCP9808

2. Arduino Nano

3. I2C kabeli

4. Arduino nano uchun I2C qalqoni

2 -qadam: Uskuna ulanishi:

Uskuna ulanishi
Uskuna ulanishi
Uskuna ulanishi
Uskuna ulanishi

Uskuna ulanish bo'limi asosan sensor va arduino nano o'rtasida zarur bo'lgan simi ulanishlarini tushuntiradi. To'g'ri ulanishni ta'minlash har qanday tizimda kerakli chiqish uchun ishlashning asosiy zarurati hisoblanadi. Shunday qilib, kerakli ulanishlar quyidagilar:

MCP9808 I2C orqali ishlaydi. Sensorning har bir interfeysini qanday ulash kerakligini ko'rsatadigan simlar sxemasi.

Qutidan tashqari, taxta I2C interfeysi uchun tuzilgan, shuning uchun agar siz agnostik bo'lsangiz, biz ushbu ulanishni ishlatishni maslahat beramiz. Sizga faqat to'rtta sim kerak!

Vcc, Gnd, SCL va SDA pinlari uchun faqat to'rtta ulanish kerak va ular I2C kabeli yordamida ulangan.

Bu ulanishlar yuqoridagi rasmlarda ko'rsatilgan.

3 -qadam: Haroratni o'lchash kodi:

Haroratni o'lchash kodi
Haroratni o'lchash kodi

Endi Arduino kodidan boshlaylik.

Sensor modulini Arduino bilan ishlatganda, biz Wire.h kutubxonasini o'z ichiga olamiz. "Wire" kutubxonasida sensorlar va Arduino kartalari o'rtasidagi i2c aloqasini osonlashtiradigan funktsiyalar mavjud.

Foydalanuvchining qulayligi uchun butun Arduino kodi quyida keltirilgan:

#qo'shing

// MCP9808 I2C manzili - 0x18 (24)

#aniqlang Addr 0x18

bo'sh o'rnatish ()

{

// I2C aloqasini MASTER sifatida boshlang

Wire.begin ();

// Serial aloqani ishga tushiring, bod tezligi = 9600

Serial.begin (9600);

// I2C uzatishni boshlang

Wire.beginTransmission (Addr);

// Konfiguratsiya registrini tanlang

Wire.write (0x01);

// Uzluksiz konvertatsiya rejimi, Quvvat manbai

Wire.write (0x00);

Wire.write (0x00);

// I2C uzatishni to'xtating

Wire.endTransmission ();

// I2C uzatishni boshlang

Wire.beginTransmission (Addr);

// Ruxsat registrini tanlang

Wire.write (0x08);

// Qarori = +0.0625 / S

Wire.write (0x03);

// I2C uzatishni to'xtating

Wire.endTransmission ();

}

bo'sh halqa ()

{

imzosiz int ma'lumotlari [2];

// I2C aloqasini boshlaydi

Wire.beginTransmission (Addr);

// Ma'lumotlar reestrini tanlang

Wire.write (0x05);

// I2C uzatishni to'xtating

Wire.endTransmission ();

// 2 bayt ma'lumotni so'rang

Wire.requestFrom (Addr, 2);

// 2 bayt ma'lumotni o'qing

// temp MSB, temp LSB

agar (Wire.available () == 2)

{

ma'lumotlar [0] = Wire.read ();

ma'lumotlar [1] = Wire.read ();

}

// Ma'lumotni 13 bitga aylantiring

int temp = ((ma'lumotlar [0] va 0x1F) * 256 + ma'lumotlar [1]);

agar (harorat> 4095)

{

harorat -= 8192;

}

float cTemp = temp * 0.0625;

float fTemp = cTemp * 1.8 + 32;

// Ma'lumotni ekranga chiqarish

Serial.print ("Selsiy bo'yicha harorat:");

Serial.println (cTemp);

Serial.println ("C");

Serial.print ("Farengeytdagi harorat:");

Serial.println (fTemp);

Serial.println ("F");

kechikish (500);

}

Tel kutubxonasida Wire.write () va Wire.read () buyruqlarni yozish va sensor chiqishini o'qish uchun ishlatiladi.

Arduino IDE seriyali monitorida sensorning chiqishini ko'rsatish uchun Serial.print () va Serial.println () ishlatiladi.

Sensorning chiqishi yuqoridagi rasmda ko'rsatilgan.

4 -qadam: Ilovalar:

Ilovalar
Ilovalar

MCP9808 raqamli harorat sensori sanoat darajasidagi bir nechta dasturlarga ega, ular sanoat muzlatgichlari va muzlatgichlarni, shuningdek, turli xil oziq -ovqat protsessorlarini o'z ichiga oladi. Ushbu sensor turli xil shaxsiy kompyuterlar, serverlar va boshqa shaxsiy kompyuterlar uchun ishlatilishi mumkin.

Tavsiya: