DS18B20: חיישן טמפרטורה לנוזלים

DS18B20

ישנם חיישני לחות וטמפרטורה שונים, כגון ה- LM35. חלקם מובנים למודולים לשימוש ספציפי עם Arduino. אך באופן כללי, הם אמורים למדוד טמפרטורה יבשה, כלומר טמפרטורת אוויר. אבל יש מודל קונקרטי שעובד עבורו למדוד טמפרטורה בנוזלים ונקרא DS18B20. מוזרויות שעשויות להיות שימושיות עבור חלק מהפרויקטים היותר אקזוטיים שלך בעיצוב DIY, בהם אתה משחק עם סוג נוזלי כלשהו שעבורו אתה צריך לדעת פרמטר זה.

למעשה ה- DS18B20 לא רק מודד טמפרטורה בתוך נוזלים, אלא שהוא יכול להיות שימושי מאוד למדידת טמפרטורה סביבות לחות וגם תחת קצת נוזלים. אז אתה יכול גם להשתמש בו כדי למדוד את טמפרטורת האוויר אם הסביבה עמוסה די בלחות. וכפי שאמרתי, התכונה של היכולת לטבול אותו בנוזל כדי למדוד את הטמפרטורה שלו היא אחת התכונות שהופכות אותו למעשי להפליא.

מהו ה- DS18B20?

ובכן, אני חושב שכבר התבהר למדי, זהו חיישן אלקטרוני המסוגל למדוד את הטמפרטורה של מדיה גזית או נוזלית. בנוסף, יש חבילות או חבילות שונות של DS18B20, כמו זו הבסיסית שאתה רואה בתמונה הראשית, או שהיא יכולה גם להיות משולבת בכמה מעגלי PCB, בדיקות טבולות וכו '. לפרויקט שלכם עליכם לבחור את הפורמט המתאים ביותר על פי מבוקשכם.

לדוגמא, מלבד ה- TO-92 האופייני, יש גם את microSOP. אולי להשתלב עם ארדואינו המתאים ביותר הוא ה- TO-92, מכיוון שעם שלושת הפינים שלו קל מאוד להכניס אותו לקרש הלחם לצורך חיבור.

Pinout

סיכות Ds18b20

El פינאוט DS18B20 קל לזהות אותו. לדוגמה, אם ניקח את החבילה של דאלאס TO-92, שהיא אחת הפופולריות ביותר, אתה יכול לראות שיש לה שלושה פינים. אם אתה שם את זה מלפנים, כלומר עם החלק המעוגל מאחור ומסתכל על הפנים השטוחות שבהן מופיעים הכתובות, הסיכה בצד שמאל שלך היא 1 והצד הימני שלך הוא 3. לכן, 1 יהיה עבור GND או קרקע, 2 מיועד לנתונים ו -3 עבור מתח אספקה.

הנה אנחנו חייבים לומר את זה, ערכים שכדאי שתכירו:

  • סיכה 1: עליך לחבר אותה לסיכת GND של Arduino, כלומר ל- 0v.
  • סיכה 2: סיכה זו היא DQ או נתונים, זו שתשלח את הטמפרטורות שנמדדו על ידי החיישן לארדואינו דרך פרוטוקול מסוים המכונה 1-Wire ויהיה צורך בספריה ופונקציות מיוחדות עבור ה- Arduino IDE. זה יאפשר שימוש רק בסיכת Arduino אחת לחיבור חיישנים מרובים עם פרוטוקול זה ...
  • פין 3: ניתן להפעיל אותו בין 3 ל -5,5 וולט, כך שתוכלו לחבר אותו לפלט 5 וולט של Arduino.

מאפיינים טכניים וגליון נתונים של DS18B20

כמו תמיד, זה כן מעניין להכיר את המאפיינים הטכניים של החיישן לדעת כיצד הוא עובד, כדי לא לפגוע בו, ובעיקר כדי שנדע היכן מגבלות המדידה שלו, שכן אם הערכים שאנו רוצים למדוד אינם ביניהם, זה לא יעזור לנו ול אתה צריך לחפש אלטרנטיבה אחרת.

