- חומר נדרש
- עבודה של חיישן סאונד
- דיאגרמת מעגל חיישן קול
- תרשים מעגלי מזרקת מים מוזיקלית
- תכנות ארדואינו ננו למזרקה רוקדת
ישנם מספר מזרקות מים אשר מפזרים מים ללא תנאי עם כמה אפקטים מעניינים של תאורה. אז שוטטתי על תכנון מזרקת מים חדשנית שיכולה להגיב למוזיקה חיצונית ולפזר מים בהתאם למקצב המוסיקה. זה לא נשמע מעניין?
הרעיון הבסיסי של מזרקת מים זו של ארדואינו הוא לקחת קלט מכל מקור צליל חיצוני כמו נייד, אייפוד, מחשב וכו ', לדגום את הצליל ולפרק אותו לטווחי מתח שונים, ואז להשתמש ביציאה להפעלת ממסר שונים. השתמשנו לראשונה במודול חיישן קול מבוסס מיקרופון מעובה כדי לבצע את מקור הקול כדי לפצל את הצלילים לטווחי מתח שונים. ואז המתח יועבר למגבר-על כדי להשוות את רמת הקול עם מגבלה מסוימת. טווח המתח הגבוה יותר יתאים למתג ממסר ON שכולל מזרקת מים מוזיקלית הפועלת למקצבים ולמקצבים של השיר. אז הנה אנו בונים את המזרקה המוסיקלית הזו באמצעות ארדואינו וחיישן קול.
חומר נדרש
- ארדואינו ננו
- מודול חיישן סאונד
- מודול ממסר 12V
- משאבת DC
- נוריות LED
- חוטי חיבור
- לוח ורו או לוח לחם
עבודה של חיישן סאונד
מודול חיישן הצליל הוא לוח אלקטרוני פשוט המבוסס על מיקרופון אלקטרוני המשמש לחישת סאונד חיצוני מהסביבה. הוא מבוסס על מגבר הספק LM393 ומיקרופון אלקטרוט, בעזרתו ניתן לזהות אם יש צליל מעבר לגבול הסף שנקבע. פלט המודול הוא אות דיגיטלי המציין שהצליל גדול או פחות מהסף.
בעזרת הפוטנציומטר ניתן לכוונן את הרגישות של מודול החיישן. יציאת המודול היא HIGH / LOW כאשר מקור הקול נמוך / גבוה מהסף שהוגדר על ידי הפוטנציומטר. ניתן להשתמש באותו מודול חיישן קול גם למדידת רמת הצליל בדציבלים.
דיאגרמת מעגל חיישן קול
כידוע שבמודול חיישני קול, התקן הקלט הבסיסי הוא המיקרופון הממיר את אותות הקול לאותות חשמליים. אך מכיוון שפלט האות החשמלי של חיישן הקול הוא כל כך קטן בעוצמה שקשה מאוד לנתח, כך השתמשנו במעגל מגבר טרנזיסטור NPN שיגביר אותו ויזין את אות הפלט לקלט הלא-הפוך של ה- Op- מגבר כאן LM393 OPAMP משמש כמשווה המשווה את האות החשמלי מהמיקרופון ואת אות הייחוס שמגיע ממעגל מחלק המתח. אם אות הקלט גדול יותר מאות הפניה אז הפלט של ה- OPAMP יהיה גבוה ולהיפך.
אתה יכול לעקוב אחר קטעי מעגלי Op-amp כדי ללמוד עוד על פעולתו.
תרשים מעגלי מזרקת מים מוזיקלית
כפי שמוצג בתרשים מעגל המזרקה המוזיקלי לעיל, חיישן הקול מופעל באמצעות אספקת 3.3V של Arduino Nano וסיכת הפלט של מודול חיישן הקול מחוברת לסיכת הכניסה האנלוגית (A6) של Nano. אתה יכול להשתמש בכל אחד מהסיכות האנלוגיות, אך הקפד לשנות זאת בתוכנית. מודול הממסר ומשאבת ה- DC מופעלים על ידי ספק כוח חיצוני של 12 וולט DC, כפי שמוצג באיור. אות הכניסה של מודול הממסר מחובר לסיכת הפלט הדיגיטלית D10 של ננו. לאפקט תאורה בחרתי בשני צבעי LED שונים וחיברתי אותם לשני סיכות פלט דיגיטליות (D12, D11) של ננו.
כאן המשאבה מחוברת באופן שכאשר ניתן דופק HIGH לכניסה של מודול ממסר, מגע ה- COM של הממסר מתחבר למגע NO והזרם מקבל מסלול מעגל סגור לזרום על פני המשאבה להפעיל את זרימת המים. אחרת המשאבה תישאר כבויה. הפולסים HIGH / LOW נוצרים מארדואינו ננו בהתאם לקלט הקול.
לאחר הלחמת המעגל השלם על גבי לוח perfboard, זה ייראה להלן:
כאן השתמשנו בקופסת פלסטיק כמיכל מזרקה ומשאבת מיני 5V כדי לשמש כמזרקה, השתמשנו במשאבה זו בעבר ברובוט כיבוי אש:
תכנות ארדואינו ננו למזרקה רוקדת
התוכנית המלאה של פרויקט מזרקות מים זה של ארדואינו ניתנת בתחתית הדף. אבל הנה אני רק מסביר את זה על ידי חלקים להבנה טובה יותר:
החלק הראשון של התוכנית הוא להכריז על המשתנים הדרושים להקצאת מספרי סיכה שאנו הולכים להשתמש בבלוקים הבאים של התוכנית. לאחר מכן הגדירו REF קבוע עם ערך שהוא ערך הייחוס של מודול חיישן הקול. הערך המוקצה 700 הוא הערך המקביל בתים של האות החשמלי המוצא של חיישן הקול.
חיישן int = A6; int redled = 12; int ירוק = 11; משאבת int = 10; #define REF 700
בשנת התקנת חלל הפונקציה השתמשנו pinMode כדי להקצות את כיוון הנתונים קלט / פלט של הסיכות. כאן החיישן נלקח כ- INPUT וכל שאר המכשירים משמשים כ- OUTPUT.
התקנת ריק () { pinMode (חיישן, INPUT); pinMode (redled, OUTPUT); pinMode (ירוק, OUTPUT); pinMode (משאבה, OUTPUT); }
בתוך הלולאה האינסופית, נקראת פונקציית AnalogRead שמקריאה את קלט הערך האנלוגי מפין החיישן ומאחסנת אותו בערך חיישן_משתנה .
int sensor_value = analogRead (חיישן);
בחלק האחרון משמש לולאת if-else להשוואת האות האנלוגי קלט לערך הפניה. אם הוא גדול מההתייחסות, אז כל סיכות הפלט ניתנות לפלט HIGH כך שכל נוריות ה- LED והמשאבה מופעלות, אחרת הכל נשאר כבוי. כאן נתנו גם עיכוב של 70 אלפיות השנייה כדי להבדיל בין זמן ההפעלה / כיבוי של הממסר.
אם (sensor_value> REF) { digitalWrite (ירוק, HIGH); digitalWrite (redled, HIGH); digitalWrite (משאבה, HIGH); עיכוב (70); } אחר { digitalWrite (ירוק, LOW); digitalWrite (redled, LOW); digitalWrite (משאבה, LOW); עיכוב (70); }
כך עובדת מזרקת המים הנשלטת על ידי Arduino, קוד מלא עם סרטון עבודה מופיע להלן.