Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
MCP9808 je vysoko presný digitálny snímač teploty I2C ± 0,5 ° C. Sú vybavené užívateľsky programovateľnými registrami, ktoré uľahčujú aplikácie snímania teploty. Vysoko presný teplotný senzor MCP9808 sa stal priemyselným štandardom z hľadiska tvarového faktora a inteligencie a poskytuje kalibrované, linearizované signály zo senzorov v digitálnom formáte I2C.
V tomto návode bolo ukázané prepojenie senzorového modulu MCP9808 s arduino nano. Na čítanie hodnôt teploty sme použili malinový pi s adaptérom I2c. Tento adaptér I2C uľahčuje a spoľahlivejšie pripojenie k modulu senzora.
Krok 1: Potrebný hardvér:
Materiály, ktoré potrebujeme na dosiahnutie nášho cieľa, obsahujú nasledujúce hardvérové komponenty:
1. MCP9808
2. Arduino Nano
3. Kábel I2C
4. I2C štít pre Arduino nano
Krok 2: Pripojenie hardvéru:
Časť zapojenia hardvéru v zásade vysvetľuje zapojenie potrebné medzi senzorom a arduino nano. Zabezpečenie správneho pripojenia je základnou potrebou pri práci na akomkoľvek systéme s požadovaným výstupom. Potrebné spojenia sú teda tieto:
MCP9808 bude fungovať cez I2C. Tu je príklad schémy zapojenia, ktorá ukazuje, ako prepojiť každé rozhranie snímača.
Hneď po vybalení je doska nakonfigurovaná na rozhranie I2C, preto vám toto pripojenie odporúčame použiť, ak ste inak agnostik. Všetko, čo potrebujete, sú štyri drôty!
Vyžadujú sa iba štyri pripojenia Vcc, Gnd, SCL a SDA piny, ktoré sú prepojené pomocou kábla I2C.
Tieto spojenia sú znázornené na obrázkoch vyššie.
Krok 3: Kód na meranie teploty:
Začnime teraz kódom Arduino.
Pri použití senzorového modulu s Arduinom obsahuje knižnicu Wire.h. Knižnica „Wire“obsahuje funkcie, ktoré uľahčujú komunikáciu i2c medzi senzorom a doskou Arduino.
Celý kód Arduino je pre pohodlie užívateľa uvedený nižšie:
#zahrnúť
// Adresa MCP9808 I2C je 0x18 (24)
#define Addr 0x18
neplatné nastavenie ()
{
// Inicializujte komunikáciu I2C ako MASTER
Wire.begin ();
// Inicializujte sériovú komunikáciu, nastavte prenosovú rýchlosť = 9600
Serial.begin (9600);
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Vyberte konfiguračný register
Wire.write (0x01);
// Režim nepretržitej konverzie, predvolené nastavenie pri zapnutí
Wire.write (0x00);
Wire.write (0x00);
// Zastavte prenos I2C
Wire.endTransmission ();
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Vyberte register rozlíšenia
Wire.write (0x08);
// Rozlíšenie = +0,0625 / C
Wire.write (0x03);
// Zastavte prenos I2C
Wire.endTransmission ();
}
prázdna slučka ()
{
int data bez znamienka [2];
// Spustí komunikáciu I2C
Wire.beginTransmission (Addr);
// Vyberte dátový register
Wire.write (0x05);
// Zastavte prenos I2C
Wire.endTransmission ();
// Požiadajte o 2 bajty údajov
Wire.requestFrom (Addr, 2);
// Prečítajte 2 bajty údajov
// temp MSB, temp LSB
ak (Wire.available () == 2)
{
data [0] = Wire.read ();
údaje [1] = Wire.read ();
}
// Previesť údaje na 13-bitové
int temp = ((data [0] & 0x1F) * 256 + data [1]);
ak (teplota> 4095)
{
teplota -= 8192;
}
float cTemp = teplota * 0,0625;
float fTemp = cTemp * 1,8 + 32;
// Výstup údajov na obrazovku
Serial.print ("Teplota v stupňoch Celzia:");
Serial.println (cTemp);
Serial.println ("C");
Serial.print ("Teplota vo Fahrenheite:");
Serial.println (fTemp);
Serial.println ("F");
oneskorenie (500);
}
V knižnici drôtov Wire.write () a Wire.read () sa používajú na zápis príkazov a čítanie výstupu snímača.
Serial.print () a Serial.println () sa používa na zobrazenie výstupu senzora na sériovom monitore Arduino IDE.
Výstup senzora je zobrazený na obrázku vyššie.
Krok 4: Aplikácie:
Digitálny snímač teploty MCP9808 má niekoľko aplikácií na priemyselnej úrovni, ktoré obsahujú priemyselné mrazničky a chladničky spolu s rôznymi kuchynskými robotmi. Tento senzor je možné použiť pre rôzne osobné počítače, servery a ďalšie periférie počítača.