في هذا المشروع ، سنطور منشئ نغمات باستخدام Arduino Uno. سيكون لدينا أزرار متصلة بـ UNO وكل واحد منهم يولد شدة مختلفة للنغمة. تواتر النغمة التي تولدها UNO هو نفسه في كل داخلية. إنها شدة الصوت التي تتغير مع كل ضغطة. هذه هي أسهل طريقة لعمل البيانو باستخدام Arduino Uno. تحقق أيضًا من دائرة البيانو هذه.
يمكن زيادة النغمات حتى 20. وهذا يعطي أفضل اختلاف في النغمات وتغييرات أكثر سلاسة. يتم تغيير شدة النغمة بواسطة PWM (تعديل عرض النبض). يظهر مثال على PWM في الرسم البياني أدناه.
في PWM ، يكون تردد الإشارة أو الفترة الزمنية للإشارة (Ton + Toff) ثابتًا دائمًا. فقط نسبة TURN ON و TURN OFF تتغير. على سبيل المثال في الرسم البياني الثاني في الشكل أعلاه ، يكون وقت التشغيل 80٪ ووقت إيقاف التشغيل 20٪ من المدة الكاملة.
في الرسم البياني الثالث ، يكون وقت التشغيل 50٪ ووقت إيقاف التشغيل 50٪ من المدة الكاملة. لذلك في الحالة الأولى لدينا نسبة رسوم 80٪ وفي الحالة الثانية لدينا نسبة واجب 20٪.
مع هذا التغيير في نسبة العمل لدينا تغيير في Vrms (القيمة التربيعية لمتوسط الجذر للجهد) ، عندما يتم إعطاء هذا الجهد للجرس فإنه يصدر ضوضاء مختلفة كلما كان هناك تغيير في نسبة العمل.
سنقوم ببرمجة UNO لتوفير إشارة PWM لنسبة عمل مختلفة لكل زر. لذلك لدينا مولد نغمات في متناول اليد يولد نغمة مختلفة مع كل ضغطة زر.
المكونات مطلوبة
الأجهزة: Arduino Uno ، مزود الطاقة (5 فولت) ، مكثف 1000 uF ، مكثف 100 nF ، الجرس ، الأزرار (8 قطع).
البرنامج: AURDINO nightly or Atmel studio 6.2
مخطط الدائرة وشرح العمل
تظهر دائرة مولد النغمات في الرسم البياني أدناه.
لتصفية الضوضاء من مكثفات جهد الإمداد يتم وضعها عبر المحطات كما هو موضح في الرسم التخطيطي.
يمكن تحقيق PWM لـ Arduino Uno في أي من المسامير التي يرمز لها بـ "~" على لوحة PCB. هناك ست قنوات PWM في UNO. ومع ذلك ، لا يمكننا استخدام دبابيس PWM التي تم إنشاؤها عبر PINS 0-7 ، حيث يُفضل PINS لواجهة الأزرار.
هناك سبب لاختيار PINS 0-7 كمدخلات ، لأن PINS 0-7 يمثل PORTD للميكروكونترولر. لذلك في الحالة الأخيرة يمكننا أخذ BYTE الكامل لـ PORTD.
الآن للحصول على نسبة واجب مختلفة PWM ، سنستخدم الأمر التالي.
analogWrite (9 ، VALUE) ؛ |
من الحالة أعلاه ، يمكننا الحصول مباشرة على إشارة PWM عند الدبوس المقابل. المعلمة الأولى بين قوسين هي لاختيار رقم دبوس إشارة PWM. المعلمة الثانية هي كتابة نسبة الواجب.
يمكن تغيير قيمة PWM في Arduino Uno من 0 إلى 255. مع "0" من الأقل إلى "255" كأعلى. مع 255 كنسبة واجب ، سنحصل على 5 فولت في PIN9. إذا كانت نسبة الرسوم 125 ، فسنحصل على 2.5V في PIN9. سنقوم بتقسيم نسبة الواجب من 0-250 بين الأزرار الثمانية الموصولة في PORTD of UNO. أختار هنا 25 زيادة لكل زر ، لكنها من اختيارك.
مع ذلك سيكون لدينا إشارة PWM تتغير نسبة عملها مع كل زر. هذا يعطى للجرس ، لدينا مولد النغمات. يعمل هذا اردوينو مولد نبرة تستند مفسرة خطوة بخطوة في التعليمات البرمجية C أدناه.