Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
MCP9808 er en meget nøyaktig digital temperatursensor ± 0,5 ° C I2C minimodul. De er utformet med brukerprogrammerbare registre som letter temperaturfølere. MCP9808 temperatursensoren med høy nøyaktighet har blitt en industristandard når det gjelder formfaktor og intelligens, og gir kalibrerte, lineariserte sensorsignaler i digitalt I2C-format.
I denne opplæringen har grensesnittet mellom sensormodulen MCP9808 og partikkelfoton blitt demonstrert. For å lese temperaturverdiene har vi brukt bringebær pi med en I2c -adapter. Denne I2C -adapteren gjør tilkoblingen til sensormodulen enkel og mer pålitelig.
Trinn 1: Nødvendig maskinvare:
Materialene vi trenger for å nå målet vårt inkluderer følgende maskinvarekomponenter:
1. MCP9808
2. Partikkelfoton
3. I2C -kabel
4. I2C -skjerm for partikkelfoton
Trinn 2: Maskinvaretilkobling:
Maskinvarekoblingsdelen forklarer i utgangspunktet ledningsforbindelsene som kreves mellom sensoren og partikkelfotonet. Å sikre riktige tilkoblinger er den grunnleggende nødvendigheten mens du arbeider på et hvilket som helst system for ønsket utgang. Så de nødvendige tilkoblingene er som følger:
MCP9808 fungerer over I2C. Her er eksempel på koblingsskjema, som viser hvordan du kobler til hvert grensesnitt på sensoren.
Uten boksen er brettet konfigurert for et I2C-grensesnitt, derfor anbefaler vi å bruke denne tilkoblingen hvis du ellers er agnostiker. Alt du trenger er fire ledninger!
Bare fire tilkoblinger kreves Vcc, Gnd, SCL og SDA -pinner, og disse er koblet til ved hjelp av I2C -kabel.
Disse sammenhengene er vist på bildene ovenfor.
Trinn 3: Kode for temperaturmåling:
La oss begynne med partikkelkoden nå.
Mens vi bruker sensormodulen med arduino, inkluderer vi application.h og spark_wiring_i2c.h biblioteket. "application.h" og spark_wiring_i2c.h biblioteket inneholder funksjonene som letter i2c -kommunikasjonen mellom sensoren og partikkelen.
Hele partikkelkoden er gitt nedenfor for brukerens bekvemmelighet:
#inkludere
#inkludere
// MCP9808 I2C -adressen er 0x18 (24)
#define Addr 0x18
float cTemp = 0, fTemp = 0;
ugyldig oppsett ()
{
// Angi variabel
Particle.variable ("i2cdevice", "MCP9808");
Particle.variable ("cTemp", cTemp);
// Initialiser I2C -kommunikasjon som MASTER
Wire.begin ();
// Initialize Serial Communication, set baud rate = 9600
Serial.begin (9600);
// Start I2C -overføring
Wire.beginTransmission (Addr);
// Velg konfigurasjonsregister
Wire.write (0x01);
// Kontinuerlig konverteringsmodus, oppstart som standard
Wire.write (0x00);
Wire.write (0x00);
// Stopp I2C -overføring
Wire.endTransmission ();
// Start I2C -overføring
Wire.beginTransmission (Addr);
// Velg oppløsning rgister
Wire.write (0x08);
// Oppløsning = +0,0625 / C
Wire.write (0x03);
// Stopp I2C -overføring
Wire.endTransmission ();
forsinkelse (300);
}
hulrom ()
{
usignerte int -data [2];
// Starter I2C -kommunikasjon
Wire.beginTransmission (Addr);
// Velg dataregister
Wire.write (0x05);
// Stopp I2C -overføring
Wire.endTransmission ();
// Be om 2 byte med data
Wire.requestFrom (Addr, 2);
// Les 2 byte med data
// temp msb, temp lsb
hvis (Wire.available () == 2)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
}
forsinkelse (300);
// Konverter dataene til 13-bits
int temp = ((data [0] & 0x1F) * 256 + data [1]);
hvis (temp> 4095)
{
temperatur -= 8192;
}
cTemp = temp * 0,0625;
fTemp = cTemp * 1,8 + 32;
// Utdata til dashbordet
Particle.publish ("Temperatur i Celsius:", String (cTemp));
Particle.publish ("Temperatur i Fahrenheit:", String (fTemp));
forsinkelse (500);
}
Particle.variable () -funksjonen oppretter variablene for å lagre sensorens utgang og Particle.publish () -funksjonen viser utgangen på dashbordet til nettstedet.
Sensorutgangen er vist på bildet ovenfor for din referanse.
Trinn 4: Søknader:
MCP9808 digital temperatursensor har flere applikasjoner på industrinivå som inneholder industrielle frysere og kjøleskap sammen med forskjellige matprosessorer. Denne sensoren kan brukes til forskjellige personlige datamaskiner, servere så vel som andre PC -enheter.