Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
MCP9803 je dvožični temperaturni senzor visoke natančnosti. Poosebljeni so s programi, ki jih lahko programira uporabnik in olajšajo aplikacije zaznavanja temperature. Ta senzor je primeren za zelo izpopolnjen večzonski sistem za spremljanje temperature.
V tej vadnici je prikazano povezovanje senzorskega modula MCP9803 z arduino nano. Za branje temperaturnih vrednosti smo uporabili arduino z vmesnikom I2c, ki omogoča enostavno in zanesljivo povezavo s senzorskim modulom.
1. korak: Potrebna strojna oprema:
Materiali, ki jih potrebujemo za dosego našega cilja, vključujejo naslednje komponente strojne opreme:
1. MCP9803
2. Arduino Nano
3. Kabel I2C
4. I2C ščit za arduino nano
2. korak: Priključitev strojne opreme:
Oddelek za priključitev strojne opreme v bistvu pojasnjuje potrebne ožičenje med senzorjem in arduino nano. Zagotavljanje pravilnih povezav je osnovna potreba pri delu na katerem koli sistemu za želeni izhod. Torej so potrebne povezave naslednje:
MCP9803 bo deloval preko I2C. Tu je primer sheme ožičenja, ki prikazuje, kako povezati vsak vmesnik senzorja.
Plošča je že pripravljena za vmesnik I2C, zato priporočamo uporabo te povezave, če niste agnostični.
Vse kar potrebujete so štiri žice! Potrebne so le štiri povezave Vcc, Gnd, SCL in SDA, ki so povezane s kablom I2C.
Te povezave so prikazane na zgornjih slikah.
3. korak: Koda za merjenje temperature:
Začnimo s kodo arduino zdaj.
Med uporabo senzorskega modula z arduinom vključujemo knjižnico Wire.h. Knjižnica "Wire" vsebuje funkcije, ki olajšajo komunikacijo i2c med senzorjem in arduino ploščo.
Celotna koda arduino je podana spodaj za udobje uporabnika:
#vključi
// Naslov MCP9803 I2C je 0x48 (72)
#define Addr 0x48
void setup ()
{
// Inicializirajte komunikacijo I2C kot MASTER
Wire.begin ();
// Začetek serijske komunikacije, nastavljena hitrost prenosa = 9600
Serial.begin (9600);
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Izberite konfiguracijski register
Wire.write (0x01);
// Način neprekinjene pretvorbe, privzeti vklop
Wire.write (0x60);
// Ustavi prenos I2C
Wire.endTransmission ();
zamuda (300);
}
void loop ()
{
podpisani int podatki [2];
// Zažene komunikacijo I2C
Wire.beginTransmission (Addr);
// Izberite register podatkov
Wire.write (0x00);
// Ustavi prenos I2C
Wire.endTransmission ();
// Zahtevajte 2 bajta podatkov
Wire.requestFrom (Addr, 2);
// Preberite 2 bajta podatkov
// temp msb, temp lsb
če (Wire.available () == 2)
{
podatki [0] = Wire.read ();
podatki [1] = Wire.read ();
}
// Pretvorimo podatke v 12-bitne
int temp = ((podatki [0] * 256) + podatki [1]) / 16,0;
če (temp> 2047)
{
temp -= 4096;
}
float cTemp = temp * 0,0625;
float fTemp = cTemp * 1,8 + 32;
// Izhodni podatki na serijski monitor
Serial.print ("Temperatura v Celzijusi:");
Serial.print (cTemp);
Serial.println ("C");
Serial.print ("Temperatura v Fahrenheitu:");
Serial.print (fTemp);
Serial.println ("F");
zamuda (500);
}
V knjižnici žic Wire.write () in Wire.read () se uporabljata za pisanje ukazov in branje izhoda senzorja.
Serial.print () in Serial.println () se uporabljata za prikaz izhoda senzorja na serijskem monitorju Arduino IDE.
Izhod senzorja je prikazan na zgornji sliki.
4. korak: Aplikacije:
MCP9803 je mogoče uporabiti na širokem področju naprav, ki vključujejo osebne računalnike in zunanje naprave, trde diske, različne zabavne sisteme, pisarniške sisteme in sisteme za podatkovno komunikacijo. Ta senzor je mogoče vgraditi v različne napredne sisteme.