- חומרים נדרשים:
- תרשים מעגל:
- באמצעות שיטת רגרסיה לחישוב dB מערך ADC:
- תוכנית Arduino למדידת רמת הצליל ב- dB:
- עבודה של מד רמת קול של Arduino:
- מגבר עם מעגל פילטרים:
זיהום הרעשים באמת התחיל לקבל חשיבות בגלל צפיפות אוכלוסין גבוהה. אוזן אנושית רגילה יכולה לשמוע רמות קול בין 0dB ל- 140dB בהן רמות קול מ -120dB ל -140dB נחשבות לרעש. רמות עוצמה או צליל נמדדות בדרך כלל בדציבלים (dB), יש לנו כמה מכשירים שיכולים למדוד את אותות הקול ב- dB אך מטרים אלה הם מעט יקרים ולצערנו אין לנו מודול חיישנים מחוץ לקופסה למדידת רמות קול בדציבלים. וזה לא חסכוני לרכוש מיקרופונים יקרים לפרויקט Arduino קטן שאמור למדוד את רמת הקול בכיתה קטנה או בסלון.
לכן בפרויקט זה נשתמש במיקרופון Electret Condenser עם Arduino וננסה למדוד את רמת זיהום הקול או הרעש ב- dB קרוב ככל האפשר לערך בפועל. נשתמש במעגל מגבר רגיל להגברת אותות הקול ולהזנתו לארדואינו בו נשתמש בשיטת רגרסיה לחישוב אותות הקול ב- dB. כדי לבדוק אם הערכים המתקבלים נכונים אנו יכולים להשתמש ביישום האנדרואיד "Sound Sound", אם יש לכם מד טוב יותר תוכלו להשתמש בו לצורך כיול. שים לב שפרויקט זה לא מכוון למדידת dB במדויק ופשוט ייתן ערכים קרובים ככל האפשר לערך בפועל.
חומרים נדרשים:
- ארדואינו UNO
- מִיקרוֹפוֹן
- LM386
- POT משתנה 10K
- נגדים וקבלים
תרשים מעגל:
המעגל עבור מד הרמת הצליל הזה של Arduino הוא פשוט מאוד שבו השתמשנו במעגל מגבר האודיו LM386 כדי להגביר את האותות ממיקרופון מעבה ולספק אותו ליציאה האנלוגית של Arduino. כבר השתמשנו ב- IC LM386 זה לבניית מעגל מגבר שמע במתח נמוך והמעגל נשאר פחות או יותר זהה.
ניתן להגדיר את הרווח של מגבר ה- OP המסוים הזה בין 20 ל 200 באמצעות נגד או קבלים על פני סיכה 1 ו- 8. אם הם נשארים חופשיים הרווח יוגדר כ -20 כברירת מחדל. עבור הפרויקט שלנו אנו מקבלים את הרווח המקסימלי האפשרי במעגל זה, לכן אנו משתמשים בקבל בעל ערך 10uF בין הפינים 1 ו- 8, שימו לב שסיכה זו רגישה לקוטביות ויש לחבר את הפין השלילי של הקבל לסיכה 8. המגבר השלם המעגל מופעל באמצעות סיכת 5V מהארדואינו.
הקבל C2 משמש לסינון רעש ה- DC מהמיקרופון. בעיקרון כאשר המיקרופון חש צליל גלי הקול יומרו לאותות AC. לאות AC זה עשוי להיות רעש DC משולב אליו אשר יסונן על ידי הקבל הזה. באופן דומה, גם לאחר הגברה נעשה שימוש בקבל C3 לסינון כל רעש DC שהיה עשוי להתווסף במהלך ההגברה.
באמצעות שיטת רגרסיה לחישוב dB מערך ADC:
ברגע שאנחנו מוכנים עם המעגל שלנו אנחנו יכולים לחבר את הארדואינו למחשב ולהעלות את התוכנית לדוגמא "Analog Read Serial" לדוגמא מארדואינו כדי לבדוק אם אנו מקבלים ערכי ADC תקפים מהמיקרופון שלנו. כעת עלינו להמיר את ערכי ה- ADC ל dB.
בניגוד לערכים אחרים כמו מדידת טמפרטורה או לחות, מדידת dB אינה משימה פשוטה. מכיוון שהערך של dB אינו ליניארי עם הערך של ADC. יש כמה דרכים בהן אתה יכול להגיע, אך כל צעד אפשרי שניסיתי לא השיג לי תוצאות טובות. אתה יכול לקרוא דרך פורום Arduino זה כאן אם אתה רוצה לנסות זאת.
ליישום שלי, לא הייתי זקוק לדיוק רב בעת מדידת ערכי ה- dB ולכן החלטתי להשתמש בדרך קלה יותר לכיול ישיר של ערכי ADC עם ערכי dB. לשיטה זו נצטרך מד SPL (מד SPL הוא מכשיר שיכול לקרוא ערכי dB ולהציגו), אך לצערי לא היה לי אחד ובטוח שלרובנו לא. אז נוכל להשתמש ביישום האנדרואיד שנקרא "מד סאונד" שניתן להוריד מחנות הפליי בחינם. יש הרבה סוגים כאלה של יישומים ותוכלו להוריד כל מה שתבחרו. יישומים אלה משתמשים במיקרופון המובנה של הטלפון כדי לזהות את רמת הרעש ולהציגו בנייד שלנו. הם לא מדויקים במיוחד, אך בוודאי יעבדו למשימה שלנו. אז נתחיל בהתקנת אפליקציית Android, שלי כשנפתחה נראתה ככה למטה
כפי שאמרתי קודם הקשר בין dB לערכים אנלוגיים לא יהיה ליניארי ולכן עלינו להשוות את שני הערכים הללו במרווחים שונים. רק שים לב לערך ה- ADC המוצג על המסך עבור dB שונה המוצג בטלפון הנייד שלך. לקחתי כ -10 קריאות והן נראו כך למטה, יתכן שתשתנה מעט
פתח דף Excel והקלד ערכים אלה, לעת עתה נשתמש ב- Excel כדי למצוא את ערכי הרגרסיה עבור המספר הנ"ל. לפני כן בואו נשרטט גרף ונבדוק איך שניהם קשורים אליו, שלי נראה כך למטה.
כפי שאנו רואים הערך של dB אינו קשור באופן ליניארי ל- ADC, כלומר לא יכול להיות לך מכפיל משותף לכל ערכי ADC כדי להשיג את ערכי ה- dB המקבילים לו. במקרה כזה אנו יכולים להשתמש בשיטת "רגרסיה לינארית". ביסודו של דבר, הוא ימיר את הקו הכחול הלא סדיר הזה לקו הישר הקרוב ביותר האפשרי (קו שחור) וייתן לנו את המשוואה של אותו קו ישר. ניתן להשתמש במשוואה זו כדי למצוא את הערך המקביל של dB לכל ערך של ADC שהארדואינו מודד.
ב- Excel יש לנו תוסף לניתוח נתונים אשר יחשב באופן אוטומטי את הרגרסיה עבור מערך הערכים שלך ויפרסם את הנתונים שלו. אני לא מתכוון לכסות איך לעשות את זה ב- Excel מכיוון שהוא מחוץ לתחום הפרויקט הזה, קל לך גם לחפש בגוגל וללמוד אותו. לאחר שתחשב את הרגרסיה של הערך, Excel יתן כמה ערכים כמו להלן. אנו מתעניינים רק במספרים שמודגשים להלן.
ברגע שתקבל את המספרים האלה תוכל ליצור את המשוואה הבאה
ADC = (11.003 * dB) - 83.2073
שממנו אתה יכול להפיק את ה- dB להיות
dB = (ADC + 83.2073) / 11.003
ייתכן שתצטרך לנהוג במשוואה משלך מכיוון שהכיול עשוי להיות שונה. עם זאת, שמור על ערך זה מאחר שנצטרך אותו בעת תכנות הארדואינו.
תוכנית Arduino למדידת רמת הצליל ב- dB:
התוכנית המלאה למדידת dB מובאת להלן, כמה שורות חשובות מוסברות להלן
בשתי השורות שלעיל, אנו קוראים את ערך ה- ADC של סיכה A0 וממיר אותו ל- dB באמצעות המשוואה שרק נגזרנו. ייתכן שערך dB זה לא מדייק לערך ה- dB האמיתי, אך נשאר די קרוב לערכים המוצגים ביישום הסלולרי.
adc = analogRead (MIC); // קרא את ערך ADC ממגבר dB = (adc + 83.2073) / 11.003; // להמיר ערך ADC ל- dB באמצעות ערכי רגרסיה
כדי לבדוק אם התוכנית פועלת כראוי, הוספנו גם נורית לסיכה הדיגיטלית 3 שגורמת לגבוהה למשך 1 שניה כאשר הארדואינו מודד רעש חזק של מעל 60dB.
אם (dB> 60) {digitalWrite (3, HIGH); // להדליק את הנורית (HIGH זה רמת המתח) עיכוב (1000); // המתן ל- DigitalWrite שני (3, LOW); }
עבודה של מד רמת קול של Arduino:
ברגע שאתה מוכן עם הקוד והחומרה, פשוט העלה את הקוד ופתח את המסך הטורי שלך כדי לבדוק את ערכי ה- dB הנמדדים על ידי הארדואינו שלך. בדקתי את הקוד הזה בחדר שלי שם לא היה הרבה רעש למעט התנועה בחוץ וקיבלתי את הערכים שלהלן על הצג הסדרתי שלי וגם יישום האנדרואיד הראה משהו קרוב לזה
את העבודה המלאה של הפרויקט ניתן למצוא בסרטון המופיע בסוף עמוד זה. אתה יכול להקרין איתור צלילים בחדר ולבדוק אם יש פעילות כלשהי או כמה רעש נוצר בכל כיתה או משהו כזה. הרגע עשיתי נורית LED שתעלה גבוה למשך 2 שניות אם יש צליל שהוקלט מעל 60dB.
העבודה משביעת רצון באופן מוזר, אך ניתן להשתמש בה בהחלט לפרויקטים ואבות טיפוס בסיסיים אחרים. עם כמה חפירות נוספות גיליתי שהבעיה היא למעשה בחומרה, שעדיין הרעישה לי מדי פעם. אז ניסיתי מעגלים אחרים המשמשים בלוחות המיקרופון מהנים הניצוץ שיש להם מסנן נמוך ומעבר גבוה. הסברתי לך את המעגל להלן.
מגבר עם מעגל פילטרים:
כאן השתמשנו במסנני Low Pass ו- High Pass עם מגבר כדי להפחית את הרעש במעגל המדידה של רמת הקול כך שניתן יהיה להגדיל את הדיוק.
במעגל זה לעיל השתמשנו במגבר LM358 הפופולרי להגברת האותות מהמיקרופון. יחד עם המגבר השתמשנו גם בשני פילטרים, מסנן המעבר הגבוה נוצר על ידי R5, C2 ומסנן המעבר הנמוך משמש את C1 ו- R2. מסננים אלה נועדו לאפשר תדר רק בין 8 הרץ ל -10 קילוהרץ, מכיוון שמסנן המעבר הנמוך יסנן כל מה שמתחת ל 8 הרץ ומסנן המעבר הגבוה יסנן כל דבר מעל 15 קילוהרץ. טווח תדרים זה נבחר מכיוון שהמיקרופון של הקבל שלי עובד רק מ 10 הרץ ל 15 KHz, כפי שמוצג בגיליון הנתונים שלמטה.
אם דרישת התדרים שלך משתנה, תוכל להשתמש בנוסחאות הבאות כדי לחשב את ערך הנגד והקבל עבור התדר הנדרש שלך.
תדר (F) = 1 / (2πRC)
כמו כן, שים לב שערך הנגד המשמש כאן ישפיע גם על רווח המגבר. חישוב ערך הנגד והקבל המשמש במעגל זה מוצג להלן. ניתן להוריד את גיליון ה- Excel מכאן לשינוי ערכי התדירות וחישוב ערכי הרגרסיה.
המעגל לשעבר עבד בצורה מספקת לציפיותיי, כך שמעולם לא ניסיתי את זה. אם במקרה אתה מנסה את המעגל הזה, הודע לי אם הוא פועל טוב יותר מהקודם באמצעות ההערות.