מנוע DC הוא המנוע הנפוץ ביותר בפרויקטים של רובוטיקה ואלקטרוניקה. לבקרת המהירות של מנוע DC יש לנו שיטות שונות, כמו שניתן לשלוט באופן אוטומטי על סמך הטמפרטורה, אך בפרויקט זה שיטת PWM תשמש לבקרת המהירות של מנוע DC. כאן בפרויקט זה של בקרת מהירות מוטורית של Arduino, ניתן לשלוט על המהירות על ידי סיבוב כפתור הפוטנציומטר.
אפנון רוחב הדופק:
מה זה PWM? PWM היא טכניקה על ידי שימוש אנו יכולים לשלוט על המתח או ההספק. כדי להבין את זה בפשטות רבה יותר, אם אתה מחיל 5 וולט לנהיגה במנוע אז המנוע ינוע במהירות מסוימת, עכשיו אם נפחית את המתח המופעל ב -2 אמצעים אנו מפעילים 3 וולט על המנוע אז גם מהירות המנוע יורדת. מושג זה משמש בפרויקט לבקרת המתח באמצעות PWM. הסברנו את PWM בפירוט במאמר זה. בדוק גם במעגל זה שבו PWM משמש לבקרת בהירות ה- LED: דימר LED 1 ואט.
% מחזור עבודה = (TON / (TON + TOFF)) * 100 איפה, T ON = זמן גבוה של הגל המרובע T OFF = זמן נמוך של הגל המרובע
כעת אם המתג באיור נסגר ברציפות לאורך תקופה מסוימת אז המנוע יופעל ברציפות במהלך אותה תקופה. אם המתג סגור למשך 8ms ונפתח למשך 2ms לאורך מחזור של 10ms, המנוע יופעל רק בזמן 8ms. כעת המסוף הממוצע לאורך תקופה של 10ms = הפעל זמן / (זמן הפעלה + זמן כיבוי), זה נקרא מחזור חובה והוא 80% (8 / (8 + 2)), כך הממוצע מתח המוצא יהיה 80% ממתח הסוללה. כעת העין האנושית אינה יכולה לראות כי המנוע פועל למשך 8ms ומבוטל למשך 2ms, כך שייראה כאילו מנוע DC מסתובב במהירות של 80%.
במקרה השני, המתג סגור למשך 5ms ונפתח למשך 5ms לאורך 10ms, כך שמתח המסוף הממוצע ביציאה יהיה 50% ממתח הסוללה. נניח אם מתח הסוללה הוא 5 וולט ומחזור החובה הוא 50% וכך מתח המסוף הממוצע יהיה 2.5 וולט.
במקרה השלישי מחזור העבודה הוא 20% ומתח המסוף הממוצע הוא 20% ממתח הסוללה.
השתמשנו ב- PWM עם Arduino ברבים מהפרויקטים שלנו:
- דימר LED מבוסס Arduino באמצעות PWM
- מאוורר מבוקר טמפרטורה באמצעות Arduino
- בקרת מנוע DC באמצעות Arduino
- בקרת מהירות מאוורר AC באמצעות Arduino ו- TRIAC
תוכל ללמוד עוד על PWM על ידי מעבר על פרויקטים שונים המבוססים על PWM.
חומר נדרש
- ארדואינו UNO
- מנוע DC
- טרנזיסטור 2N2222
- פוטנציומטר 100k אוהם
- קבלים 0.1uF
- קרש לחם
- חוטים קופצים
תרשים מעגל
תרשים המעגל לבקרת מהירות המנוע של Arduino DC באמצעות PWM מוצג להלן:
קוד והסבר
הקוד השלם לבקרת המנוע של Arduino DC באמצעות פוטנציומטר ניתן בסוף.
ב להלן קוד, יש לנו אותחל C1 ו- C2 משתנה ו A0 סיכה אנלוגי שהוקצו עבור פלט פוטנציומטר ו 12 th פין עבור "PWM".
int pwmPin = 12; סיר int = A0; int c1 = 0; int c2 = 0;
כעת, בקוד שלהלן, הגדרת סיכה A0 כקלט ו- 12 (שהוא סיכת PWM) כפלט.
הגדרת חלל () { pinMode (pwmPin, OUTPUT); // מצהיר על סיכה 12 כ pinMode פלט (pot, INPUT); // מצהיר על סיכה A0 כקלט }
כעת, במעגל הריק (), אנו קוראים את הערך האנלוגי (מ- A0) באמצעות analogRead (pot) ושומרים אותו למשתנה c2. לאחר מכן, גרע את ערך c2 מ- 1024 ושמור את התוצאה ב- c1. ואז הפוך את סיכת ה- PWM 12 של Arduino HIGH ואז לאחר עיכוב של ערך c1 הפוך את הסיכה LOW. שוב, לאחר עיכוב של ערך c2, הלולאה נמשכת.
הסיבה להפחתת ערך אנלוגי מ- 1024 היא, ה- Arduino Uno ADC הוא ברזולוציה של 10 סיביות (כך שערכי השלמים מ 0 - 2 ^ 10 = 1024 ערכים). המשמעות היא שהיא תמפה את מתח הכניסה בין 0 ל 5 וולט לערכים שלמים בין 0 ל 1024. אז אם נכפיל את קלט anlogValue ל (5/1024), אז נקבל את הערך הדיגיטלי של מתח הכניסה. למד כאן כיצד להשתמש בקלט ADC בארדואינו.
loop loop () { c2 = analogRead (pot); c1 = 1024-c2; digitalWrite (pwmPin, HIGH); // מגדיר סיכה 12 עיכוב גבוה מיקרו-שניות (c1); // ממתין ל- c1 uS ( זמן גבוה) digitalWrite (pwmPin, LOW); // מגדיר סיכה 12 עיכוב נמוך מיקרו-שניות (c2); // ממתין ל- c2 us (זמן נמוך) }
בקרת מהירות של מנוע DC באמצעות Arduino
במעגל זה, לשם בקרת מהירות מנוע DC, אנו משתמשים בפוטנציומטר 100K אוהם כדי לשנות את מחזור החובה של אות ה- PWM. פוטנציומטר אוהם 100K מחובר לסיכת הכניסה האנלוגית A0 של Arduino UNO ומנוע ה- DC מחובר לסיכה ה -12 של ה- Arduino (שהוא סיכת PWM). העבודה של תוכנית Arduino פשוטה מאוד מכיוון שהיא קוראת את המתח מהסיכה האנלוגית A0. המתח בסיכה אנלוגית משתנה באמצעות הפוטנציומטר. לאחר ביצוע חישוב הכרחי מחזור החובה מותאם לפיו.
לדוגמא, אם אנו מזינים ערך 256 לכניסה האנלוגית, אז זמן ה- HIGH יהיה 768ms (1024-256) והזמן LOW יהיה 256ms. לכן זה פשוט אומר שמחזור החובה הוא 75%. העיניים שלנו לא יכולות לראות תנודה בתדירות גבוהה כזו ונראה שהמנוע פועל ברציפות עם 75% מהמהירות. אז ככה נוכל לבצע בקרת מהירות מוטורית באמצעות Arduino.