facebook pixel מדריך: פירוט שפת תכנות - טיפול מתקדם - ()pulseIn - www.4project.co.il
Main logo www.4project.co.il
כל הרכיבים לפרוייקט שלכם
עגלת קניות

העגלה ריקה

פירוט שפת תכנות - טיפול מתקדם - ()pulseIn


2024-11-24 14:09:05
פונקציית ()pulseIn מחכה לפולס על קו כלשהו. לדוגמה, אם ציינתם שאתם מחכים לפולס מסוג HIGH, פונקציית ()pulseIn תחכה שקו יעלה ל-HIGH, תתחיל שעון למדידת זמן, תחכה שהקו ירד ל-LOW ויפסיק את מדידת הזמן. הפונקציה תחזיר את אורך הפולס במיקרושניות (microSeconds) או 0 אם לא זוהה פולס מלא במשך הזמן שציינתם.

מדידת הזמן לא תמיד מדוייקת, במיוחד לפולסים קצרים. הפונקציה מסוגלת למדוד פולסים בין 10 מיקרו שניות ל-3 דקות.
שימו לב שאם אתם רוצים למדוד פולס שעולה ויורד ובזמן תחילת הפונקציה הקו כבר ב-HIGH, הפונקציה תחכה שהקו ירד ל-LOW ורק אז תחכה שהקו יעלה ל-HIGH כדי להתחיל את מדידת הזמן. פעולה זו אפשרית רק כשהפסיקות (interrupts) מאופשרות.

תחביר

קוד: בחר הכל
pulseIn(pin, value);
pulseIn(pin, value, timeout);

פרמטרים:
pin - הקו עליו תרצו לזהות פולס - מסוג int
value - סוג הפולס, HIGH לפולס עולה, LOW לפולס יורד
timeout (אופציונאלי) - מספר מיקרו שניות שהפונקציה תחכה להשלמת הפולס. הפונקציה תחזיר 0 אם לא זוהה פולס מלא במשך זמן זה. ברירת מחדל הוא שניה אחת - מסוג unsigned long

הפונקציה מחזירה את משך הפולס במיקרו שניות או 0 אם לא זוהה פולס מלא במשך ה-timeout שציינתם.

דוגמה

קוד: בחר הכל
int pin = 7;
unsigned long duration;

void setup()
{
  pinMode(pin, INPUT);
}

void loop()
{
  duration = pulseIn(pin, HIGH);
}



ראו גם:

פירוט שפת תכנות לסביבת Arduino


עמוד זה הוא תרגום של ()pulseIn לפי רישיון Creative Commons Attribution-ShareAlike 3.0.