دائرة مولد اللحن الموسيقي اردوينو

جرب أداة القضاء على المشاكل





يمكنك استخدام دائرة مولد النغمات الموسيقية الصغيرة من Arduino لتطبيق مفضل ، مثل صنع جرس باب مثير للاهتمام ، مثل بوق سيارة عكسي ، أو صندوق موسيقى لإهداء شخص ما ، أو لمجرد التسلية الشخصية.

الأجهزة مطلوبة

يتم تقديم الأجهزة المطلوبة للمشروع على النحو التالي:



  • لوحة اردوينو أو جينوينو
  • الجرس بيزو أو مكبر الصوت
  • أسلاك التوصيل

يتم تشغيل Arduino بمدخل مصدر طاقة 9 فولت و 500 مللي أمبير والذي يمكن أن يكون من أي محول SMPS AC قياسي إلى تيار مستمر ، أو يمكنك أيضًا تجربة شاحن هاتفك الخلوي لنفسه.

يمكن تكوين Pin # 8 من Arduino مباشرة مع السماعة التي يجب ألا تكون أعلى من 8 أوم ، و 1 واط.



لذا يتصل أحد أسلاك السماعة بالدبوس رقم 8 بلوحة Arduino وينتقل السلك الآخر إلى الخط السالب أو الخط الأرضي للوحة.

للإخراج المضخم

للحصول على صوت أعلى أو مضخم بشكل كبير ، يمكنك تكوين الدبوس رقم 8 بمرحلة تشغيل ترانزستور ، تتكون من ترانزستور TIP31 ، الذي يمكن توصيل قاعدته بـ pin8 عبر المقاوم 1K ، والباعث بالأرض والمجمع بأحد أسلاك مكبر الصوت ، السلك الآخر للسبكر يتصل الآن بالإمداد الإيجابي الذي هو مصدر 9 فولت (+).

هنا تأكد من أن السماعة مصنفة عند 8 أوم ولكن بقوة كهربائية أعلى بكثير ، قد تكون حوالي 5 واط لتوليد نغمة موسيقية مضخمة.

تم ترميز هذا المخطط للعب وإنشاء عدد كبير جدًا من العشوائية
الألحان بالتسلسل باستخدام مقياس خماسي
/*
Musician
Plays a (fairly) random tune until the program is stopped.
8-ohm speaker on digital pin 8.
//Copyright (c) 2012 Jeremy Fonte
//This code is released under the MIT license
//https://opensource.org/licenses/MIT
*/
int randomNote = 131
int randomDuration = 2
int noteStep = 1
int notes[15]
void setup() {
pinMode(8, OUTPUT)
notes[1] = 131
notes[2] = 147
notes[3] = 165
notes[4] = 196
notes[5] = 220
notes[6] = 262
notes[7] = 294
notes[8] = 330
notes[9] = 392
notes[10] = 440
notes[11] = 523
notes[12] = 587
notes[13] = 659
notes[14] = 784
notes[15] = 880
randomNote = random(1, 15)
}
void loop() {
noteStep = random(-3, 3)
randomNote = randomNote + noteStep
if(randomNote <1) {
randomNote = random(1, 15)
}
else if(randomNote > 15) {
randomNote = random(1, 15)
}
randomDuration = random(1, 8)
// to calculate the note duration, take one second
// divided by the note type.
//e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
int noteDuration = 1000/randomDuration
tone(8, notes[randomNote],noteDuration)
// to distinguish the notes, set a minimum time between them.
// the note's duration + 30% seems to work well:
int pauseBetweenNotes = noteDuration * 1.30
delay(pauseBetweenNotes)
// stop the tone playing:
noTone(8)
}

يظهر أدناه مخطط الاتصال لدائرة مولد النغمات الموسيقية المقترحة من Arduino:

دائرة مولد اللحن الموسيقي اردوينو

للاستماع المضخم عالي الطاقة ، يمكن ترقية نفس الإعداد باستخدام ترانزستور طاقة كما هو موضح في الشكل التالي:




زوج من: شرح 4 دوائر بسيطة لبنك الطاقة التالى: Arduino RGB المتدفقة المتتابعة دائرة الضوء