תוכן עניינים:
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-13 06:57
זהו מדריך מהיר כיצד להשיג את המספרים הסידוריים האישיים של חיישני הטמפרטורה החד-חוטיים DS18B20 שלך.
זה שימושי לפרויקטים הדורשים חיישנים מרובים.
דברים שאתה צריך:
- Arduino 5v (UNO, Mega, Pro Mini וכו ') - Arduino UNO R3 - AliExpress - eBay
- חיישן טמפ 'DS18B20 - AliExpress - eBay
- 4.7k - 1/4w Resistor THT - AliExpress - eBay
- קרש לחם - AliExpress - eBay
- חוטי מגשר - זכר לזכר - AliExpress - eBay
- מחשב עם Arduino IDE מותקן
שלב 1: הוסף את הספרייה הנדרשת ל- Arduino IDE
- פתח את Arduino IDE (אני משתמש ב- 1.8.1)
- לחץ על "סקיצה" -> "כלול ספרייה" -> "נהל ספריות …"
- בחר בסרגל החיפוש והקלד "dallas"
- לחץ על "DallasTemperature" ולחץ על "התקן"
לחלופין תוכל להוריד את הספרייה מכאן:
ספרייה זו כוללת את ספריית OnWire.
שלב 2: חיבור ה- DS18B20
באמצעות לוח לחם חיבור +5V, GND ו- Digital Pin 2 (סיכה 2 כבר מוגדרת בסקיצה לדוגמא) מהארדואינו באמצעות מגשרים ללוח זכר לזכר.
חבר את DS18B20 במקביל לרצועות המסוף 3x בלוח הלחם.
- פין 1 (GND) -> GND (0V הקרקע)
- פין 2 (DATA) -> פין דיגיטלי 2
- פין 3 (Vdd) -> +5V
למצב צריכת חשמל רגילה, חבר הנגד של 4.7K מ- 5V לחוט Pin 2 דיגיטלי בלוח הלחם.
הקישור הבא הוא משאב מצוין עבור חיישן הטמפרטורה החד-חוטי DS18B20.
www.tweaking4all.com/hardware/arduino/ardu…
שלב 3: טען את הסקיצה לדוגמא "רווק"
לאחר שתהיה לו חיבור אתה מוכן לטעון את ה- Temperature "Single" SketchOpen Arduino IDE של דאלאס (אני משתמש 1.8.1) לחץ על "קובץ" -> "דוגמאות" -> "טמפרטורת דאלאס" -> "יחיד" שהוספתי באיחור (5000); בקו 103 כדי לתת לי זמן להעתיק את המספר הסידורי בחר את טופס הלוח המתאים "כלים" -> "לוח" בחר ביציאה המתאימה שלך "כלים" -> "יציאה" כעת "העלה" הסקיצה "סקיצה" -> "העלה" לחץ על "כלים" -> "צג סידורי" וודא ששיעורי השידור התואמים את שלי הם 9600 אם אתה לא ציינת, בדוק את הלוח, הנמל, מנהלי ההתקנים של USB וכו '.
שלב 4: העתק את המספר הסידורי
מתוך "צג סידורי" תראה השורה הרביעית היא "מכשיר 0 כתובת: xxxxxxxxxxxxxxxx"
זהו המספר הסידורי של ה- DS18B20
אם זה "0000000000000000" אז יש בעיה בקריאת DS18B20 שלך.
סמן אותו עם העכבר ולחץ על CTRL+C במקלדת ולאחר מכן עבר אותו בפנקס הרשימות
לפרויקטים אחרים שלי הקוד שלי משתמש במערך של מספרים אלה. עיצבתי מחדש את מחרוזת HEX לפורמט הבא.
DeviceAddress tempSensorSerial [9] = {
{0x28, 0xFF, 0x07, 0xA6, 0x70, 0x17, 0x04, 0xB5}, {0x28, 0xFF, 0xB2, 0xA6, 0x70, 0x17, 0x04, 0x28}, {0x28, 0xFF, 0x42, 0x98, 0x70, 0x07, 0xD3}, {0x28, 0xFF, 0x86, 0xA8, 0x70, 0x17, 0x04, 0xA6}, {0x28, 0xFF, 0x2B, 0x65, 0x71, 0x17, 0x04, 0x76}, {0x28, 0xFF, 0x66, 0x62,, 0x17, 0x04, 0xF5}, {0x28, 0xFF, 0xD9, 0x9B, 0x70, 0x17, 0x04, 0x9C}, {0x28, 0xFF, 0x98, 0x6A, 0x71, 0x17, 0x04, 0xED}, {0x28, 0x,, 0x42, 0x71, 0x17, 0x04, 0x4C}};
שלב 5: סיים
כעת תוכל לזהות כל חיישן טמפרטורה חד-חוטי DS18B20 בנפרד בקוד שלך ולהשתמש בפונקציה כזו:
float getTemperature (בת j) {
sensors.requestTemperaturesByAddress (tempSensorSerial [j]);
float tempC = sensors.getTempC (tempSensorSerial [j]);
החזרה tempC;
}