תוכן עניינים:

טיימרים של ארדואינו: 8 פרויקטים: 10 שלבים (עם תמונות)
טיימרים של ארדואינו: 8 פרויקטים: 10 שלבים (עם תמונות)

וִידֵאוֹ: טיימרים של ארדואינו: 8 פרויקטים: 10 שלבים (עם תמונות)

וִידֵאוֹ: טיימרים של ארדואינו: 8 פרויקטים: 10 שלבים (עם תמונות)
וִידֵאוֹ: פיתוח אפליקציות למתחילים - שיעור 1 - חלק 3 - המדמה 2024, נוֹבֶמבֶּר
Anonim
טיימרים של Arduino: 8 פרויקטים
טיימרים של Arduino: 8 פרויקטים

ה- Arduino Uno או Nano יכולים לייצר אותות דיגיטליים מדויקים על שישה סיכות ייעודיות באמצעות שלושת הטיימרים המובנים. הם דורשים רק כמה פקודות להתקנה ולא משתמשים במחזורי מעבד להפעלה!

השימוש בטיימרים יכול להיות מפחיד אם אתה מתחיל מתוך גליון הנתונים המלא של ATMEGA328, הכולל 90 עמודים המיועדים לתיאור שלהם! כמה פקודות Arduino מובנות כבר משתמשות בטיימרים, למשל מילי (), עיכוב (), צליל (), AnalogWrite () וספריית הסרו. אך כדי לנצל את מלוא העוצמה שלהם, יהיה עליך להגדיר אותם דרך הרשמים. אני משתף כאן כמה מאקרו ופונקציות כדי להפוך את זה לקל ושקוף יותר.

לאחר סקירה קצרה מאוד של טיימרים, עקוב אחר 8 פרויקטים מגניבים המסתמכים על יצירת אותות עם הטיימרים.

שלב 1: רכיבים נדרשים

רכיבים נדרשים
רכיבים נדרשים

