תוכן עניינים:
- שלב 1: בחירת מיקרו -בקר
- שלב 2: הגדר מודול CCP
- שלב 3: הגדרת מודול Timer2 (רשום TMR2)
- שלב 4: הגדרת PR2 (רישום תקופות טיימר 2)
- שלב 5: הגדר את מודול CCPR1l
- שלב 6: כתוב את הסקיצה עליך MPLAB X IDE הקוד ניתן להלן
וִידֵאוֹ: צור גל PWM עם מיקרו -בקר PIC: 6 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:13
מהו PWM?
PWM עומד למודול רוחב הדופק היא טכניקה שבה רוחב הדופק משתנה.
כדי להבין מושג זה יש לשקול בבירור דופק שעון או כל אות גל מרובע שיש לו מחזור עבודה של 50% כלומר תקופת טון וטוף זהה, משך הזמן הכולל שלגביו האות היה גבוה והמשך שעבורו האות היה נמוך נקרא סך הכל תקופת זמן.
לתמונה המוצגת למעלה יש לגל זה מחזור עבודה של 50%
מחזור תפקיד = (זמן הפעלה / זמן כולל)*100
זמן ON - זמן שהאות שלו היה גבוה
זמן כבוי - זמן אויב אשר האות היה נמוך זמן כולל - סך כל זמן הדופק (זמן הפעלה וכיבוי)
שלב 1: בחירת מיקרו -בקר
בחירת מיקרו -בקר מתאים לפרויקט זהו החלק המהותי בפרויקט ניתן לייצר אותות PWM בבקרו -מיקרו עם ערוצי PWM (רשימות CCP). לפרויקט זה אני מתכנן להישאר עם pic16f877. תוכל להוריד את קישור גליון הנתונים המופיע להלן
גליון הנתונים של PIC16F877a לחץ כאן
מודול CCP אחראי לייצור אות PWM. CCP1 ו- CCP2 כפולים עם PORTC. PORTC הוא נמל דו כיווני רחב של 8 סיביות. רשם כיווני הנתונים המתאים הוא TRISC. הגדרת bit TRISC (= 1) תגרום לקחת את סיכת ה- PORTC המתאימה כקלט. ניקוי ביט TRISC (= 0) יהפוך את סיכת ה- PORTC המתאימה לפלט.
TRISC = 0; // ניקוי ביט זה יהפוך את PORTC לפלט
שלב 2: הגדר מודול CCP
מק ס - מודולים Capture/השוואה/PWM
כל מודול Capture/Compare/PWM (CCP) מכיל רישום של 16 סיביות שיכול לפעול כ:
• רשום לכידת 16 סיביות
• רשום השוואת 16 סיביות
• פנקס מחזורי Master/Slave Duty של PWM
קבע את תצורת CCP1CON למצב PWM
תיאור הרשמה
CCPxCON רישום זה משמש להגדרת מודול ה- CCP לאחסון Capture/Compare/PWM.
CCPRxL רישום זה מחזיק את סיביות 8 Msb של PWM, 2 סיביות תחתונות יהיו חלק מרשם CCPxCON.
TMR2 מונה ריצה חופשי אשר יושווה עם CCPR1L ו- PR2 ליצירת פלט PWM.
כעת אשתמש בינארי לייצג את הביטים להגדרת רשם CCP1CON.
עיין בתמונה למעלה.
CCP1CON = 0b00001111;
אתה יכול גם בפורמט hex
CCP1CON = 0x0F; // הגדרת רשום CCP1CON למצב PWM
שלב 3: הגדרת מודול Timer2 (רשום TMR2)
טיימר 2 הוא טיימר של 8 סיביות עם מכשיר קדם-מסר ומדריך פוסט-סקאלר. הוא יכול לשמש כבסיס הזמן של PWM עבור מצב ה- PWM של המודולים (ים). רשם TMR2 ניתן לקריאה ולכתיבה והוא נמחק בכל איפוס מכשיר.
רשום T2CON מוצג
הגודל הקדמי והקנה המידה יתאימו את תדירות הפלט של גל ה- PWM שנוצר.
תדירות = תדירות השעון/(4*מסדר טרום*(PR2-TMR2)*ספירת דואר*
איפה Tout = 1/תדירות
T2CON = 0b00000100;
זה ייצור 2.5 KHz @ 1Mhz או 100KHz @ 4MHz קריסטל (כמעט יש מגבלה לתדר PWM זה עיין בגיליון מסוים לפרטים נוספים)
ייצוג משושה
T2CON = 0x04; // הפעל את T2CON ללא תצורה מראש ותצורה לאחר קנה מידה
שלב 4: הגדרת PR2 (רישום תקופות טיימר 2)
למודול Timer2 יש רישום תקופות של 8 סיביות, PR2. טיימר 2 מגדיל מ- 00h עד שהוא תואם PR2 ולאחר מכן מתאפס ל -00h במחזור התוספת הבא. PR2 הוא מרשם קריא וניתן לכתיבה. רשם PR2 מאתחל ל- FFh עם האיפוס.
הגדרת טווח מתאים ל- PR2 תאפשר שימוש לשינוי מחזור ההפעלה של גל ה- PWM שנוצר
PR2 = 100; // הגדר את זמן המחזור ל -100 לשינוי מחזור העבודה בין 0-100
לשם הפשטות אני משתמש ב- PR2 = 100 על ידי יצירת CCPR1L = 80; ניתן להשיג מחזור עבודה של 80%.
שלב 5: הגדר את מודול CCPR1l
מכיוון שניתן להגדיר PR2 = 100 CCPR1l בכל מקום בין 0-100 כדי לקבל את מחזור העבודה הרצוי.
שלב 6: כתוב את הסקיצה עליך MPLAB X IDE הקוד ניתן להלן
#לִכלוֹל
עיכוב חלל (int a) // פונקציה ליצירת עיכוב {
עבור (int i = 0; i <a; i ++)
{
עבור (int j = 0; j <144; j ++);
}
}
void main ()
{TRISC = 0; // ניקוי ביט זה יהפוך את PORTC לפלט.
CCP1CON = 0x0F; // הגדרת רשום CCP1CON למצב PWM
T2CON = 0x04; // הפעל את T2CON ללא תצורה מראש ותצורה לאחר קנה מידה.
PR2 = 100; // הגדר את זמן המחזור ל -100 לשינוי מחזור העבודה בין 0-100
בעוד (1) {
CCPR1L = 75; // הפיק 75% עיכוב במחזור העבודה (1);
}
}
עשיתי גם שינוי קטן בקוד כך שהתדירות של גל PWM שנוצר
זהו קוד המדומה בפרוטוס וגל PWM הפלט מוצג להלן כדי להעלות זאת על לוחות הפיתוח של התמונות שלך השתמש ב- #include עם פיסות תצורה מתאימות.
תודה
מוּמלָץ:
מיקרו: בוט - מיקרו: ביט: 20 שלבים
מיקרו: בוט - מיקרו: ביט: בנה לעצמך מיקרו: בוט! זהו רובוט נשלט מיקרו: ביט עם סונר מובנה לנהיגה אוטונומית, או אם יש לכם שני מיקרו: ביטים, נהיגה מבוקרת ברדיו
מיקרו: ביט - מכונת תוף מיקרו: 10 שלבים (עם תמונות)
מיקרו: ביט - מכונת תוף מיקרו: זוהי מכונת תוף מיקרו: ביט, שבמקום רק לייצר את הצליל, תופים למעשה. הוא כבד בהשראת הארנבים מהתזמורת המיקרו: ביט. לקח לי זמן למצוא כמה סולנואידים שקל להשתמש בהם עם המוקרו: ביט
צור בוחן מרחק אולטרסאונד עם מיקרו: ביט: 6 שלבים
הכינו בודק מרחק אולטרא סאונד בעזרת מיקרו: ביט: היום אנו הולכים להכין בודק מרחק קולי עם מודול חיישן מיקרו: ביט וקולי
ממשק PIR Senor עם מיקרו -מפעיל Pic: 5 שלבים
ממשק PIR Senor עם מיקרו -בקר Pic: ממשק חיישן PIR עם מיקרו -בקר pic ומדריך צעד אחר צעד
צור מיקרו מגניב: קצת רחף ביחד: 6 שלבים (עם תמונות)
צור מיקרו מגניב: קצת רחף ביחד: לרוב המכוניות שיצרנו יכולות לרוץ רק על פני הקרקע. היום אנו הולכים ליצור רחפת, שפועלת הן במים והן על הקרקע, או אפילו באוויר. אנו משתמשים בשני מנועים כדי לנשוף אוויר מתחת לתמיכה ברחפת