Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
MCP9808 on erittäin tarkka digitaalinen lämpötila -anturi ± 0,5 ° C I2C minimoduuli. Ne on varustettu käyttäjän ohjelmoitavilla rekistereillä, jotka helpottavat lämpötilan tunnistamista. Korkean tarkkuuden MCP9808-lämpötila-anturista on tullut muodon ja älykkyyden kannalta alan standardi, joka tarjoaa kalibroituja, lineaarisia anturisignaaleja digitaalisessa I2C-muodossa.
Tässä opetusohjelmassa on osoitettu MCP9808 -anturimoduulin liitäntä hiukkasfotoniin. Lämpötila -arvojen lukemiseen olemme käyttäneet vadelma pi: tä I2c -sovittimen kanssa. Tämä I2C -sovitin tekee liitännän anturimoduuliin helppoa ja luotettavaa.
Vaihe 1: Tarvittava laitteisto:
Tavoitteemme saavuttamiseen tarvittavat materiaalit sisältävät seuraavat laitteistokomponentit:
1. MCP9808
2. Hiukkasfotoni
3. I2C -kaapeli
4. I2C -suoja hiukkasfotonille
Vaihe 2: Laitteiston kytkentä:
Laitteiston liitäntäosa selittää periaatteessa anturin ja hiukkasfotonin väliset tarvittavat johdotusliitännät. Oikeiden liitosten varmistaminen on perustarve, kun työskentelet minkä tahansa järjestelmän kanssa halutun lähdön saavuttamiseksi. Tarvittavat liitännät ovat siis seuraavat:
MCP9808 toimii I2C: n kautta. Tässä on esimerkki kytkentäkaaviosta, joka osoittaa, miten anturin jokainen liitäntä kytketään.
Valmis levy on konfiguroitu I2C-rajapintaa varten, joten suosittelemme käyttämään tätä kytkentää, jos olet muuten agnostikko. Tarvitset vain neljä johtoa!
Tarvitaan vain neljä liitäntää Vcc, Gnd, SCL ja SDA, ja ne on kytketty I2C -kaapelin avulla.
Nämä yhteydet on esitetty yllä olevissa kuvissa.
Vaihe 3: Lämpötilan mittauskoodi:
Aloitetaan nyt hiukkaskoodilla.
Kun käytät anturimoduulia arduinon kanssa, sisällytämme hakemistoon application.h ja spark_wiring_i2c.h. "application.h" ja spark_wiring_i2c.h -kirjasto sisältävät toiminnot, jotka helpottavat i2c -tiedonsiirtoa anturin ja hiukkasen välillä.
Koko hiukkaskoodi annetaan alla käyttäjän mukavuuden vuoksi:
#sisältää
#sisältää
// MCP9808 I2C -osoite on 0x18 (24)
#define Addr 0x18
kelluva cTemp = 0, fTemp = 0;
mitätön asennus ()
{
// Aseta muuttuja
Particle.variable ("i2cdevice", "MCP9808");
Particle.variable ("cTemp", cTemp);
// Alusta I2C -viestintä MASTERiksi
Wire.begin ();
// Alusta sarjaliikenne, aseta baudinopeus = 9600
Sarja.alku (9600);
// Käynnistä I2C -lähetys
Wire.beginTransmission (Addr);
// Valitse määritysrekisteri
Wire.write (0x01);
// Jatkuva muuntotila, käynnistyksen oletus
Wire.write (0x00);
Wire.write (0x00);
// Pysäytä I2C -lähetys
Wire.endTransmission ();
// Käynnistä I2C -lähetys
Wire.beginTransmission (Addr);
// Valitse resoluutio rgister
Wire.write (0x08);
// Resoluutio = +0,0625 / C
Wire.write (0x03);
// Pysäytä I2C -lähetys
Wire.endTransmission ();
viive (300);
}
tyhjä silmukka ()
{
allekirjoittamaton int -data [2];
// Käynnistää I2C -viestinnän
Wire.beginTransmission (Addr);
// Valitse tietorekisteri
Wire.write (0x05);
// Pysäytä I2C -lähetys
Wire.endTransmission ();
// Pyydä 2 tavua dataa
Wire.requestFrom (Addr, 2);
// Lue 2 tavua dataa
// temp msb, temp lsb
jos (Wire.available () == 2)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
}
viive (300);
// Muunna tiedot 13-bittisiksi
int temp = ((data [0] & 0x1F) * 256 + data [1]);
jos (lämpötila> 4095)
{
lämpötila -= 8192;
}
cTemp = lämpötila * 0,0625;
fTemp = cTemp * 1,8 + 32;
// Tulosta tiedot kojelautaan
Particle.publish ("Lämpötila Celsius:", Jono (cTemp));
Particle.publish ("Lämpötila Fahrenheit:", Jono (fTemp));
viive (500);
}
Particle.variable () -funktio luo muuttujat anturin lähdön tallentamiseksi ja Particle.publish () -toiminto näyttää tuotoksen sivuston kojelaudalla.
Anturilähtö näkyy yllä olevassa kuvassa.
Vaihe 4: Sovellukset:
MCP9808 -digitaalilämpötila -anturilla on useita teollisuuden tason sovelluksia, jotka sisältävät teollisia pakastimia ja jääkaappeja sekä erilaisia elintarvikekoneita. Tätä anturia voidaan käyttää erilaisiin henkilökohtaisiin tietokoneisiin, palvelimiin ja muihin PC -oheislaitteisiin.