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

מנהל גלאי תנועה

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

גלאי התנועה הוא חיישן פשוט יחסית (מבחינת הארדואינו), אשר מכניס HIGH אם גילה תנועה ו-LOW אם לא גילה.

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

איך נעשה זאת?

נתחיל בהגדרת שני המצבים - יש גילוי ואין גילוי

#define MOTION_NONE       1
#define MOTION_DETECTED   2

וכן נגדיר את המשתנה שיכיל את המצב הנוכחי

byte currect_motion_state;

וניתן לו ערך ראשוני

  currect_motion_state=MOTION_NONE;

בלולאת הגילוי נבצע את הקוד הבא:

  if(digitalRead(motionPin) == HIGH){ // has motion detection
    debugln("motion");
    if(currect_motion_state == MOTION_NONE){ // started to detect motion
      currect_motion_state=MOTION_DETECTED;
      ret=true;
    }
  }

כלומר אם יש גילוי, נבדוק מה היה המצב עד עכשיו.

אם המצב עד עכשיו היה ללא גילוי, הרי שזה גילוי חדש ולכן נוציא ערך TRUE (וגם נשנה את המצב אל "יש גילוי")

  else { // no motion
    currect_motion_state=MOTION_NONE;    
  }

כמובן שאם אין גילוי, אז רק נקבע את המצב אל "אין גילוי"

 

 

<< גילוי עם חיישן מרחק תיאור קוד ניהול מצבים >>

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