Menu
CoddyTech

טמפרטורה באמצעות תרמיסטור

חלק מהיחידה צגים וחיישנים במסלול ה-Arduino של Coddy. שיעור 20 מתוך 24.

תרמיסטור הוא נגד שההתנגדות שלו משתנה בהתאם לטמפרטורה. במודול הזה (מסוג NTC), המתח בפין OUT יורד ככל שהרכיב מתחמם: analogRead() מחזירה בערך 512 ב־25 מעלות צלזיוס.

הקריאה לא יורדת בקו ישר, ולכן map() לא תעזור. משוואת בטא ממירה אותה למעלות. BETA מגיע מדף הנתונים של הרכיב (כאן 3950), ו־log() היא פונקציה מתמטית שמובנית בלוח. אין צורך לעקוב אחר המתמטיקה: פשוט מעתיקים את השורה כפי שהיא.

const float BETA = 3950;

float celsius = 1 / (log(1 / (1023.0 / reading - 1)) / BETA + 1.0 / 298.15) - 273.15;

חשוב להשאיר את .0 בתוך 1023.0. חישוב 1023 / reading עם שני מספרים שלמים מאבד את השבר, והתוצאה יוצאת שגויה בכמה מעלות.

challenge icon

אתגר

בינוני

מודול התרמיסטור מחובר ל-A0. הדפיסו את הטמפרטורה:

  • המירו את הקריאה למעלות צלזיוס באמצעות משוואת בטא
  • הדפיסו אותה באמצעות Serial.println(), פעמיים בשנייה

לחצו על Run, שנו את הטמפרטורה בלוח, ואז לחצו על Check.

נסו בעצמכם

const float BETA = 3950;  // ערך הבטא של התרמיסטור

void setup() {
  Serial.begin(9600);
}

void loop() {
  int reading = analogRead(A0);
  // המר את הקריאה למעלות C והדפס אותה
  delay(500);
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה צגים וחיישנים

תרגלו בעצמכם: Arduino אונליין