()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.