Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
MCP9805 är en minnesmodul digital temperatursensor. Det är integrerat med användarprogrammerbara register som ger flexibilitet för temperaturavkännande applikationer. Denna sensor är utformad för att integreras i temperaturgivare för minnesmodul för mobil plattform. Här är demonstrationen med en Java -kod med Raspberry Pi.
Steg 1: Vad du behöver.. !
1. Hallon Pi
2. MCP9805
3. I²C -kabel
4. I²C -sköld för Raspberry Pi
5. Ethernet -kabel
Steg 2: Anslutningar
Ta en I2C -sköld för hallonpi och tryck den försiktigt över gpio -stiften på hallonpi.
Anslut sedan den ena änden av I2C -kabeln till MCP9805 -sensorn och den andra änden till I2C -skärmen.
Anslut också Ethernet -kabeln till pi eller så kan du använda en WiFi -modul. Anslutningar visas på bilden ovan.
Steg 3: Kod
Java-koden för MCP9805 kan laddas ner från vår GitHub-förvar-Dcube Store.
Här är länken till samma:
github.com/DcubeTechVentures/MCP9805
Databladet för MCP9805 hittar du här:
ww1.microchip.com/downloads/en/DeviceDoc/21…
Vi har använt pi4j -biblioteket för java -kod, stegen för att installera pi4j på hallon pi beskrivs här:
pi4j.com/install.html
Du kan också kopiera koden härifrån, den ges enligt följande:
// Distribueras med en fri vilja licens.
// Använd den hur du vill, vinst eller gratis, förutsatt att den passar i licensen för dess associerade verk.
// MCP9805
// Denna kod är utformad för att fungera med MCP9808_I2CS I2C Mini -modulen som finns i Dcube Store.
importera com.pi4j.io.i2c. I2CBus;
importera com.pi4j.io.i2c. I2CDenhet;
importera com.pi4j.io.i2c. I2CFactory;
importera java.io. IOException;
allmän klass MCP9805
{
public static void main (String args ) kastar undantag
{
// Skapa I2C -buss
I2CBus Bus = I2CFactory.getInstance (I2CBus. BUS_1);
// Skaffa I2C -enhet, MCP9805 I2C -adress är 0x18 (24)
I2CDevice -enhet = Bus.getDevice (0x18);
Tråd. Sover (300);
// Välj konfigurationsregister
// Kontinuerligt konverteringsläge, uppstart
byte config = ny byte [2];
config [0] = 0x00;
config [1] = 0x00;
device.write (0x01, config, 0, 2);
// Välj upplösning rgister
// Upplösning = +0,0625 / C
device.write (0x08, (byte) 0x03);
Tråd. Sover (300);
// Läs 2 byte data från adressen 0x05 (05)
// temp msb, temp lsb
byte data = ny byte [2];
device.read (0x05, data, 0, 2);
// Konvertera data till 13-bitar
int temp = ((data [0] & 0x1F) * 256 + (data [1] & 0xFF));
om (temp> 4095)
{
temp -= 8192;
}
dubbel cTemp = temp * 0,0625;
dubbel fTemp = cTemp * 1,8 + 32;
// Mata ut data till skärmen
System.out.printf ("Temperaturen i Celsius är: %.2f C %n", cTemp);
System.out.printf ("Temperaturen i Fahrenheit är: %.2f F %n", fTemp);
}
}
Steg 4: Ansökningar..:
MCP9805 kan integreras i olika system som inkluderar temperaturövervakningssystem med dubbla in-line-minnesmoduler (DIMM), persondatorer och servrar. Vanligtvis kan den användas som en allmän temperatursensor.