בפרויקט זה אנו הולכים ליצור מעגל קלאפר באמצעות המושג ADC (אנלוגי להמרה דיגיטלית) ב- ARDUINO UNO. אנו הולכים להשתמש ב- MIC וב- Uno כדי לחוש את הצליל ולהפעיל תגובה. זה טפיחה על Clap מתג OFF בעצם מפעיל או מכבה את המכשיר, באמצעות צליל מחיאת כף, כמו מתג. בנינו בעבר את מתג ה- Clap ואת ה- Clap ON את ה- Clap OFF, באמצעות 555 IC טיימר.
בעת מחיאת כף יהיה אות שיא ב- MIC שהוא הרבה יותר גבוה מהרגיל, אות זה מוזן למגבר, אם כי מסנן High Pass. אות מתח מוגבר זה מועבר ל- ADC, הממיר מתח גבוה זה למספר. אז תהיה שיא בקריאת ה- ADC של ה- UNO. בזיהוי שיא זה נחליף נורית על הלוח, בכל מחיאת כף. פרויקט זה הוסבר בהרחבה בהמשך.
MIC או מיקרופון הוא מתמר חישת קול, שבעצם ממיר אנרגיית קול לאנרגיה חשמלית, כך שעם חיישן זה יש לנו צליל כמתח משתנה. בדרך כלל אנו מקליטים או חשים צליל דרך מכשיר זה. מתמר זה משמש בכל הטלפונים הניידים והמחשבים הניידים. מיקרופון טיפוסי נראה כמו,
קביעת הקוטביות של מיקרופון הקבל:
ל- MIC שני מסופים אחד חיובי ואחר שלילי. ניתן למצוא קוטביות מיקרופון באמצעות רב-מטר. קח את המבחן החיובי של רב-מטר (הכנס את המונה למצב בדיקת DIODE) וחבר אותו לטרמינל אחד של מיקרופון ולמבחן השלילי למסוף השני של מיקרופון. אם אתה מקבל את הקריאות על המסך אז מסוף החיובי (MIC) נמצא במסוף השלילי של Multi-Meter. או שאתה יכול פשוט למצוא את המסופים על ידי הסתכלות עליו, למסוף השלילי יש שניים או שלושה קווי הלחמה, המחוברים למארז המתכת של המיקרופון. קישוריות זו, ממסוף שלילי למארז המתכת שלה, ניתנת לבדיקה גם באמצעות בודק המשכיות, כדי לגלות את המסוף השלילי.
רכיבים נדרשים:
חומרה:
ARDUINO UNO, ספק כוח (5V), מיקרופון מעבה (מוסבר לעיל)
טרנזיסטור NPN 2N3904,
קבלים 100nF (2 חתיכות), קבל אחד 100uF,
נגד 1K Ω, נגד 1MΩ, נגד 15KΩ (2 חתיכות), נורית אחת,
ולוח לחצים וחוטי חיבור.
תוכנה: Arduino IDE - Arduino לילה.
תרשים מעגלים והסבר עבודה:
דיאגרמת המעגל של מעגל הענבל מוצג מתחת דמות:
חילקנו את העבודה לארבעה חלקים, כלומר: סינון, הגברה, המרה אנלוגית-דיגיטלית ותכנות להחלפת הנורית.
בכל פעם שיש קול, ה- MIC קולט אותו וממיר אותו למתח, ליניארי לגודל הצליל. אז עבור צליל גבוה יותר יש לנו ערך גבוה יותר ועבור צליל נמוך יותר יש לנו ערך נמוך יותר. ערך זה מוזן לראשונה למסנן High Pass עבור סינון. ואז ערך מסונן זה מוזן לטרנזיסטור לצורך הגברה והטרנזיסטור מספק את הפלט המוגבר בקולט. אות אספן זה מוזרם לערוץ ADC0 של ה- UNO, להמרה אנלוגית לדיגיטלית. ולבסוף ארדואינו מתוכנת להחליף את ה- LED, המחובר ב- PIN 7 של PORTD, בכל פעם שערוץ ADC A0 חורג מרמה מסוימת.
1. סינון:
קודם כל נדבר בקצרה על RC High Pass Filter, ששימש לסינון הרעשים. זה קל לתכנון ומורכב מנגד יחיד וקבל יחיד. עבור מעגל זה איננו זקוקים לפרטים רבים, ולכן נשמור על פשטותו. מסנן מעבר גבוה מאפשר אותות של תדר גבוה לעבור מקלט לפלט, במילים אחרות אות הקלט מופיע בפלט אם תדר האות גבוה מהתדר שנקבע למסנן. לעת עתה, עלינו לא לדאוג לערכים אלה מכיוון שכאן איננו מעצבים מגבר שמע. מסנן מעבר גבוה מוצג במעגל.
לאחר מסנן זה, אות מתח מועבר לטרנזיסטור לצורך הגברה.
2. הגברה:
המתח של MIC הוא נמוך מאוד ולא ניתן להזין אותו ל- UNO עבור ADC (אנלוגי להמרה דיגיטלית), לכן לשם כך אנו מתכננים מגבר פשוט באמצעות טרנזיסטור. כאן תכננו מגבר טרנזיסטור יחיד להגברת מתח ה- MIC. אות מתח מוגבר זה מוזרם עוד יותר לערוץ ADC0 של Arduino.
3. אנלוגי להמרה דיגיטלית:
ל- ARDUINO 6 ערוצי ADC. בין אלה, כל אחד מהם או כולם יכולים לשמש ככניסות למתח אנלוגי. ה- UNO ADC הוא ברזולוציה של 10 סיביות (כך שערכי המספר השלם מ- (0- (2 ^ 10) 1023)). פירוש הדבר שהוא ימפה את מתח הכניסה בין 0 ל -5 וולט לערכים שלמים בין 0 ל 1023. אז לכל (5/1024 = 4.9mV) ליחידה.
כעת, כדי ש- UNO ימיר אות אנלוגי לאות דיגיטלי, עלינו להשתמש בערוץ ADC של ARDUINO UNO, בעזרת הפונקציות הבאות:
1. AnalogRead (סיכה); 2. אנלוגי התייחסות ();
לערוצי UNO ADC יש ערך הפניה ברירת מחדל של 5V. זה אומר שאנחנו יכולים לתת מתח כניסה מרבי של 5V להמרת ADC בכל ערוץ קלט. מכיוון שחיישנים מסוימים מספקים מתח מ- 0-2.5 וולט, כך שעם הפניה של 5 וולט אנו מקבלים דיוק נמוך יותר, כך שיש לנו הוראות המאפשרות לנו לשנות את ערך הייחוס הזה. אז לשינוי ערך הייחוס יש לנו "analogReference ();"
במעגל שלנו, השארנו את מתח הייחוס לברירת המחדל, כך שנוכל לקרוא ערך מערוץ ADC 0, על ידי קריאה ישירה לפונקציה "analogRead (pin);", כאן "pin" מייצג את הפין שבו חיברנו את האות האנלוגי, ב במקרה זה זה יהיה "A0". ניתן לקחת את הערך מ- ADC למספר שלם כ- int sensorValue = analogRead (A0); ", לפי הוראה זו הערך מ- ADC נשמר במספר השלם" sensorValue ". כעת, יש לנו את ערך הטרנזיסטור בצורה דיגיטלית, בזיכרון של UNO.
4. תכנת את Arduino כדי להחליף את הנורית בכל מחיאת כף:
במקרים רגילים, ה- MIC מספק אותות נורמליים ולכן יש לנו ערכים דיגיטליים נורמליים ב- UNO, אך כשמחא כפיים שם פסגה שמספק ה- MIC, ובכך יש לנו ערך דיגיטלי שיא ב- UNO, אנו יכולים לתכנת את ה- UNO לעבור. נורית לדלוק וכיבוי בכל פעם שיש שיא. אז במחיאות כפיים ראשונות נורית הנורית דולקת ונשארת דולקת. במחיאה שנייה הנורית נכבית ונשארת כבויה עד למחוא הכף הבא. עם זה יש לנו את מעגל הקלאפר. בדוק את קוד התוכנית למטה.