מעגל מחולל אותות PWM של Arduino

נסה את הכלי שלנו לביטול בעיות





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

על ידיאנקיט נגי



מה זה PWM?

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

ותדירות ממלאת תפקיד חשוב מאוד ב- pwm, אשר חייב להיות גבוה מספיק כדי לייצר תפוקה יציבה



Pwm נעשה למטרות מגוונות כמו נהיגה במכשיר שעובד במתח נמוך או למטרות החלפה כמו ב- SMPS.

PWM באמצעות ARDUINO UNO

Pwm הוא גם אחד הגורמים שהופכים את ארדואינו ללוח פיתוח פשוט ביותר, שכן ניתן לעשות pwm על ידי הוספת קוד שורה אחד בלבד לתוכנית שלך. שים לב שקיימים סיכות דיגיטליות נפרדות ב- Arduino UNO עבור PWM, מה שאומר שסיכות אלה יכולות לספק פלט PWM.

ישנם בסך הכל 6 סיכות pwm זמינות ב- Arduino UNO שהן 3, 5, 6,9,10 ו- 11 מתוך 14 פינים דיגיטליים. שים לב שמספר סיכות ה- PWM משתנה מסוג אחד של לוח ארדואינו למשנהו.

כעת ישנן שתי דרכים בהן ניתן לבצע pwm על ידי arduino:

1. על ידי הקצאה ישירה של ערך אנלוגי לסיכת ה- pwm בין 0 ל -255.

מכיוון שסיכות דיגיטליות בארדואינו יכולות לספק מקסימום 5 וולט, כלומר 0 הערך האנלוגי שווה ל -0 וולט ו- 255 שווה ערך ל -5 וולט.

וכדי לבצע זאת עליך פשוט להוסיף את הקוד הזה לתוכנית שלך:

analogWrite (סיכת PWM לא, ערך בין 0 ל 255)

לדוגמא: analogWrite (10,64) // כתוב ערך אנלוגי 64 לסיכה pwm מספר 10.

עכשיו זה אומר :: (5/255) * 64 וולט = 1.25 וולט כלומר מחזור חובה של 25%.

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

שים לב שארדואינו מקבל קלט אנלוגי במונחי ערך בין 0 ל 1023 ששווה ל- 0 עד 5 וולט. אז כדי לבצע pwm על סיכה עליך להמיר את ערך הקלט הזה בשווי ערך למספר שבין 0 ל 255 וזה נקרא מיפוי בשפת הארדואינו.

יש לכך קוד פשוט:

y = מפה (x, 0,1023: 0,255) // כאשר x הוא משתנה הקלט

אחרי זה אתה יכול לבצע pwm על סיכה באמצעות:

analogWrite (סיכת PWM לא, y) // כתוב ערך ממופה שהתקבל לסיכה 10

דוגמה ל- PWM:

אנו הולכים ללמוד את שתי הטכניקות בעזרת דוגמה זו. בשביל זה אתה צריך:

1. פוטנציומטר
2. שתי נוריות
3. שני נגדים של 100 אוהם

בצע חיבורים כפי שמוצג בתרשים המעגל:

דיאגרמת מעגלים:

קוד:

int x// initialise variables
int y
void setup() {
pinMode(10,OUTPUT)//initialise pin 10 as output
pinMode(9,OUTPUT)//initialise pin 9 as output
pinMode(A0,INPUT)//initialise pin A0 as input from pot.
// put your setup code here, to run once:
}
void loop() {
analogWrite(9,125)// directly assigning value to pin 9 i.e. case1
x=analogRead(A0)// read values from potentiometer in terms of voltage
y= map(x,0,1023,0,255)// map those values from 0 to 255 // put your main code here, to run repeatedly:
analogWrite(10,y)// assigning value based on input from pot at pin A0 i.e. case 2
}

איך זה עובד

ניתן ללמוד מהעבודה הבסיסית של פרויקט מחולל האותות Arduino PWM מהפסקה הבאה

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




קודם: מעגל בקרת מנוע זרם גבוה באמצעות ארדואינו הבא: 2.4 GHz 10 ערוצים מתג שלט רחוק