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.