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

מזרקת ריקודים: ארדואינו עם מנתח ספקטרום MSGEQ7: 8 שלבים
מזרקת ריקודים: ארדואינו עם מנתח ספקטרום MSGEQ7: 8 שלבים

וִידֵאוֹ: מזרקת ריקודים: ארדואינו עם מנתח ספקטרום MSGEQ7: 8 שלבים

וִידֵאוֹ: מזרקת ריקודים: ארדואינו עם מנתח ספקטרום MSGEQ7: 8 שלבים
וִידֵאוֹ: Music dance of water part 1 2024, יולי
Anonim
מזרקת ריקודים: ארדואינו עם מנתח ספקטרום MSGEQ7
מזרקת ריקודים: ארדואינו עם מנתח ספקטרום MSGEQ7

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

שלב 1: מטרות הפרויקט

פרויקט זה ידון ב -3 אופני פעולה:

  1. נוריות מחוברות לסיכות דיגיטליות של PWM כדי להגיב להקות התדרים
  2. נוריות LED מחוברות לפינים דיגיטליים כדי להגיב לרצועות התדרים
  3. משאבות מחוברות ל- Arduino Mega דרך מנועי מנוע ומגיבות לרצועות התדרים

שלב 2: תיאוריה

תֵאוֹרִיָה
תֵאוֹרִיָה
תֵאוֹרִיָה
תֵאוֹרִיָה

אם אנחנו מדברים על ה- MSGEQ7 Spectrum Analyzer IC נוכל לומר שיש לו מסנני מעבר פנימיים של 7 פס המחלקים את אות האודיו הקלט לשבע להקות עיקריות: 63 הרץ, 160 הרץ, 400 הרץ, 1 קילוהרץ, 2.5 קילוהרץ, 6.25 קילוהרץ ו -16 kHz.

הפלט של כל מסנן נבחר להיות הפלט של ה- IC באמצעות מרבב. לאותו מרבב יש קווי סלקטור הנשלטים על ידי מונה בינארי פנימי. אז אנו יכולים לומר כי המונה צריך לספור מ 0 עד 6 (000 עד 110 בינארי) כדי לאפשר להקה אחת לעבור בכל פעם. זה מבהיר שהקוד של הארדואינו אמור להיות מסוגל לאפס את המונה ברגע שהוא מגיע לספירה 7.

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

שלב 3: נהלים

נהלים
נהלים

על פי דף המקור (https://www.baldengineer.com/msgeq7-simple-spectrum-analyzer.html) אנו יכולים לראות שקוד המקור עוסק ביציאות כאותות PWM שחוזרים על עצמם. אנו יכולים לשנות כמה מקווי הקוד כך שיתאימו למטרותינו.

אנו יכולים להבחין שאם יש לנו שקע סטריאו, נוכל להכפיל את נגד הכניסה והקבל לערוץ השני. אנו מפעילים את ה- MSGEQ7 מה- Arduino VCC (5 וולט) ו- GND. נחבר את ה- MSGEQ7 ללוח ה- Arduino. אני מעדיף להשתמש ב- Arduino Mega מכיוון שיש בו סיכות PWM המתאימות לפרויקט. הפלט של ה- MSGEQ7 IC מחובר לפין האנלוגי A0, ה- STROBE מחובר לסיכה 2 של ה- Arduino Mega וה- RESET מחובר לסיכה 3.

שלב 4: אופני פעולה: 1- נוריות כתפוקות דיגיטליות של PWM

אופני פעולה: 1- נוריות כתפוקות דיגיטליות של PWM
אופני פעולה: 1- נוריות כתפוקות דיגיטליות של PWM

על פי קוד המקור, אנו יכולים לחבר את נוריות הפלט לפינים 4 עד 10

const int LED_pins [7] = {4, 5, 6, 7, 8, 9, 10};

אז נוכל להבחין בנורות הריקודים על עוצמת כל רצועת תדרים.

שלב 5: אופני פעולה: 2 נוריות LED כפלט דיגיטלי

Image
Image
אופני פעולה: 3- משאבות כתפוקות דיגיטליות
אופני פעולה: 3- משאבות כתפוקות דיגיטליות

אנו יכולים לחבר את נוריות הפלט לכל סיכות דיגיטליות.

const int LED_pins [7] = {40, 42, 44, 46, 48, 50, 52};

אז נוכל להבחין בנורות הבהובים על עוצמת כל רצועת תדרים.

שלב 6: אופני פעולה: 3- משאבות כתפוקות דיגיטליות

אופני פעולה: 3- משאבות כתפוקות דיגיטליות
אופני פעולה: 3- משאבות כתפוקות דיגיטליות

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

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

אם נפעיל את הקוד כמקור גולמי, ייתכן שהמשאבות לא יפעלו כראוי. הסיבה לכך היא שאות ה- PWM נמוך ואינו יתאים לנהג המנוע להפעיל את המנועים או המשאבות ולספק זרם מתאים. לכן אני ממליץ להגדיל את ערך ה- PWM על ידי הכפלת הקריאות האנלוגיות מ- A0 עם גורם גדול מ -1.3. זה עוזר למיפוי להיות מתאים לנהג המנוע. אני ממליץ על 1.4 עד 1.6. כמו כן, אנו יכולים לשנות את ה- PWM ל -50 עד 255 כדי להיות בטוח שערך ה- PWM יהיה מתאים.

אנו יכולים לחבר את הנורות יחד עם הפלט עבור נהגי המנוע, אך נוריות ה- LED לא יהבהבו בצורה נראית טוב כמו בעבר, כאשר ערכי ה- PWM גדלו. אז אני מציע לשמור אותם מחוברים לפינים הדיגיטליים 40 עד 52.

שלב 7: אנשי קשר

כל כך שמח לשמוע ממך תגובות. אנא אל תהסס להצטרף לערוצים שלי ב:

YouTube:

אינסטגרם: @simplydigital010

טוויטר: @simply01Digital

מוּמלָץ: