- المواد المطلوبة
- يعمل حساس الصوت
- مخطط دائرة حساس الصوت
- مخطط حلبة نافورة المياه الموسيقية
- برمجة اردوينو نانو للنافورة الراقصة
هناك العديد من نوافير المياه التي ترش الماء دون قيد أو شرط ببعض تأثيرات الإضاءة المثيرة للاهتمام. لذلك تجولت في تصميم نافورة مياه مبتكرة يمكنها الاستجابة للموسيقى الخارجية ورش المياه اعتمادًا على إيقاعات الموسيقى. ألا يبدو ذلك مثيرا للاهتمام؟
تتمثل الفكرة الأساسية لنافورة Arduino Water في أخذ مدخلات من أي مصدر صوت خارجي مثل الهاتف المحمول أو iPod أو الكمبيوتر الشخصي وما إلى ذلك ، وتجربة الصوت وتقسيمه إلى نطاقات جهد مختلفة ، ثم استخدام الإخراج لتشغيل مرحل مختلف. استخدمنا أولاً وحدة استشعار صوت مكثف تعتمد على الميكروفون للعمل على مصدر الصوت لتقسيم الأصوات إلى نطاقات جهد مختلفة. ثم سيتم تغذية الجهد إلى op-amp لمقارنة مستوى الصوت بحد معين. سيتوافق نطاق الجهد العالي مع مفتاح الترحيل ON الذي يشتمل على نافورة مياه موسيقية تعمل على دقات وإيقاعات الأغنية. نحن هنا نبني هذه النافورة الموسيقية باستخدام Arduino ومستشعر الصوت.
المواد المطلوبة
- اردوينو نانو
- وحدة استشعار الصوت
- وحدة ترحيل 12 فولت
- مضخة DC
- المصابيح
- توصيل الأسلاك
- لوحة Vero أو اللوح
يعمل حساس الصوت
وحدة مستشعر الصوت عبارة عن لوحة إلكترونية بسيطة تعتمد على ميكروفون كهربائي تستخدم لاستشعار الصوت الخارجي من البيئة. يعتمد على مضخم الطاقة LM393 وميكروفون كهربائي ، ويمكن استخدامه لاكتشاف ما إذا كان هناك أي صوت يتجاوز الحد المعين. خرج الوحدة عبارة عن إشارة رقمية تشير إلى أن الصوت أكبر أو أقل من الحد الأدنى.
يمكن استخدام مقياس الجهد لضبط حساسية وحدة المستشعر. يكون خرج الوحدة مرتفعًا / منخفضًا عندما يكون مصدر الصوت أقل / أعلى من العتبة التي يحددها مقياس الجهد. يمكن أيضًا استخدام وحدة مستشعر الصوت نفسها لقياس مستوى الصوت بالديسيبل.
مخطط دائرة حساس الصوت
كما نعلم أنه في وحدة مستشعر الصوت ، يكون جهاز الإدخال الأساسي هو الميكروفون الذي يحول الإشارات الصوتية إلى إشارات كهربائية. ولكن نظرًا لأن ناتج الإشارة الكهربائية لمستشعر الصوت صغير جدًا من حيث الحجم ويصعب جدًا تحليله ، فقد استخدمنا دائرة مضخم ترانزستور NPN والتي ستضخمها وتغذي إشارة الخرج إلى المدخلات غير المقلوبة لـ Op- أمبير. هنا يتم استخدام LM393 OPAMP كمقارن يقارن الإشارة الكهربائية من الميكروفون والإشارة المرجعية القادمة من دائرة مقسم الجهد. إذا كانت إشارة الإدخال أكبر من الإشارة المرجعية ، فسيكون خرج OPAMP مرتفعًا والعكس صحيح.
يمكنك متابعة أقسام دوائر Op-amp لمعرفة المزيد عن عملها.
مخطط حلبة نافورة المياه الموسيقية
كما هو موضح في الرسم التخطيطي لدائرة النافورة الموسيقية أعلاه ، يتم تشغيل مستشعر الصوت بمصدر طاقة 3.3 فولت من Arduino Nano ويتم توصيل دبوس الإخراج لوحدة مستشعر الصوت بدبوس الإدخال التناظري (A6) من Nano. يمكنك استخدام أي من الدبوس التمثيلي ، ولكن تأكد من تغيير ذلك في البرنامج. يتم تشغيل وحدة الترحيل ومضخة التيار المستمر بواسطة مصدر طاقة خارجي بقدرة 12 فولت تيار مستمر كما هو موضح في الشكل. إشارة الإدخال لوحدة الترحيل متصلة بدبوس الإخراج الرقمي D10 من Nano. لتأثير الإضاءة ، اخترت لونين مختلفين من LED وقمت بتوصيلهما بدبابيس إخراج رقمية (D12 ، D11) من Nano.
هنا يتم توصيل المضخة بطريقة أنه عندما يتم إعطاء نبضة عالية لمدخل وحدة الترحيل ، يتم توصيل جهة اتصال COM الخاصة بالمرحل بجهة اتصال NO ويحصل التيار على مسار دائرة مغلقة للتدفق عبر المضخة إلى تنشيط تدفق المياه. وإلا ستظل المضخة متوقفة عن التشغيل. يتم إنشاء نبضات HIGH / LOW من Arduino Nano اعتمادًا على إدخال الصوت.
بعد لحام الدائرة الكاملة على لوحة التحكم ، سيبدو كما يلي:
استخدمنا هنا صندوقًا بلاستيكيًا كحاوية نافورة ومضخة صغيرة 5 فولت لتعمل كنافورة ، استخدمنا هذه المضخة سابقًا في روبوت مكافحة الحرائق:
برمجة اردوينو نانو للنافورة الراقصة
يتم تقديم البرنامج الكامل لمشروع نافورة مياه Arduino في أسفل الصفحة. لكن هنا أنا فقط أشرح ذلك بالأجزاء من أجل فهم أفضل:
الجزء الأول من البرنامج هو الإعلان عن المتغيرات الضرورية لتعيين أرقام التعريف الشخصي التي سنستخدمها في الكتل التالية من البرنامج. ثم حدد REF ثابتًا بقيمة تمثل القيمة المرجعية لوحدة مستشعر الصوت. القيمة المخصصة 700 هي القيمة المكافئة للبايت للإشارة الكهربائية الناتجة من مستشعر الصوت.
مستشعر int = A6 ؛ redled int = 12 ؛ int greenled = 11 ؛ مضخة int = 10 ؛ #define REF 700
في وظيفة الإعداد الفارغ ، استخدمنا وظيفة pinMode لتعيين اتجاه بيانات INPUT / OUTPUT للدبابيس. هنا يتم أخذ المستشعر على أنه INPUT ويتم استخدام جميع الأجهزة الأخرى كمخرج.
إعداد باطل () { pinMode (sensor، INPUT)؛ pinMode (redled ، الإخراج) ؛ pinMode (أخضر ، الإخراج) ؛ pinMode (مضخة ، الإخراج) ؛ }
داخل الحلقة اللانهائية ، تسمى وظيفة analogRead التي تقرأ إدخال القيمة التناظرية من دبوس المستشعر وتخزنها في sensor_value متغير.
int sensor_value = analogRead (مستشعر) ؛
في الجزء الأخير ، يتم استخدام حلقة if-else لمقارنة إشارة الإدخال التناظرية مع القيمة المرجعية. إذا كان أكبر من المرجع ، فسيتم منح جميع دبابيس الإخراج ناتجًا عاليًا بحيث يتم تنشيط جميع مصابيح LED والمضخة ، وإلا فسيظل كل شيء مغلقًا. هنا قدمنا أيضًا تأخيرًا قدره 70 مللي ثانية لتمييز وقت تشغيل / إيقاف التتابع.
if (sensor_value> REF) { digitalWrite (greenled، HIGH) ؛ digitalWrite (أحمر ، عالي) ؛ digitalWrite (مضخة ، عالية) ؛ تأخير (70) ؛ } else { digitalWrite (greenled، LOW)؛ digitalWrite (أحمر ، منخفض) ؛ digitalWrite (مضخة ، منخفضة) ؛ تأخير (70) ؛ }
هذه هي الطريقة التي تعمل بها نافورة المياه التي يتم التحكم فيها من Arduino ، ويرد أدناه رمز كامل مع فيديو عملي.