טמפרטורה באמצעות תרמיסטור
חלק מהיחידה צגים וחיישנים במסלול ה-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 עם שני מספרים שלמים מאבד את השבר, והתוצאה יוצאת שגויה בכמה מעלות.
אתגר
בינונימודול התרמיסטור מחובר ל-A0. הדפיסו את הטמפרטורה:
- המירו את הקריאה למעלות צלזיוס באמצעות משוואת בטא
- הדפיסו אותה באמצעות
Serial.println(), פעמיים בשנייה
לחצו על Run, שנו את הטמפרטורה בלוח, ואז לחצו על Check.
נסו בעצמכם
const float BETA = 3950; // ערך הבטא של התרמיסטור
void setup() {
Serial.begin(9600);
}
void loop() {
int reading = analogRead(A0);
// המר את הקריאה למעלות C והדפס אותה
delay(500);
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה צגים וחיישנים
4חיישנים
זמן ההד של אולטרסוניקהמרת זמן ההד לסנטימטריםטמפרטורה באמצעות תרמיסטורהמרה מצלזיוס לפרנהייטמד עוצמת אורמרחק על גבי ה-LCDמדחום LCDתרגלו בעצמכם: Arduino אונליין