בפרויקט זה נפתח מחולל טונים באמצעות Arduino Uno. יהיו לנו כפתורים המתממשקים עם ה- UNO וכל אחד מהם מייצר עוצמה שונה של הטון. תדר הטון שנוצר על ידי ה- UNO זהה בכל פנימי. עוצמת הצליל משתנה בכל לחיצה. זו אחת הדרכים הקלות ביותר להכין פסנתר עם Arduino Uno. בדוק גם את מעגל הפסנתר הזה.
ניתן להגדיל את הצלילים עד 20. זה נותן את השונות הטובה ביותר ושינויים חלקים בהרבה. עוצמת הטון משתנה על ידי PWM (Modulation Width Modulation). דוגמה ל- PWM מוצגת בתרשים למטה.
ב- PWM, תדירות האות או פרק הזמן של האות (Ton + Toff) תמיד קבועים. רק היחס בין כיבוי וזמן כיבוי משתנה. לדוגמא בגרף השני באיור לעיל, זמן ההפעלה הוא 80% וזמן הכיבוי הוא 20% מהמשך הזמן המלא.
בגרף השלישי, זמן הכיבוי הוא 50% וזמן הכיבוי הוא 50% משך הזמן המלא. כך שבמקרה הראשון יש לנו יחס חובה של 80% ובמקרה השני יש לנו יחס חובה של 20%.
בשינוי זה ביחס החובה יש לנו שינוי ב- Vrms (שורש ריבוע ממוצע של מתח), כאשר מתח זה ניתן לזמזם הוא משמיע רעש שונה בכל פעם שיש שינוי ביחס החובה.
אנו מתכנתים את ה- UNO לספק אות PWM ביחס חובה שונה לכל אחד מהכפתורים. אז יש לנו מחולל צלילים שמייצר טון שונה בכל לחיצה על הכפתור.
רכיבים נדרשים
חומרה: Arduino Uno, ספק כוח (5 וולט), קבל 1000 uF, קבל 100 nF, זמזם, כפתורים (8 יח ').
תוכנה: AURDINO nightly או Atmel studio 6.2
תרשים מעגל והסבר עבודה
המעגל למחולל הטון מוצג בתרשים להלן.
כדי לסנן את הרעש מקבלים מתח אספקה ממוקמים על גבי המסופים, כפי שמוצג בתרשים.
ה- PWM של Arduino Uno יכול להשיג בכל אחד מהסיכות המסומנות כ- ~ על לוח ה- PCB. ישנם שישה ערוצי PWM ב- UNO. עם זאת איננו יכולים להשתמש בסיכות PWM שהוקמו מעל ה- PINS 0-7, מכיוון שה- PINS עדיף על ממשק הכפתורים.
יש סיבה לבחירת PINS 0-7 כתשומות, מכיוון שה- PINS 0-7 מייצג את ה- PORTD של המיקרו-בקר. כך שבמקרה האחרון אנו יכולים לקחת את ה- BYTE המלא של PORTD.
עכשיו לקבלת יחס חובה אחר PWM, אנו נשתמש בפקודה הבאה.
analogWrite (9, VALUE); |
ממצב לעיל אנו יכולים לקבל ישירות את אות ה- PWM בסיכה המתאימה. הפרמטר הראשון בסוגריים הוא לבחירת מספר הסיכה של אות ה- PWM. הפרמטר השני הוא לכתיבת יחס חובה.
ניתן לשנות את ערך ה- PWM של Arduino Uno מ- 0 ל- 255. כאשר "0" הוא הנמוך ביותר ל- "255" כגבוה ביותר. עם 255 כיחס חובה נקבל 5 וולט ב- PIN9. אם יחס החובה נקבע כ 125 נקבל 2.5 וולט ב- PIN9. אנו הולכים לחלק את יחס החובה של 0-250 בין 8 כפתורים שמממשקים ב- PORTD של UNO. כאן אני בוחר 25 מדרגות לכל כפתור, אבל זה לבחירתך.
עם זה יהיה לנו אות PWM שיחס החובה שלו משתנה עם כל כפתור. זה ניתן לזמזם, יש לנו מחולל צלילים. עבודה של מחולל טונים מבוסס Arduino זה מוסברת שלב אחר שלב בקוד C המופיע להלן.