טיימרים הם תכונה חיונית של בקרי מיקרו, ומאפשרים לך לבצע משימות במרווחים מדויקים מבלי להסתמך על עיכובים. ל- Arduino UNO שלושה טיימרים מובנים חומרה (TIMER0, TIMER1 ו- TIMER2) שניתן להגדיר לפונקציות שונות כמו יצירת אותות PWM, אירועי תזמון או משימות תזמון. מדריך זה ינחה אותך באמצעות הבנה ושימוש בטיימרים של Arduino.
מה תצטרך
- Arduino uno (או לוח תואם)
- נגן LED ו- 220-OHM (לדוגמאות מבוססות תזמון)
- חוטי לחם וגשר
- Arduino IDE המותקן במחשב שלך
שלב 1: הבנת טיימרים של ארדואינו
לבקר המיקרו של Arduino UNO של Arduino UNO יש שלושה טיימרים לחומרה:
שָׁעוֹן עֶצֶר | רזולוציית סיביות | שימוש ראשוני |
---|---|---|
טיימר 0 | 8 סיביות | מיליס (), מיקרו (), PWM על סיכות 5, 6 |
טיימר 1 | 16 סיביות | ספריית סרוו, PWM על סיכות 9, 10 |
TIMER2 | 8 סיביות | פונקציה () פונקציה, PWM על סיכות 3, 11 |
מאפייני מפתח של טיימרים
- טיימרים יכולים לייצר אותות PWM.
- טיימרים יכולים להפעיל הפרעות.
- טיימרים משמשים באופן פנימי על ידי פונקציות ארדואינו כמו
delay()
וכןmillis()
.
שלב 2: יצירת אות PWM פשוט
אותות PWM (אפנון רוחב דופק) משמשים בדרך כלל לבקרת בהירות LED או מהירות המנוע. בואו נשתמש ב- Timer0 כדי ליצור אות PWM.
קוד דוגמה: בקרת בהירות LED עם PWM
שלב 3: שימוש בטיימרים עם הפרעות
באפשרותך להגדיר טיימרים להפעלת הפרעות בפרקי זמן קבועים. לדוגמה, ניתן להגדיר Timer1 כדי להחליף LED בכל שנייה.
קוד דוגמה: Timer1 הפרעה
שלב 4: מדידת זמן עם טיימרים
אתה יכול להשתמש בטיימרים כדי למדוד משך זמן מדויק. Timer2 מתאים למרווחים קטנים מכיוון שהוא טיימר של 8 סיביות.
קוד דוגמה: TIMER2 למדידת זמן
שלב 5: שימוש בספריות טיימר
כדי לפשט את העבודה עם טיימרים, אתה יכול להשתמש בספריות כמו טיימרון אוֹ Timerthere.
באמצעות ספריית Timerone
- התקן את ספריית Timerone ב- Arduino IDE.
- השתמש בו כדי לתזמן משימות בקלות:
יישומי טיימרים
- יצירת אותות PWM מדויקים לבקרת מנוע
- תזמון משימות ללא חסימת קוד (למשל, ריבוי משימות)
- מדידת מרווחי זמן לאירועים
- יצירת עיכובים מדויקים מבלי להשתמש
delay()
- ניהול פעולות תקופתיות כמו מהבהב נוריות LED או שליחת נתונים
פתרון בעיות
- סכסוכי טיימר: וודא שאתה לא משתמש באותו טיימר עבור פונקציות מרובות (למשל, ספריית סרוו ו- PWM).
-
הפרעות לא עובדות: בדוק שהפרעות מופעלות
interrupts()
. - התנהגות בלתי צפויה: בדוק כפול מראש והשווה ערכי התאמה לתזמון נכון.
מַסְקָנָה
למדת כיצד להשתמש בטיימרי Arduino כדי לייצר אותות PWM, טיפול בהפרעות וזמן מדידה. שליטה בטיימרים פותחת תכונות עוצמתיות ליצירת פרויקטים יעילים ומדויקים של ארדואינו. התנסו בתצורות שונות והחלו טיימרים כדי לייעל את הפרויקט הבא שלכם!