Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
MCP9805 yra atminties modulio skaitmeninis temperatūros jutiklis. Jis įtrauktas į vartotojo programuojamus registrus, kurie suteikia lankstumo temperatūros jutikliams. Šis jutiklis skirtas integruoti į mobiliosios platformos atminties modulio temperatūros jutiklį. Štai demonstracija su „Java“kodu naudojant „Raspberry Pi“.
1 žingsnis: ko jums reikia..
1. Avietė Pi
2. MCP9805
3. I²C kabelis
4. „I²C Shield“, skirtas „Raspberry Pi“
5. Ethernet kabelis
2 žingsnis: jungtys
Paimkite aviečių pi I2C skydą ir švelniai stumkite jį virš aviečių pi gpio kaiščių.
Tada vieną I2C kabelio galą prijunkite prie MCP9805 jutiklio, o kitą - prie I2C skydo.
Taip pat prijunkite Ethernet kabelį prie pi arba galite naudoti „WiFi“modulį. Sujungimai parodyti aukščiau esančiame paveikslėlyje.
3 žingsnis: kodas
„MCP9805“„Java“kodą galima atsisiųsti iš mūsų „GitHub“saugyklos-„Dcube“parduotuvės.
Čia yra nuoroda į tą patį:
github.com/DcubeTechVentures/MCP9805
MCP9805 duomenų lapą rasite čia:
ww1.microchip.com/downloads/en/DeviceDoc/21…
„Java“kodui naudojome „pi4j“biblioteką, čia aprašyti veiksmai, kaip įdiegti „pi4j“į aviečių pi:
pi4j.com/install.html
Taip pat galite nukopijuoti kodą iš čia, jis pateikiamas taip:
// Platinama su laisvos valios licencija.
// Naudokite bet kokiu būdu, pelningai ar nemokamai, jei jis atitinka susijusių darbų licencijas.
// MCP9805
// Šis kodas skirtas darbui su „MCP9808_I2CS I2C Mini“moduliu, kurį galima įsigyti „Dcube Store“.
importuoti com.pi4j.io.i2c. I2CBus;
importuoti com.pi4j.io.i2c. I2CDevice;
importuoti com.pi4j.io.i2c. I2CFactory;
importuoti java.io. IOException;
viešoji klasė MCP9805
{
public static void main (String args ) metimai Išimtis
{
// Sukurti I2C magistralę
I2CBus magistralė = I2CFactory.getInstance (I2CBus. BUS_1);
// Gauti I2C įrenginį, MCP9805 I2C adresas yra 0x18 (24)
I2CDevice device = Bus.getDevice (0x18);
Siūlai.miegoti (300);
// Pasirinkite konfigūracijos registrą
// Nuolatinio konvertavimo režimas, įjungimas
baitas konfigūracija = naujas baitas [2];
konfigūracija [0] = 0x00;
konfigūracija [1] = 0x00;
device.write (0x01, config, 0, 2);
// Pasirinkite skiriamąją gebą rgister
// Rezoliucija = +0.0625 / C
device.write (0x08, (baitas) 0x03);
Siūlai.miegoti (300);
// Skaityti 2 baitus duomenų iš adreso 0x05 (05)
// temp msb, temp lsb
baitas duomenys = naujas baitas [2];
device.read (0x05, duomenys, 0, 2);
// Konvertuokite duomenis į 13 bitų
int temp = ((duomenys [0] ir 0x1F) * 256 + (duomenys [1] ir 0xFF));
jei (temperatūra> 4095)
{
temperatūra -= 8192;
}
dvigubas cTemp = temp * 0,0625;
dvigubas fTemp = cTemp * 1,8 + 32;
// Išvesti duomenis į ekraną
System.out.printf ("Temperatūra Celsijaus laipsniais yra: %.2f C %n", cTemp);
System.out.printf ("Temperatūra Farenheitu yra: %.2f F %n", fTemp);
}
}
4 žingsnis: programos..:
MCP9805 gali būti integruotas į įvairias sistemas, kuriose yra dvigubos tiesioginės atminties modulio (DIMM) temperatūros stebėjimo sistemos, asmeniniai kompiuteriai ir serveriai. Paprastai jis gali būti naudojamas kaip bendros paskirties temperatūros jutiklis.