תוכן עניינים:
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-13 06:57
MCP9805 הוא חיישן טמפרטורה דיגיטלי של מודול זיכרון. הוא משולב עם רישומים הניתנים לתכנות למשתמשים המספקים גמישות ליישומים לחישת טמפרטורה. חיישן זה נועד להשתלב בחיישן הטמפרטורה של מודול הזיכרון של הפלטפורמה הניידת. להלן ההדגמה עם קוד ג'אווה באמצעות פטל פטל.
שלב 1: מה שאתה צריך..
1. פטל פטל
2. MCP9805
3. כבל I²C
4. מגן I²C עבור פטל פטל
5. כבל אתרנט
שלב 2: חיבורים
קח מגן I2C לפאי פטל ודחוף אותו בעדינות מעל סיכות ה- gpio של פטל פאי.
לאחר מכן חבר את הקצה האחד של כבל I2C לחיישן MCP9805 והקצה השני למגן I2C.
חבר גם את כבל ה- Ethernet ל- pi או שאתה יכול להשתמש במודול WiFi. חיבורים מוצגים בתמונה למעלה.
שלב 3: קוד
ניתן להוריד את קוד java עבור MCP9805 מחנות GitHub שלנו-Dcube Store.
להלן הקישור לאותו דבר:
github.com/DcubeTechVentures/MCP9805
את גליון הנתונים של MCP9805 ניתן למצוא כאן:
ww1.microchip.com/downloads/en/DeviceDoc/21…
השתמשנו בספריית pi4j עבור קוד java, השלבים להתקנת pi4j ב- pi פטל מתוארים כאן:
pi4j.com/install.html
אתה יכול גם להעתיק את הקוד מכאן, הוא ניתן כדלקמן:
// מופץ ברישיון רצון חופשי.
// השתמש בו בכל דרך שתרצה, ברווח או בחינם, בתנאי שהוא מתאים לרישיונות של העבודות הקשורות בו.
// MCP9805
// קוד זה נועד לעבוד עם מודול מיני MCP9808_I2CS I2C הזמין בחנות Dcube.
ייבא com.pi4j.io.i2c. I2CBus;
ייבא com.pi4j.io.i2c. I2CDevice;
יבוא com.pi4j.io.i2c. I2CFactory;
יבוא java.io. IOException;
מעמד ציבורי MCP9805
{
פוסט סטטי ציבורי ריק (String args ) זורק חריגה
{
// צור אוטובוס I2C
אוטובוס I2CBus = I2CFactory.getInstance (I2CBus. BUS_1);
// קבל מכשיר I2C, כתובת I2C MCP9805 היא 0x18 (24)
מכשיר I2CDevice = Bus.getDevice (0x18);
Thread.sleep (300);
// בחר רשם תצורה
// מצב המרה רציף, הפעלה
בייט config = בייט חדש [2];
config [0] = 0x00;
config [1] = 0x00;
device.write (0x01, config, 0, 2);
// בחר רזולוציית רזולוציה
// רזולוציה = +0.0625 / C
device.write (0x08, (בייט) 0x03);
Thread.sleep (300);
// קרא 2 בתים של נתונים מהכתובת 0x05 (05)
// זמני msb, temp lsb
בייט נתונים = בייט חדש [2];
device.read (0x05, נתונים, 0, 2);
// המר את הנתונים ל -13 סיביות
int temp = ((data [0] & 0x1F) * 256 + (data [1] & 0xFF));
אם (טמפ '> 4095)
{
טמפ ' -= 8192;
}
cTemp כפול = טמפ ' * 0.0625;
כפול fTemp = cTemp * 1.8 + 32;
// נתוני פלט למסך
System.out.printf ("הטמפרטורה בצלזיוס היא: %.2f C %n", cTemp);
System.out.printf ("הטמפרטורה בפרנהייט היא: %.2f F %n", fTemp);
}
}
שלב 4: יישומים..:
ניתן לשלב MCP9805 במערכות שונות הכוללות מערכות ניטור טמפרטורות כפולות (DIMM) כפולות, מחשבים אישיים ושרתים. בדרך כלל, זה יכול לשמש כחיישן טמפרטורה למטרות כלליות.