לשם כך, עדיף להוריד א גיליון נתונים של היצרן, כמו זו בדאלאס אתה יכול לראות כאן. שם תוכלו למצוא את כל המידע הדרוש. וזכור שלמרות שכל ה- DS18B20 עשוי להיות דומה, תלוי ביצרן או בחבילה אתה עשוי למצוא כמה שינויים ...

אבל ללא קשר למוזרויות, הנה כמה נתונים טכניים בסיסיים:

  • טווח טמפרטורות: -55 עד 125 מעלות צלזיוס, לכן הוא יכול למדוד בגז או נוזל בטמפרטורות נמוכות מאוד וגם גבוהות.
  • טעויות: ה- DS18B20 רגיש לרעש חיצוני או להפרעות שעלולות לתת ערכים שגויים במדידות. מרווח השגיאה הוא פלוס מינוס 2 מעלות צלזיוס, אם כי בטמפרטורות שבין -10 מעלות צלזיוס ל -85 מעלות צלזיוס, כלומר כשאנחנו לא קרובים לגבולות, זה יכול להיות רק חצי מעלות.
  • Resolución: אתה יכול לעבוד עם כמה רזולוציות או וריאציות מינימליות שתוכל לזהות בעזרת הפינים האנלוגיים של Arduino. תומך 9 סיביות, 10 סיביות, 11 סיביות ו -12 סיביות (ברירת מחדל). כלומר, היא יכולה למדוד בין חצי לחצי מעלות, מרבע לרבע מעלות, מ 0,125 ל 0,125 מעלות צלזיוס, או מ 0,0625 מעלות צלזיוס בהתאמה. ניתן לשנות תכנות זה באמצעות קוד התכנות.
  • מתח אספקה: 3 עד 5,5 וולט
  • מחיר: 1 עד 3 אירו

שילוב עם ארדואינו

דיאגרמת חיבור Arduino - ds18b20

למרות שיש דרכים שונות לחבר אותו, המתאים ביותר הוא זה שאתה רואה בתרשים זה. זה די פשוט, עם סיכה GND בחיבור המתאים של לוח Arduino, ספק הכוח זהה ואז הנתונים לאנלוגי Arduino שבחרת בקוד התכנות שלך ב- Arduino IDE. אבל טוב גם להגדיר נגד משיכה 4,7k (אם המרחק של כבל הגשוש לחיישן גדול יותר, ההתנגדות צריכה להיות נמוכה יותר, למשל, למשך 5 מ 'של 3,3k, ל -10 מ -2,2, XNUMXk, ...) לסיכת הנתונים וכך לשמור אותה תמיד גבוהה.

עבור תכנות בארדואינו IDE והאינטגרציה הטובה שלו עם DS18B20 והפרוטוקול המסוים הזה, מומלץ להוריד את הספריות טמפרטורת דאלאס y OneWire מהסביבה. וקוד הבסיס, זה יכול להיות משהו כמו הדוגמה הזו שאני מראה:

#include <OneWire.h>
#include <DallasTemperature.h>

// Pin donde se conecta el bus 1-Wire (DQ)
const int pinDatosDQ = 9;

// Instancia a las clases OneWire y DallasTemperature
OneWire oneWireObjeto(pinDatosDQ);
DallasTemperature sensorDS18B20(&oneWireObjeto);
 
void setup() {
    // Iniciamos la comunicación serie a 9600 baudios
    Serial.begin(9600);
    // Iniciamos el bus 1-Wire del sensor
    sensorDS18B20.begin(); 
}
 
void loop() {
    // Indicamos que tome la temperatura
    Serial.println("Midiendo temperatura");
    sensorDS18B20.requestTemperatures();
 
    // Lee y muestra la temperatura (recuerda que puedes conectar más de uno con 1-wire)
    Serial.print("La temperatura del sensor 0 es de: ");
    Serial.print(sensorDS18B20.getTempCByIndex(0));
    Serial.println(" C");
    Serial.print("La temperatura del sensor x es de: ");
    Serial.print(sensorDS18B20.getTempCByIndex(1));
    Serial.println(" ºC");
    
    delay(1000); 
}

עוד מידע - מדריך תכנות של Arduino (PDF בחינם)


היה הראשון להגיב

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.