ממשיכים להגיע אליכם עד הבית!
משלוח חינם

תיאור קוד ניהול מצבים

ערכה: גלאי כניסות לחדר

למערכת שלנו יש שלושה מצבים:

רק התעוררתי ולא הוזן קוד - צבע כחול

הוזן קוד ועוד לא היו כניסות - צבע ירוק

היו כניסות - צבע אדום

 

מנהל המצבים מטפל בתאורה בצבע הנכון לפי המצב הנוכחי

 

נגדיר את הפינים של ה-LED

const int ledPin_R=A4;
const int ledPin_G=A3;
const int ledPin_B=A2;

ואז כדי להדליק בכחול (למשל) תהיה הפונקציה

void light_blue(){
  light_off();
  digitalWrite(ledPin_B, light_on_value);
}

כאשר

void light_off(){
  digitalWrite(ledPin_R, light_off_value);
  digitalWrite(ledPin_G, light_off_value);
  digitalWrite(ledPin_B, light_off_value);   
}

כלומר מכבים את כל הצבעים ואז מדליקים את זה שרוצים

את ההדלקה והכיבוי עושים בעזרת פרמטר נוסף:

const int light_on_value = LOW;
const int light_off_value = HIGH;

הסיבה היא שיש LED RGB שהרגל המשותפת היא החיובית, ואז צריך לשים בה את המתח הגבוה ואת הצבעים מדליקים ע"י הכנסת מתח נמוך לרגליים שלהם (כמו בקוד המודגם), אך יש גם LED RGB שבהם זה הפוך (כלומר הרגל המשותפת היא השלילית והדלקת צבע היא ע"י מתח גבוה).

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

<< מנהל גלאי תנועה קוד עזר לדיבוג >>

תגובות גולשים