תוכן עניינים:

כיול חיישן DS18B20 עם Arduino UNO: 3 שלבים (עם תמונות)
כיול חיישן DS18B20 עם Arduino UNO: 3 שלבים (עם תמונות)

וִידֵאוֹ: כיול חיישן DS18B20 עם Arduino UNO: 3 שלבים (עם תמונות)

וִידֵאוֹ: כיול חיישן DS18B20 עם Arduino UNO: 3 שלבים (עם תמונות)
וִידֵאוֹ: FLProg10: датчик температуры DS18B20 | ESP32 NodeMCU | Визуальное программирование для Arduino 2024, נוֹבֶמבֶּר
Anonim
כיול חיישן DS18B20 עם Arduino UNO
כיול חיישן DS18B20 עם Arduino UNO
כיול חיישן DS18B20 עם Arduino UNO
כיול חיישן DS18B20 עם Arduino UNO
כיול חיישן DS18B20 עם Arduino UNO
כיול חיישן DS18B20 עם Arduino UNO

כתב ויתור:

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

שלב 1: הכינו את המכשיר שלכם

הכינו את המכשיר שלכם
הכינו את המכשיר שלכם

להלן רשימה של מה שאתה צריך:

  1. ארדואינו UNO (או MEGA)
  2. חיישן DS18B20
  3. התנגדות 4kOhm - 5kOhm (השתמשתי ב- 5k1Ohm)
  4. מסך LCD לקריאת ערכים (אתה יכול גם להשתמש במחשב נייד ופשוט לקרוא אותם על צג סדרתי)
  5. סקיצה המשתמשת בחיישן ומציגה איכשהו את הערכים

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

בדרך כלל חיישנים אלה מגיעים עם שלושה חוטים צבעוניים: שחור, אדום, צהוב. השניים הראשונים נועדו לאנרגיה והשלישית היא לנתונים. חבר את השחור ל- GNN, האדום ל- Vcc (5V) והצהוב בכניסה אנלוגית, נניח A0.

כעת חבר את ההתנגדות בין הצהוב לאדום כדי להשלים את החיבורים.

חבר גם את ה- LCD (אני מציע פשוט 16x2 LCD עם חיבור i2c לשימוש בסך הכל 4 חוטים) וסיימת עם חוטים וכבלים.

עכשיו המערכון שהוא סופר פשוט:

#כלול "OneWire.h"

#כלול "DallasTemperature.h" #הגדר ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); חיישן טמפרטורה Dallas (& ourWire1); #כלול "LiquidCrystal_I2C.h"

LiquidCrystal_I2C lcd (0x27, 16, 2); float RawValue = 0;

הגדרת חלל () {lcd.init (); lcd.backlight (); sensor1.begin (); sensor1.setResolution (11); } לולאת חלל () {sensor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex (0); lcd.setCursor (0, 0); lcd.print ("Sens. 1"); lcd.print (RawValue, 1); }

כפי שאתה יכול לראות אנו משתמשים בספריית הטמפרטורה של דאלאס ומסך LCD עם חיבור i2c.

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

אם אתה רוצה לשמור את זה פשוט יותר, פשוט השתמש במסך הטורי עם הסקיצה הבאה

#include "Wire.h" #include "OneWire.h" #include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); חיישן טמפרטורה Dallas (& ourWire1);

float RawValue = 0;

הגדרת בטל () {

עיכוב (1000); Serial.begin (9600); sensor1.begin (); sensor1.setResolution (11);

}

לולאת void () {sensor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex (0); Serial.print ("Sens. 1"); Serial.println (RawValue, 1); }

עכשיו עקוב אחריי בליבת הפרויקט לכיול החיישן.

שלב 2: כיול דו -נקודות

כיול שתי נקודות
כיול שתי נקודות
כיול שתי נקודות
כיול שתי נקודות
כיול דו -נקודות
כיול דו -נקודות

משהו שכדאי לדעת קודם

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

אתה יכול לבדוק את זה כאן!

למען האמת כדאי לבדוק את הלחץ האטמוספרי ולא את הגובה. אבל הדרך הזו מספיק מדויקת.

האמבט המשולש, או אמבט הקרח, הוא הטמפרטורה שבה קיימים מים בשלושת המצבים מוצקים, נוזליים וגזים, הטמפרטורה היא 0, 01 ° C. נשתמש, כדי לפשט, 0 ° C.

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

הערה: אתה יכול גם להשתמש בטמפרטורה גבוהה יותר לכיול החיישן פשוט להכניס אותו לחומר אחר שאתה מכיר את נקודת הרתיחה כמו אתר (35 ° C), פנטאן (36, 1 ° C), אצטון (56 ° C) או אתנול (78, 37 ° C), אך אותם חומרים רותחים מייצרים גזים דליקים! אז אל תעשו את זה!

מים רותחים:

שמים מעט מים בסיר ומחממים אותו עד שהוא רותח (בועות גז מתפתחות והמים נסערים מעצמם). הטביע את החיישן שלך במקום שהוא אינו נוגע במעט מים. המתן מספר דקות וקרא את ה- LCD או את הצג הטורי

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

אמבטיה משולשת:

עכשיו קחו כוס גדולה (לא צריך שום דבר ענק וגם לא סיר) ומלאו אותה עד הגבול בקוביות קרח. נסה להשתמש בקוביות קרח קטנות. כעת מלאו את 80% הכוס במים קרים. מילוי קרח אם הידית מנסה לרדת.

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

שלב 3: השתמש בערכים שאתה מקבל בדרך הנכונה

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

  • RawHigh
  • RawLow
  • הפניה גבוהה
  • הפניה נמוך

ערך ההפניות הוא ללא ספק 99.9 מעלות צלזיוס למים הרותחים (בגובה של 22 מ '), ו- 0 מעלות צלזיוס לאמבט הקרח הנמס. כעת חשב את הטווחים לערכים אלה:

  • RawRange = RawHigh - RawLow
  • ReferenceRange = ReferenceHigh - ReferenceLow

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

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

הצהיר על המשתנים לפני סעיף הגדרת הריק () בדיוק כך:

float RawHigh = 99.6; float RawLow = 0.5; float ReferenceHigh = 99.9; float ReferenceLow = 0; float RawRange = RawHigh - RawLow; float ReferenceRange = ReferenceHigh - ReferenceLow;

מאשר, בכל פעם שתשתמש בחיישן, תוכל להשתמש בנוסחה הבאה לחישוב הערך המתוקן:

float CorrectedValue = (((RawValue - RawLow) * ReferenceRange) / RawRange) + ReferenceLow;

RawValue היא ללא ספק קריאת החיישן.

זהו זה!

כעת אתה יודע כיצד לכייל את חיישן DS18B20 שלך או כל חיישן אחר שתשתמש בו! תעשה חיים!

מוּמלָץ: