Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
MCP9808 on ülitäpne digitaalne temperatuuriandur ± 0,5 ° C I2C minimoodul. Need on varustatud kasutaja poolt programmeeritavate registritega, mis hõlbustavad temperatuuri andmise rakendusi. MCP9808 ülitäpne temperatuuriandur on muutunud vormiteguri ja intelligentsuse poolest tööstusstandardiks, pakkudes kalibreeritud, lineariseeritud andurisignaale digitaalses I2C-vormingus.
Selles õpetuses on näidatud MCP9808 andurimooduli liidestamist arduino nanoga. Temperatuuri väärtuste lugemiseks oleme kasutanud vaarika pi koos I2c adapteriga. See I2C adapter muudab ühenduse andurimooduliga lihtsaks ja usaldusväärsemaks.
Samm: vajalik riistvara:
Eesmärgi saavutamiseks vajalikud materjalid sisaldavad järgmisi riistvarakomponente:
1. MCP9808
2. Arduino Nano
3. I2C kaabel
4. I2C kilp Arduino nano jaoks
2. samm: riistvara ühendamine:
Riistvara ühendamise jaotis selgitab põhimõtteliselt anduri ja arduino nano vahel vajalikke juhtmestiku ühendusi. Soovitud väljundi mis tahes süsteemiga töötamisel on põhivajadus õigete ühenduste tagamine. Seega on vajalikud ühendused järgmised:
MCP9808 töötab üle I2C. Siin on näide ühendusskeemist, mis näitab, kuidas anduri iga liidest ühendada.
Valmis plaat on konfigureeritud I2C liidese jaoks, seega soovitame seda ühendamist kasutada, kui olete muidu agnostik. Kõik, mida vajate, on neli juhtmest!
Vaja on ainult nelja ühendust Vcc, Gnd, SCL ja SDA ning need ühendatakse I2C kaabli abil.
Neid seoseid on näidatud ülaltoodud piltidel.
3. samm: temperatuuri mõõtmise kood:
Alustame nüüd Arduino koodiga.
Arduinoga andurimoodulit kasutades kaasame Wire.h raamatukogu. Juhtmeraamatukogu sisaldab funktsioone, mis hõlbustavad i2c suhtlust anduri ja Arduino plaadi vahel.
Kogu Arduino kood on kasutaja mugavuse huvides toodud allpool:
#kaasake
// MCP9808 I2C aadress on 0x18 (24)
#define Addr 0x18
tühine seadistus ()
{
// Initsialiseeri I2C side kui MASTER
Wire.begin ();
// Initsialiseeri jadaühendus, määrake edastuskiirus = 9600
Seriaalne algus (9600);
// Käivitage I2C edastamine
Wire.beginTransmission (Addr);
// Valige konfiguratsiooniregister
Wire.write (0x01);
// Pidev teisendusrežiim, vaikimisi sisselülitamine
Wire.write (0x00);
Wire.write (0x00);
// Peata I2C edastamine
Wire.endTransmission ();
// Käivitage I2C edastamine
Wire.beginTransmission (Addr);
// Vali resolutsiooniregister
Wire.write (0x08);
// Eraldusvõime = +0,0625 / C
Wire.write (0x03);
// Peata I2C edastamine
Wire.endTransmission ();
}
tühine tsükkel ()
{
allkirjastamata int andmed [2];
// Alustab I2C suhtlust
Wire.beginTransmission (Addr);
// Valige andmeregister
Wire.write (0x05);
// Peata I2C edastamine
Wire.endTransmission ();
// Taotle 2 baiti andmeid
Wire.requestFrom (Addr, 2);
// Lugege 2 baiti andmeid
// temp MSB, temp LSB
kui (Wire.available () == 2)
{
andmed [0] = Wire.read ();
andmed [1] = Wire.read ();
}
// Teisendage andmed 13-bitisteks
int temp = ((andmed [0] & 0x1F) * 256 + andmed [1]);
kui (temp> 4095)
{
temp -= 8192;
}
ujuk cTemp = temp * 0,0625;
ujuk fTemp = cTemp * 1,8 + 32;
// Andmete väljastamine ekraanile
Serial.print ("Temperatuur Celsiuse järgi:");
Serial.println (cTemp);
Serial.println ("C");
Serial.print ("Temperatuur Fahrenheiti järgi:");
Serial.println (fTemp);
Serial.println ("F");
viivitus (500);
}
Traaditeegis kasutatakse käskude kirjutamiseks ja anduri väljundi lugemiseks Wire.write () ja Wire.read ().
Serial.print () ja Serial.println () kasutatakse anduri väljundi kuvamiseks Arduino IDE jadamonitoril.
Anduri väljund on näidatud ülaltoodud pildil.
4. samm: rakendused:
MCP9808 digitaalsel temperatuurianduril on mitu tööstustasandi rakendust, mis sisaldavad tööstuslikke sügavkülmikuid ja külmikuid koos erinevate köögikombainidega. Seda andurit saab kasutada erinevate personaalarvutite, serverite ja muude arvuti välisseadmete jaoks.