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

פורום זה מכיל תרגום לעברית של מדריכים, דוגמאות קוד, פירוט שפת תכנות לכרטיסי Arduino וחומרים לימודיים אחרים מהאתר arduino.cc

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

הודעהעל ידי Alex » ד' יולי 26, 2017 1:42 pm

פונקציית ()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.
www.4project.co.il
כל הרכיבים לפרוייקט שלכם
סמל אישי של המשתמש
Alex
מנהל האתר
 
הודעות: 7890
הצטרף: ה' ינואר 28, 2010 8:27 pm

חזור אל תרגום מדריכים מהאתר arduino.cc

Jump box

מי מחובר

משתמשים הגולשים בפורום זה: CCBot [Bot], Google [Bot]