Arduino:
טיפול בשגיאות

איך לעשות:

נניח שה-Arduino שלך קורא מחיישן שלעיתים עלול לייצר ערכים מחוץ לטווח. הנה איך כדאי לך להתמודד עם זה:

int sensorValue = analogRead(A0);

if (sensorValue >= 0 && sensorValue <= 1023) {
  // הערך נמצא בטווח, המשך עם העיבוד
  Serial.println(sensorValue);
} else {
  // הערך מחוץ לטווח, טפל בשגיאה
  Serial.println("Error: Sensor value out of range.");
}

פלט לדוגמה:

523
Error: Sensor value out of range.
761

צלילה עמוקה

טיפול בשגיאות לא תמיד היה כל כך פשוט. בימים הראשונים, מפתחים לעיתים קרובות התעלמו משגיאות, מה שהוביל ל"התנהגות בלתי מוגדרת" שכולם פחדו ממנה. ככל שתכנות התפתח, כך גם הכלים - כעת יש לך חריגות בשפות רבות, אבל הן עדיין ‘בדוק קודם’ באופן ממשי בעולם ה-Arduino בשל אילוצי החומרה והשורשים ב-C++.

בתכנות Arduino, לעיתים קרובות תראה הוראות if-else לטיפול בשגיאות. אך ישנם חלופות: שימוש בפונקציה assert לעצירת הביצוע אם תנאי כלשהו נכשל או תכנון מנגנוני נכשול בתוך ההגדרה של החומרה עצמה.

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

ראה גם

התעמק בזיהוי שגיאות וטיפול בהן עם אלה:

זה אמור לתת לך את הידע והביטחון להימנע מהמלכודות של שגיאות ברפת של חוויות ה-Arduino שלך.