Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
MCP9805 er en minnemodul digital temperatursensor. Det er integrert med brukerprogrammerbare registre som gir fleksibilitet for temperaturfølende applikasjoner. Denne sensoren er designet for å bli innlemmet i temperatursensoren for minnemoduler for mobil plattform. Her er demonstrasjonen med en java -kode ved bruk av Raspberry Pi.
Trinn 1: Hva du trenger..
1. Bringebær Pi
2. MCP9805
3. I²C -kabel
4. I²C Shield for Raspberry Pi
5. Ethernet -kabel
Trinn 2: Tilkoblinger
Ta et I2C -skjold for bringebærpi og skyv det forsiktig over gpio -pinnene til bringebærpi.
Koble deretter den ene enden av I2C -kabelen til MCP9805 -sensoren og den andre enden til I2C -skjoldet.
Koble også Ethernet -kabelen til pi eller du kan bruke en WiFi -modul. Tilkoblinger er vist på bildet ovenfor.
Trinn 3: Kode
Java-koden for MCP9805 kan lastes ned fra vår GitHub repository-Dcube Store.
Her er lenken til det samme:
github.com/DcubeTechVentures/MCP9805
Databladet til MCP9805 finner du her:
ww1.microchip.com/downloads/en/DeviceDoc/21…
Vi har brukt pi4j bibliotek for java -kode, trinnene for å installere pi4j på bringebær pi er beskrevet her:
pi4j.com/install.html
Du kan også kopiere koden herfra, den er gitt som følger:
// Distribuert med en fri viljelisens.
// Bruk den slik du vil, profitt eller gratis, forutsatt at den passer inn i lisensene til de tilhørende verkene.
// MCP9805
// Denne koden er designet for å fungere med MCP9808_I2CS I2C Mini Module tilgjengelig i Dcube Store.
importer com.pi4j.io.i2c. I2CBus;
importer com.pi4j.io.i2c. I2CDenhet;
importer com.pi4j.io.i2c. I2CFactory;
importer java.io. IOException;
offentlig klasse MCP9805
{
public static void main (String args ) kaster Unntak
{
// Lag I2C -buss
I2CBus Bus = I2CFactory.getInstance (I2CBus. BUS_1);
// Få I2C -enhet, MCP9805 I2C -adresse er 0x18 (24)
I2CDevice -enhet = Bus.getDevice (0x18);
Tråd. Sover (300);
// Velg konfigurasjonsregister
// Kontinuerlig konverteringsmodus, oppstart
byte config = ny byte [2];
config [0] = 0x00;
config [1] = 0x00;
device.write (0x01, config, 0, 2);
// Velg oppløsning rgister
// Oppløsning = +0,0625 / C
device.write (0x08, (byte) 0x03);
Tråd. Sover (300);
// Les 2 byte data fra adresse 0x05 (05)
// temp msb, temp lsb
byte data = ny byte [2];
device.read (0x05, data, 0, 2);
// Konverter dataene til 13-bits
int temp = ((data [0] & 0x1F) * 256 + (data [1] & 0xFF));
hvis (temp> 4095)
{
temperatur -= 8192;
}
dobbel cTemp = temp * 0,0625;
dobbelt fTemp = cTemp * 1,8 + 32;
// Utdata til skjermen
System.out.printf ("Temperaturen i Celsius er: %.2f C %n", cTemp);
System.out.printf ("Temperaturen i Fahrenheit er: %.2f F %n", fTemp);
}
}
Trinn 4: Søknader..:
MCP9805 kan inkorporeres i forskjellige systemer som inkluderer temperaturovervåkingssystemer med dobbel in-line minnemodul (DIMM), personlige datamaskiner og servere. Vanligvis kan den brukes som en generell temperatursensor.