כדי לבצע את כל 8 הפרויקטים תצטרך:

  • Uno Arduino או תואם
  • מגן אב טיפוס עם מיני פרוטבורד
  • 6 כבלי מגשר קרש
  • 6 מגשרים קרשים קצרים (הכינו את עצמכם מחוט חיבור ליבה מוצק בגודל 10 ס"מ)
  • 2 מוליכים תנין
  • 1 LED לבן 5 מ"מ
  • נגד 220 אוהם
  • נגד 10 קאוהם
  • פוטנציומטר 10 קאוהם
  • 2 קבלים קרמיים של 1muF
  • קבלים 10 אלקטרוליטיים אלקטרוליטיים
  • 2 דיודות, 1n4148 או דומה
  • 2 מנועי מיקרו סרוו SG90
  • רמקול 1 אוהם
  • 20 מ 'תיל אמייל דק (0.13 מ"מ)

שלב 2: סקירה כללית של טיימרים Arduino ליצירת אותות

טיימר 0 וטיימר 2 הם טיימרים של 8 סיביות, כלומר הם יכולים לספור בין 0 ל -255 לכל היותר. טיימר 1 הוא טיימר של 16 סיביות, כך שהוא יכול לספור עד 65535. לכל טיימר יש שני סיכות פלט קשורות: 6 ו -5 עבור טיימר 0, 9 ו -10 עבור טיימר 1, 11 ו -3 עבור טיימר 2. הטיימר מצטבר בכל מחזור שעון Arduino, או בקצב המופחת על ידי גורם קנה מידה מוקדם, שהוא 8, 64, 256 או 1024 (32 ו -128 מותרים גם בטיימר 2). הטיימרים נספרים מ- 0 ל- 'TOP' ולאחר מכן שוב (PWM מהיר) או כלפי מטה (PWM נכון שלב). הערך של 'TOP' קובע אפוא את התדירות. סיכות הפלט יכולות להגדיר, לאפס או להעיף את הערך של פנקס השוואת הפלט, כך שקובעות את מחזור העבודה. רק לטיימר 1 יש את היכולת להגדיר באופן עצמאי את התדירות ואת מחזורי ההפעלה עבור שני סיכות הפלט.

שלב 3: מהבהב LED

Image
Image
מהבהב LED
מהבהב LED
מהבהב LED
מהבהב LED

התדר הנמוך ביותר שניתן להגיע אליו עם טיימרים של 8 סיביות הוא 16MHz/(511*1024) = 30, 6Hz. אז כדי לגרום להבהב LED עם 1 הרץ, אנחנו צריכים טיימר 1, שיכול להגיע לתדרים קטנים פי 256, 0.12 הרץ.

חבר נורית עם האנודה שלה (רגל ארוכה) ל- pin9 וחבר את הקתודה שלה עם נגד 220 אוהם לאדמה. העלה את הקוד. הנורית מהבהבת במהירות של 1 הרץ עם מחזור עבודה של 50%. פונקציית הלולאה () ריקה: הטיימר מאתחל בעת ההתקנה () ואינו זקוק לתשומת לב נוספת.

שלב 4: דימר LED

Image
Image
דימר לד
דימר לד
דימר לד
דימר לד

אפנון רוחב הדופק הוא דרך יעילה לווסת את עוצמת הנורית. עם נהג מתאים, זוהי גם השיטה המועדפת לווסת את מהירותם של אלקטרומוטורים. מכיוון שהאות מופעל או 100% כבוי, לא מתבזבז כוח על התנגדות סדרתית. בעיקרון, זה כמו להבהב את הנורית מהר יותר ממה שהעין יכולה לעקוב אחריה. 50 הרץ הוא מספיק עקרוני, אך עדיין נראה שהוא מהבהב מעט וכאשר הנורית או העיניים נעות, עלול להיגרם "שובל" מעצבן ולא רציף. שימוש בגודל 64 מראש עם טיימר 8 סיביות מתקבל 16MHz/(64*256) = 977Hz, המתאים למטרה. אנו בוחרים טיימר 2, כך שטיימר 1 יישאר זמין עבור פונקציות אחרות, ואיננו מפריעים לפונקציית הזמן () של Arduino, שמשתמשת בטיימר 0.

בדוגמה זו מחזור העבודה, וכך העוצמה, מוסדר על ידי פוטנציומטר. ניתן לווסת LED שני באופן עצמאי עם אותו טיימר בסיכה 3.

שלב 5: ממיר דיגיטלי לאנלוגי (DAC)

Image
Image
ממיר דיגיטלי לאנלוגי (DAC)
ממיר דיגיטלי לאנלוגי (DAC)
ממיר דיגיטלי לאנלוגי (DAC)
ממיר דיגיטלי לאנלוגי (DAC)

ל- Arduino אין פלט אנלוגי אמיתי. חלק מהמודולים לוקחים מתח אנלוגי לוויסות פרמטר (ניגודיות תצוגה, סף זיהוי וכו '). עם רק קבלים ונגד אחד, ניתן להשתמש בטיימר 1 ליצירת מתח אנלוגי ברזולוציה של 5mV או יותר.

מסנן מעבר נמוך יכול 'למנות' את אות ה- PWM למתח אנלוגי. קבלים מחוברים באמצעות נגד לסיכת PWM. המאפיינים נקבעים על ידי תדר PWM וערכי הנגד והקבל. הרזולוציה של טיימרים של 8 סיביות תהיה 5V/256 = 20mV, לכן אנו בוחרים ב- Timer1 כדי לקבל רזולוציה של 10 סיביות. מעגל ה- RC הוא מסנן מעבר נמוך ממדרגה ראשונה ויהיה לו כמה אדוות. סולם הזמן של מעגל ה- RC צריך להיות גדול בהרבה מהתקופה של אות ה- PWM להפחתת האדוות. התקופה שאנו מקבלים לדיוק של 10 סיביות היא 1024/16MHz = 64mus. אם נשתמש בקבל 1muF ונגד 10kOhm, RC = 10ms. אדווה השיא לשיא היא לכל היותר 5V*0.5*T/(RC) = 16mV, מה שנחשב מספיק כאן.

שים לב של DAC זה יש עכבת תפוקה גבוהה מאוד (10kOhm), כך שהמתח יירד באופן משמעותי אם הוא ימשוך זרם. כדי להימנע מכך, ניתן לחבט אותו באופאמפ, או לבחור שילוב אחר של R ו- C, למשל 1kOhm עם 10muF.

בדוגמה, יציאת ה- DAC מנוהלת באמצעות פוטנציומטר. ניתן להפעיל ערוץ DAC עצמאי שני עם טיימר 1 על פין 10.

שלב 6: מטרונום

Image
Image
מטרונום
מטרונום
מטרונום
מטרונום

מטרונום עוזר לעקוב אחר הקצב בעת השמעת מוזיקה. בפולסים קצרים מאוד, ניתן להזין את פלט הטיימר של הארדואינו ישירות לרמקול, מה שיפיק קליקים ברורים. בעזרת פוטנציומטר ניתן לווסת את תדירות הפעימות מ -40 ל -208 פעימות לדקה, ב -39 שלבים. טיימר 1 נחוץ לצורך הדיוק הנדרש. הערך של 'TOP', הקובע את התדירות, משתנה בתוך פונקציית הלולאה (), וזה דורש תשומת לב! אתה רואה כאן שמצב WGM שונה מהדוגמאות האחרות שיש להן תדירות קבועה: מצב זה, עם TOP שהוגדר על ידי רשם OCR1A, כולל חיץ כפול ומגן מפני החמצת TOP וקבלת תקלה ארוכה. עם זאת, פירוש הדבר שנוכל להשתמש רק בסיכת פלט אחת.

שלב 7: ספקטרום קול

Image
Image
ספקטרום קול
ספקטרום קול
ספקטרום קול
ספקטרום קול

בני אדם יכולים לשמוע מעל 3 סדרי גודל של תדרי הקול, מ 20Hz עד 20kHz דוגמה זו מייצרת את כל הספקטרום עם פוטנציומטר. קבל של 10muF מוצב בין הרמקול לבין הארדואינו כדי לחסום את זרם ה- DC. טיימר 1 מייצר גל מרובע. מצב ייצור צורות הגל כאן הוא PWM תואם שלב. במצב זה, המונה מתחיל לספור לאחור כשהוא מגיע למעלה, מה שמוביל לפולסים שהממוצע שלהם קבוע, גם כאשר מחזור העבודה משתנה. עם זאת, זה גם מוביל לתקופה שהיא (כמעט) כפולה, וזה פשוט קורה שעם 8 טרום 8, טיימר 1 מכסה את כל הספקטרום הנשמע, ללא צורך בשינוי קנה מידה מוקדם. כמו כן, מכיוון שערכו של TOP משתנה תוך כדי תנועה, שימוש ב- OCR1A כמעלה מפחית תקלות.

שלב 8: מנועי סרוו

Image
Image
סרוו מוטורס
סרוו מוטורס
סרוו מוטורס
סרוו מוטורס

ישנן ספריות סרוו עוצמתיות, אך אם יש לך רק שני סרוויים לנהוג, אתה יכול לעשות זאת ישירות עם טיימר 1, ובכך להפחית את המעבד, את השימוש בזיכרון ולהימנע מהפרעות. סרוו SG90 הפופולרי לוקח אות של 50 הרץ, ואורך הדופק מקודד את המיקום. אידיאלי עבור טיימר 1. התדירות קבועה, כך שניתן להשתמש בשתי הפלטים על pin9 וסיכה 10 כדי לנווט את הסרווואים באופן עצמאי.

שלב 9: מכפיל מתח ומהפך

מכפיל מתח ומהפך
מכפיל מתח ומהפך
מכפיל מתח ומהפך
מכפיל מתח ומהפך
מכפיל מתח ומהפך
מכפיל מתח ומהפך

לפעמים הפרויקט שלך דורש מתח גבוה מ- 5V או מתח שלילי. זה עשוי להיות הפעלה של MOSFET, הפעלה של אלמנט פיזו, הפעלה של אופמפ או איפוס EEPROM. אם הציור הנוכחי מספיק קטן, עד ~ 5mA, משאבת טעינה עשויה להיות הפתרון הפשוט ביותר: רק 2 דיודות ושני קבלים המחוברים לאות דופק מטיימר מאפשרים להכפיל את ה- 5 Arduino ל- 10V. בפועל, יש 2 טיפות דיודה, כך שזה יהיה יותר כמו 8.6V בפועל עבור הכפיל, או -3.6V עבור המהפך.

תדירות הגל המרובע אמורה להספיק כדי לשאוב מספיק מטען דרך הדיודות. קבל של 1mUF מעביר שינוי של 5 מו ק כאשר המתח משתנה בין 0 ל -5 וולט, ולכן עבור זרם של 10mA, התדר חייב להיות לפחות 2 קילוהרץ. בפועל, עדיף תדירות גבוהה יותר, מכיוון שהיא מפחיתה את האדוות. כאשר טיימר 2 סופר מ 0 עד 255 ללא קנה מידה מוקדם, התדר הוא 62.5 קילוהרץ, מה שעובד היטב.

שלב 10: העברת חשמל אלחוטית

Image
Image
העברת חשמל אלחוטית
העברת חשמל אלחוטית
העברת חשמל אלחוטית
העברת חשמל אלחוטית

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

ראשית מכינים את הסלילים. השתמשתי בגליל נייר בקוטר 8.5 ס"מ ובחוט אמייל בקוטר 0.13 מ"מ ליצירת 2 סלילים: הראשונית עם 20 סיבובים, המשנית עם 50 סיבובים. ההשראה העצמית של סוג זה של סליל עם N פיתולים ורדיוס R הוא ~ 5muH * N^2 * R. אז עבור N = 20 ו- R = 0.0425 נותן L = 85muH, אשר אושר עם בודק הרכיבים. אנו מייצרים אות בתדר של 516kHz, וכתוצאה מכך עכבה של 2pi*f*L = 275Ohm. זה מספיק גבוה כדי שהארדואינו לא יכנס לזרם יתר.

כדי להפעיל את הסליל בצורה היעילה ביותר, נרצה להשתמש במקור AC אמיתי. יש טריק שאפשר לעשות: ניתן להריץ את שני הפלטים של טיימר בשלב הפוך, על ידי היפוך אחת היציאות. כדי להפוך אותו לדומה יותר לגל סינוס, אנו משתמשים ב- PWM הנכון שלב. בדרך זו, בין סיכה 9 ל- 10, המתח מתחלף בין שניהם 0V, סיכה 9 +5V, שניהם 0V, סיכה 10 +5V. האפקט מוצג בתמונה מתוך עקבות היקף (עם גודל 1024 מראש, להיקף הצעצוע הזה אין רוחב פס רב).

חבר את הסליל הראשי לפין 9 ו -10. חבר נורית לסליל המשני. כאשר הסליל המשני מתקרב לבסיס, נורית ה- LED נדלקת בבהירות.

מוּמלָץ: