Tartalomjegyzék:

Hőmérsékletfigyelés az MCP9808 és az Arduino Nano használatával: 4 lépés
Hőmérsékletfigyelés az MCP9808 és az Arduino Nano használatával: 4 lépés

Videó: Hőmérsékletfigyelés az MCP9808 és az Arduino Nano használatával: 4 lépés

Videó: Hőmérsékletfigyelés az MCP9808 és az Arduino Nano használatával: 4 lépés
Videó: Lesson 33: Using MCP9808 Temperature Sensor with LCD | Arduino Step By Step Course 2024, November
Anonim
Image
Image

Az MCP9808 egy nagyon pontos digitális hőmérséklet -érzékelő ± 0,5 ° C I2C mini modul. Ezeket a felhasználó által programozható regiszterek testesítik meg, amelyek megkönnyítik a hőmérsékletérzékelő alkalmazásokat. Az MCP9808 nagy pontosságú hőmérséklet-érzékelő az iparág szabványává vált az alaktényező és az intelligencia tekintetében, amely kalibrált, linearizált érzékelőjeleket biztosít digitális, I2C formátumban.

Ebben az oktatóanyagban bemutatták az MCP9808 érzékelő modul és az arduino nano interfészét. A hőmérsékletértékek leolvasásához málna pi -t használtunk I2c adapterrel. Ez az I2C adapter megkönnyíti és megbízhatóbbá teszi a kapcsolatot az érzékelőmodullal.

1. lépés: Szükséges hardver:

Szükséges hardver
Szükséges hardver
Szükséges hardver
Szükséges hardver
Szükséges hardver
Szükséges hardver

A célunk eléréséhez szükséges anyagok a következő hardverkomponenseket tartalmazzák:

1. MCP9808

2. Arduino Nano

3. I2C kábel

4. I2C pajzs az Arduino nano számára

2. lépés: Hardver csatlakoztatása:

Hardver csatlakoztatása
Hardver csatlakoztatása
Hardver csatlakoztatása
Hardver csatlakoztatása

A hardvercsatlakozási szakasz alapvetően elmagyarázza az érzékelő és az arduino nano között szükséges vezetékeket. A megfelelő kapcsolatok biztosítása az alapvető szükséglet, amikor bármilyen rendszeren dolgozik a kívánt kimenet érdekében. Tehát a szükséges kapcsolatok a következők:

Az MCP9808 az I2C -n keresztül fog működni. Íme a példa kapcsolási rajz, amely bemutatja, hogyan kell bekötni az érzékelő egyes interfészeit.

A doboz készenlétben I2C interfészre van konfigurálva, ezért javasoljuk, hogy használja ezt a csatlakozást, ha egyébként agnosztikus. Csak négy vezetékre van szüksége!

Csak négy csatlakozóra van szükség Vcc, Gnd, SCL és SDA csapokra, és ezeket I2C kábel segítségével kell csatlakoztatni.

Ezeket az összefüggéseket a fenti képek mutatják be.

3. lépés: A hőmérsékletmérés kódja:

Hőmérsékletmérési kód
Hőmérsékletmérési kód

Kezdjük most az Arduino kóddal.

Miközben az érzékelő modult használja az Arduino -val, a Wire.h könyvtárat is tartalmazza. A "Wire" könyvtár azokat a funkciókat tartalmazza, amelyek megkönnyítik az i2c kommunikációt az érzékelő és az Arduino kártya között.

A teljes Arduino kódot az alábbiakban adjuk meg a felhasználó kényelme érdekében:

#befoglalni

// Az MCP9808 I2C címe 0x18 (24)

#define Addr 0x18

üres beállítás ()

{

// Inicializálja az I2C kommunikációt MASTER -ként

Wire.begin ();

// Inicializálja a soros kommunikációt, állítsa be az átviteli sebességet = 9600

Sorozat.kezdet (9600);

// Indítsa el az I2C átvitelt

Wire.beginTransmission (Addr);

// Válassza ki a konfigurációs regisztert

Wire.write (0x01);

// Folyamatos konverziós mód, alapértelmezett bekapcsolás

Wire.write (0x00);

Wire.write (0x00);

// Állítsa le az I2C átvitelt

Wire.endTransmission ();

// Indítsa el az I2C átvitelt

Wire.beginTransmission (Addr);

// Felbontásregiszter kiválasztása

Wire.write (0x08);

// Felbontás = +0.0625 / C

Wire.write (0x03);

// Állítsa le az I2C átvitelt

Wire.endTransmission ();

}

üres hurok ()

{

előjel nélküli int adatok [2];

// Elindítja az I2C kommunikációt

Wire.beginTransmission (Addr);

// Adatregiszter kiválasztása

Wire.write (0x05);

// Az I2C átvitel leállítása

Wire.endTransmission ();

// 2 bájt adat kérése

Wire.requestFrom (Addr, 2);

// 2 bájt adat olvasása

// temp MSB, temp LSB

ha (Wire.available () == 2)

{

adatok [0] = Wire.read ();

adatok [1] = Wire.read ();

}

// Az adatok konvertálása 13 bitesre

int temp = ((adatok [0] és 0x1F) * 256 + adatok [1]);

ha (hőmérséklet> 4095)

{

hőmérséklet -= 8192;

}

float cTemp = temp * 0,0625;

float fTemp = cTemp * 1,8 + 32;

// Adatok megjelenítése a képernyőn

Serial.print ("Hőmérséklet Celsius -ban:");

Soros.println (cTemp);

Serial.println ("C");

Serial.print ("Hőmérséklet Fahrenheitben:");

Soros.println (fTemp);

Serial.println ("F");

késleltetés (500);

}

A vezetékes könyvtárban a Wire.write () és a Wire.read () parancsokat írják és olvassák le az érzékelő kimenetét.

A Serial.print () és a Serial.println () az érzékelő kimenetének megjelenítésére szolgál az Arduino IDE soros monitorán.

Az érzékelő kimenete a fenti képen látható.

4. lépés: Alkalmazások:

Alkalmazások
Alkalmazások

Az MCP9808 digitális hőmérséklet -érzékelő számos ipari szintű alkalmazással rendelkezik, amelyek ipari fagyasztókat és hűtőszekrényeket, valamint különféle élelmiszer -feldolgozókat tartalmaznak. Ez az érzékelő különféle személyi számítógépekhez, szerverekhez és más PC -perifériákhoz használható.

Ajánlott: