Мазмуну:

MCP9808 жана Arduino Nano аркылуу температураны көзөмөлдөө: 4 кадам
MCP9808 жана Arduino Nano аркылуу температураны көзөмөлдөө: 4 кадам

Video: MCP9808 жана Arduino Nano аркылуу температураны көзөмөлдөө: 4 кадам

Video: MCP9808 жана Arduino Nano аркылуу температураны көзөмөлдөө: 4 кадам
Video: Lesson 33: Using MCP9808 Temperature Sensor with LCD | Arduino Step By Step Course 2024, Ноябрь
Anonim
Image
Image

MCP9808 абдан так санарип температура сенсору ± 0,5 ° C I2C мини модулу. Алар температураны сезүү колдонмолорун жеңилдетүүчү колдонуучу программалоочу реестрлер менен камтылган. MCP9808 жогорку тактыктагы температура сенсору форма фактору жана интеллектуалдык жактан индустриялык стандартка айланып, санариптик, I2C форматында калибрленген, сызыктуу сенсор сигналдарын берет.

Бул окуу куралында MCP9808 сенсор модулунун arduino нано менен интерфейси көрсөтүлдү. Температуранын маанисин окуу үчүн I2c adapter. This I2C адаптери менен малина пи колдонгонбуз, сенсор модулуна туташууну жеңил жана ишенимдүү кылат.

1 -кадам: Аппараттык камсыздоо талап кылынат:

Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат

Максатыбызга жетүү үчүн бизге керектүү материалдар төмөнкү аппараттык компоненттерди камтыйт:

1. MCP9808

2. Ардуино Нано

3. I2C кабели

4. Arduino нано үчүн I2C Shield

2 -кадам: Аппараттык туташуу:

Аппараттык туташуу
Аппараттык туташуу
Аппараттык туташуу
Аппараттык туташуу

Аппараттык туташуу бөлүмү негизинен сенсор менен arduino нанонун ортосунда талап кылынган зым байланыштарын түшүндүрөт. Туура туташууларды камсыздоо каалаган өндүрүш үчүн кандайдыр бир системада иштеп жатканда негизги зарылчылык болуп саналат. Ошентип, керектүү байланыштар төмөнкүлөр:

MCP9808 I2C үстүндө иштейт. Бул жерде сенсордун ар бир интерфейсин кантип зым менен жабуу керектигин көрсөтүүчү зымдардын схемасы келтирилген.

Кутудан тышкары, такта I2C интерфейси үчүн конфигурацияланган, андыктан эгер сиз агностиксиз болсоңуз, анда бул байланышты колдонууну сунуштайбыз. Сизге болгону төрт зым керек!

Vcc, Gnd, SCL жана SDA төөнөгүчтөрүнө төрт гана туташуу керек жана алар I2C кабелинин жардамы менен туташкан.

Бул байланыштар жогорудагы сүрөттөрдө көрсөтүлгөн.

3 -кадам: Температураны өлчөө коду:

Температураны өлчөө коду
Температураны өлчөө коду

Эми Arduino коду менен баштайлы.

Arduino менен сенсор модулун колдонуп жатып, биз Wire.h китепканасын кошобуз. "Wire" китепканасы сенсор менен Arduino тактасынын ортосундагы i2c байланышын жеңилдетүүчү функцияларды камтыйт.

Колдонуучунун ыңгайлуулугу үчүн бүт Arduino коду төмөндө келтирилген:

#кошуу

// MCP9808 I2C дареги 0x18 (24)

#define Addr 0x18

жараксыз орнотуу ()

{

// I2C байланышын MASTER катары баштаңыз

Wire.begin ();

// Сериялык байланышты баштоо, байдын ылдамдыгын орнотуу = 9600

Serial.begin (9600);

// I2C берүүнү баштоо

Wire.beginTransmission (Addr);

// Конфигурация реестрин тандоо

Wire.write (0x01);

// Үзгүлтүксүз которуу режими, Power-up демейки

Wire.write (0x00);

Wire.write (0x00);

// I2C берүүнү токтотуу

Wire.endTransmission ();

// I2C берүүнү баштоо

Wire.beginTransmission (Addr);

// Чечимдин реестрин тандаңыз

Wire.write (0x08);

// Чечим = +0.0625 / C

Wire.write (0x03);

// I2C берүүнү токтотуу

Wire.endTransmission ();

}

боштук цикл ()

{

кол коюлбаган int маалыматтары [2];

// I2C байланышын баштайт

Wire.beginTransmission (Addr);

// Маалымат реестрин тандоо

Wire.write (0x05);

// I2C өткөрүүнү токтотуу

Wire.endTransmission ();

// 2 байт маалымат сураңыз

Wire.requestFrom (Addr, 2);

// 2 байт маалыматтарды окуңуз

// темп MSB, temp LSB

эгер (Wire.available () == 2)

{

data [0] = Wire.read ();

data [1] = Wire.read ();

}

// Маалыматтарды 13 битке айландырыңыз

int temp = ((маалымат [0] & 0x1F) * 256 + маалымат [1]);

эгер (температурасы> 4095)

{

темп -= 8192;

}

float cTemp = temp * 0.0625;

float fTemp = cTemp * 1.8 + 32;

// Экранга маалыматтарды чыгаруу

Serial.print ("Цельсий боюнча температура:");

Serial.println (cTemp);

Serial.println ("C");

Serial.print ("Фаренгейт температурасы:");

Serial.println (fTemp);

Serial.println ("F");

кечигүү (500);

}

Зымдык китепканада Wire.write () жана Wire.read () командаларды жазуу жана сенсордун чыгышын окуу үчүн колдонулат.

Serial.print () жана Serial.println () Arduino IDE сериялык мониторунда сенсордун чыгарылышын көрсөтүү үчүн колдонулат.

Сенсордун чыгышы жогорудагы сүрөттө көрсөтүлгөн.

4 -кадам: Тиркемелер:

Колдонмолор
Колдонмолор

MCP9808 Санариптик Температура Сенсорунда өнөр жайлык тоңдургучтар жана муздаткычтар, ар кандай тамак -аш процессорлору камтылган, өнөр жай деңгээлиндеги бир нече тиркемелер бар. Бул сенсор ар кандай жеке компьютерлерде, серверлерде жана башка PC перифериялык түзүлүштөрүндө колдонулушу мүмкүн.

Сунушталууда: