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 liittäminen arduino nanoon. 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. Arduino Nano
3. I2C -kaapeli
4. I2C Shield Arduino nanolle
Vaihe 2: Laitteiston kytkentä:
Laitteiston kytkentäosio selittää periaatteessa anturin ja arduino nanon väliset tarvittavat johdot. 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 Arduino -koodilla.
Kun käytät anturimoduulia Arduinon kanssa, sisällytämme Wire.h -kirjaston. "Wire" -kirjasto sisältää toiminnot, jotka helpottavat i2c -tiedonsiirtoa anturin ja Arduino -kortin välillä.
Koko Arduino -koodi on alla käyttäjän mukavuuden vuoksi:
#sisältää
// MCP9808 I2C -osoite on 0x18 (24)
#define Addr 0x18
mitätön asennus ()
{
// 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 tarkkuusrekisteri
Wire.write (0x08);
// Resoluutio = +0,0625 / C
Wire.write (0x03);
// Pysäytä I2C -lähetys
Wire.endTransmission ();
}
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 ();
}
// Muunna tiedot 13-bittisiksi
int temp = ((data [0] & 0x1F) * 256 + data [1]);
jos (lämpötila> 4095)
{
lämpötila -= 8192;
}
kelluva cTemp = lämpötila * 0,0625;
kelluva fTemp = cTemp * 1,8 + 32;
// Tulosta tiedot näytölle
Serial.print ("Lämpötila celsiusasteina:");
Sarja.println (cTemp);
Serial.println ("C");
Serial.print ("Lämpötila Fahrenheit:");
Sarja.println (fTemp);
Serial.println ("F");
viive (500);
}
Johdinkirjastossa Wire.write () ja Wire.read () käytetään komentojen kirjoittamiseen ja anturilähdön lukemiseen.
Serial.print () ja Serial.println () käytetään anturin lähdön näyttämiseen Arduino IDE: n sarjamonitorissa.
Anturin lä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.