דלגו לתוכן המרכזי
KitLab
שיעור קודם
מאוורר לפי טמפרטורה — בקרת לולאה סגורה· 31 / 41
מאוורר לפי טמפרטורה — בקרת לולאה סגורה
🎬

הסרטון בדרך אלינו

בינתיים — התמלול המלא של השיעור מחכה לכם למטה

מאוורר לפי טמפרטורה — בקרת לולאה סגורה

מה בשיעור?

  • המערכת בוחרת במקום המשתמש
  • בקרת לולאה סגורה — הפעולה משנה את המדידה
  • ההבדל מבקרת סף פשוטה
  • למה isnan קריטי בבקרה אוטומטית
  • היסטרזיס ליציבות

מה נלמד כאן

  • בקרה אוטומטית לפי טמפרטורה
  • בקרת לולאה סגורה
  • לבנות מאוורר שמווסת את עצמו

מאוורר שחושב

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

מאוורר לפי טמפרטורה

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


הידע שצריך

בקרת לולאה סגורה

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

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

  • טמפרטורה נמוכה → המאוורר עוצר
  • הטמפרטורה עולה → המהירות עולה איתה
  • מתקרר → מאט או נעצר

וזה יוצר לולאה: המאוורר מקרר → הטמפרטורה יורדת → המאוורר מאט → הטמפרטורה עולה → המאוורר מאיץ. המערכת מווסתת את עצמה סביב נקודת שיווי משקל.

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

הפרש מהותי משיעור 21 (פנס רחוב): שם המדידה והתוצאה לא השפיעו זו על זו — הנורית לא משנה את האור בחדר. כאן הפעולה משנה את מה שמודדים. זו לולאה אמיתית.

איפה זה נמצא

בתים, משרדים, רצפות ייצור, קירור חדרי שרתים, חממות חקלאיות וקירור ציוד אלקטרוני.


הניסוי

המטרה: המאוורר מווסת את מהירותו לפי הטמפרטורה.

רשימת רכיבים

הרכיב כמות
לוח ESP32 1
לוח ניסוי 400 נקודות 1
חיישן DHT11 1
דרייבר מנועים 1
מנוע DC + מאוורר 1

התרשים החשמלי

התרשים החשמלי

החיבור

חיבור הרכיבים


מבנה התוכנית

#include <DHT.h>
#define DHTPIN 18
#define DHTTYPE DHT11
#define motor1A 5
#define motor2A 16

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(115200);
  dht.begin();
  pinMode(motor1A, OUTPUT);
  pinMode(motor2A, OUTPUT);
}

void loop() {
  delay(2000);                              // DHT11 איטי
  float t = dht.readTemperature();

  if (isnan(t)) return;                     // קריאה נכשלה — מדלגים

  int speed;
  if (t < 25)      speed = 0;               // קריר — עוצר
  else if (t < 28) speed = 150;             // חמים — לאט
  else             speed = 255;             // חם — מלא

  analogWrite(motor1A, speed);
  analogWrite(motor2A, 0);

  Serial.print("Temp: "); Serial.print(t);
  Serial.print(" -> Speed: "); Serial.println(speed);
}

⚠️ הספים 25 ו-28 הם נקודת התחלה. כזכור משיעור 12, חיישן ה-DHT11 מודד את השבב ולכן מראה קצת יותר מטמפרטורת החדר. תמדדו קודם ואז תקבעו.

שימו לב ל-isnan ו-return. בלעדיהם, קריאה שנכשלה הייתה נותנת nan, וכל ההשוואות היו נכשלות — והמאוורר היה מקבל החלטה על סמך זבל. בבקרה אוטומטית זה כבר לא רק אסתטי.

מה אמור לקרות

המאוורר מגיב לחום

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


נסו בעצמכם

  • שנו את הספים לערכים שמתאימים לחדר שלכם.
  • החליפו את שלוש הדרגות בבקרה רציפה: speed = map(t, 25, 35, 0, 255).
  • הוסיפו מסך LCD שמציג טמפרטורה ומהירות.
  • הוסיפו היסטרזיס: מתחיל ב-28, נעצר רק ב-25. למה זה טוב יותר?
  • הפעילו את המאוורר מול החיישן. תוכלו לראות את הלולאה הסגורה מתייצבת?

🧰 הרכיבים לשיעור הזה

רוצים את חומרי הקורס והעדכונים?

נשלח למייל את קובצי הקוד, החומרים ועדכונים על שיעורים חדשים. בלי ספאם.