جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
هذا "البيانو" قادر على العزف على أوكتاف البيانو الحقيقي. سيؤدي الضغط على الأزرار إلى الضغط على مفتاح في البيانو. سيتم نقل الصوت من خلال مكبر صوت بيزو.
الخطوة 1: المواد
1. اردوينو أونو
2. سلك USB
3. 3 ألواح توصيل
4. 8 أزرار انضغاطية
5. 8 100 أوم مقاومات
6. المتحدث "بيزو"
7. العديد من الأسلاك الذكور (حوالي 20)
8. لحام الحديد
الخطوة 2: بناء برنامج الإعداد
قم ببناء 8 أزرار مع إدخال كل منها في 8 دبابيس مختلفة في Arduino ، وإضافة المقاوم لكل منها ، وربطها بالأرض (باستخدام أسلاك الذكور).
قم بتوصيل السماعة بدبوس Arduino المحدد ، والجانب الآخر بالأرض. سيكون عليك لحام الأسلاك بالسماعة حتى لا تسقط. تأكد من أن السلكين الملحومين بمكبر الصوت لا يلمسان بعضهما البعض.
الخطوة الثالثة: بناء الكود
#define NOTE_B0 31 # حدد NOTE_C1 33 #define NOTE_CS1 35 #define NOTE_D1 37 #define NOTE_DS1 39 #define NOTE_E1 41 #define NOTE_F1 44 #define NOTE_FS1 46 #define NOTE_G1 49 #define NOTE_GS1 52 #defineef NOTE_A1 # 58 NOTE_B1 62 #define NOTE_C2 65 #define NOTE_CS2 69 #define NOTE_D2 73 #define NOTE_DS2 78 #define NOTE_E2 82 #define NOTE_F2 87 #define NOTE_FS2 93 #define NOTE_G2 98 #define NOTE_GS2 104 #define NOTE_efine NOTE_ 1102AS #define #define NOTE_C3 131 #define NOTE_CS3 139 #define NOTE_D3 147 #define NOTE_DS3 156 #define NOTE_E3 165 #define NOTE_F3 175 #define NOTE_FS3 185 #define NOTE_G3 196 #define NOTE_GS3 208 #define NOTE_A3 220 #define # NOTE_AS3 233 NOTE_C4 262 #define NOTE_CS4 277 #define NOTE_D4 294 #define NOTE_DS4 311 #define NOTE_E4 330 #define NOTE_F4 349 #define NOTE_FS4 370 #define NOTE_G4 392 #define NOTE_GS4 415 #define NOTE_Aef4 4404 NOTE_6 # NOTE4 #د efine NOTE_CS5 554 #define NOTE_D5 587 #define NOTE_DS5 622 #define NOTE_E5 659 #define NOTE_F5 698 #define NOTE_FS5 740 #define NOTE_G5 784 #define NOTE_GS5 831 #define NOTE_A5 880 #define NOTE_AS8 10 1109 #define NOTE_D6 1175 #define NOTE_DS6 1245 #define NOTE_E6 1319 #define NOTE_F6 1397 #define NOTE_FS6 1480 #define NOTE_G6 1568 #define NOTE_GS6 1661 #define NOTE_A6 1760 #define NOTE_AS6 1865 # NOTEdefine 1976 حدد NOTE_D7 2349 #define NOTE_DS7 2489 #define NOTE_E7 2637 #define NOTE_F7 2794 #define NOTE_FS7 2960 #define NOTE_G7 3136 #define NOTE_GS7 3322 #define NOTE_A7 3520 #define NOTE_AS7 3729 #define NOTE_B7 NOTE # 448 4699 # تعريف NOTE_DS8 4978
هذه "#defines" لإخبار المتحدث التردد الذي يقوم بعمل النوتة الموسيقية
const int C = 2 ؛ const int D = 3 ؛ const int E = 4 ؛ const int F = 5 ؛ const int G = 6 ؛ const int A = 7 ؛ const int B = 8 ؛ const int C2 = 9 ؛ const int piezoPin = 10 ؛ int cState = 0 ؛ int dState = 0 ؛ int eState = 0 ؛ int fState = 0 ؛ int gState = 0 ؛ int aState = 0 ؛ int bState = 0 ؛ int c2State = 0 ؛
عيّن دبابيس Arduino على الأزرار. "cState ، dState ، eState ، إلخ ؛" هي المتغيرات التي تحفظ ما إذا كان الزر مضغوطًا أم لا. يعني الرقم 0 أنه غير مضغوط ، ويعني الرقم 1 أنه مضغوط.
إعداد باطل () {// ضع كود الإعداد هنا ، للتشغيل مرة واحدة: pinMode (10، OUTPUT)؛ Serial.begin (9600) ؛ }
void loop () {// ضع الكود الرئيسي هنا ، للتشغيل بشكل متكرر: cState = digitalRead (C)؛ dState = digitalRead (D) ؛ eState = digitalRead (E) ؛ fState = digitalRead (F) ؛ gState = digitalRead (G) ؛ aState = digitalRead (A) ؛ bState = digitalRead (B) ؛ c2State = digitalRead (C2) ،
يتم حفظ حالة الزر (إذا تم الضغط عليه أم لا) في "cState ، dState ، eState ، إلخ ؛"
يعني الرقم 0 أنه غير مضغوط ، ويعني الرقم 1 أنه مضغوط.
إذا (cState == 1) {tone (piezoPin ، 131) ؛ } else {noTone (piezoPin) ؛} إذا (dState == 1) {tone (piezoPin ، 147) ؛ } else {noTone (piezoPin) ؛} إذا (eState == 1) {tone (piezoPin ، 165) ؛ } else {noTone (piezoPin) ؛} إذا (fState == 1) {tone (piezoPin ، 175) ؛ } else {noTone (piezoPin)؛} if (gState == 1) {tone (piezoPin، 196)؛ } else {noTone (piezoPin) ؛} إذا (aState == 1) {tone (piezoPin ، 220) ؛ } else {noTone (piezoPin) ؛} إذا (bState == 1) {tone (piezoPin ، 247) ؛ } else {noTone (piezoPin) ؛} إذا (c2State == 1) {tone (piezoPin ، 262) ؛ } else {noTone (piezoPin) ؛}}
إذا تم الضغط على زر ، فإنه يخبر المؤازرة بتشغيل تردد معين (ملاحظة). الوظيفة
{noTone (piezoPin)؛} يخبرهم أنه إذا لم يتم الضغط على الزر لتشغيل أي شيء. لذلك كلما تم الضغط على الزر ، سوف يقوم بتشغيل المذكرة المخصصة له.