في هذا المشروع سيتم إستخدام مستشعر كاشف الصوت للتحكم بإضاءة الـ LED فعند التصفق للمرة الأولى سيتم تشغيله و يتم إطفاءه بعد التصفيق مرة أخرى.
القطع المطلوبة:
الأدوات التي تحتاجها لهذا المشروع :
حساس الصوت Sound Detection Sensor
small size breadboard لوح تجارب صغير
سلاك توصيل ذكر/ذكر (Jumper Wires Male Male)
حساس كاشف الصوت Sound Detection Sensor
يمكنك من خلال كاشف الصوت الكشف عن الصوت مثل الكلام و التصفيق .و إعتمادا على هذا الصوت يمكنك التحكم بأي قطعة الكترونية مثل الضوء LED .
بالتأكيد سيتم إستخدام الميكروفون للكشف عن الصوت. ولكن الميكروفون وحده غير كاف لهذة الدائرة. وذلك لأن الميكروفون وحده، دون مكبر للصوت ، تنتج إشارات كهربائية صغيرة جدا. فعند توصيل إشارة الصوت الناتجة من الميكروفون مباشرة إلى مدخل الأردوينو، فإن لوحة الاردوينو لن تكون قادرة على الكشف عن أي إشارات ،لأنها صغيرة جدا.
لتكون قادر على الكشف عن الإشارات يجب أن تكون كبيرة بما يكفي، فيجب تضخيم الإشارة لتكون قابلة للإستخدام من قبل الاردوينو. لذا يجب علينا توصيل الميكروفون إلى مكبر للصوت (amplifier) ، فيتم تضخيم الاشارة ليتم الكشف عنها من قبل للأردوينو. اذا من أجل بناء هذة الدائرة نحن بحاجة إلى ميكروفون يتم توصيله إلى مكبر صوت (audio Amplifier) للحصول على إشارات مضخمة.
في هذا المشروع سيتم استخدام sounder detection module للكشف عن الصوت . في هذة اللوحة تم توصيل الميكروفون على مكبر للصوت (LM939 op amp) ، و ويمكنك ضبط نقطة التحديد (threshold) لمستوى الصوت عن طريق المقاومة المتغيرة (Potentiometer) ، فعد تجاوز الصوت هذة النقطة يتم إضاءة الضوء LED .
الصوة أدناه توضح التفاصيل للضوابط و المنافذ و المكونات الأساسية للوحة كاشف الصوت :
تصميم لوحة التجارب:
قم بتوصيل الدائرة كما هو موضح بالصورة التالية :
برمجة الأردوينو
قم برفع البرنامج التالي إلى متحكم الأردوينو:
int digPin = 2; int greencar = 13; void setup(){ Serial.begin(9600); pinMode(digPin, INPUT); pinMode(greencar, OUTPUT); } void loop(){ if (digitalRead(digPin)){ digitalWrite(greencar, HIGH); Serial.print("Sensore: "); Serial.println(digitalRead(digPin)); delay(1000); } if (digitalRead(greencar)){ if (digitalRead(digPin)){ digitalWrite(greencar, LOW); delay(1000); } } }
لمحة عن الكود:
اولا نقوم بقراءة مستشعر كاشف الصوت واذا تم الكشف عن صوت يتم تشغيل الـ LED
if (digitalRead(digPin)){ digitalWrite(greencar, HIGH); Serial.print("Sensore: "); Serial.println(digitalRead(digPin)); delay(1000); }
واذا تم الكشف عن صوت للمرة الثانية يتم التحقق ما اذا كان الـ LED في حالة التشغيل أو الإيقاف، فإذا كان في حالة التشغيل يتم إطفاءه :
if (digitalRead(greencar)){ if (digitalRead(digPin)){ digitalWrite(greencar, LOW); delay(1000); } }