Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Arduino
120 min
Share

كيف تصنع بيانو باستخدام الأردوينو؟

البيانو الإلكتروني هو آلة موسيقية حديثة تعمل بالكهرباء وتستخدم التكنولوجيا الرقمية أو التناظرية لإنتاج الأصوات بدلاً من الأوتار التقليدية الموجودة في البيانو الكلاسيكي. يتميز البيانو الإلكتروني بقدرته على محاكاة أصوات البيانو التقليدي بالإضافة إلى مجموعة واسعة من النغمات والأصوات الموسيقية الأخرى.

Project Video

Overview

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

Getting the Items

Arduino Uno R3 (Voltaat Version)
Get Item
Push button Switch (5 Pack) - 12mm
Get Item
Passive Buzzer – 5V
Get Item
Full-size Breadboard
Get Item
Jumper Wires - Male to Male (40 Pack)
Get Item

Steps

Wiring it Up

قم بتوصيل الأسلاك بين الصفارة والمفاتيح ولوحة الأردوينو كما هو موضح في الصورة أدناه.

التوصيلات من الاردوينو الى لوحة التجارب  :

•  منفذ ال 5 فولت ← المنافذ الموجبة بلوحة التجارب

•  منفذ الجراوند ← المنافذ السالبة بلوحة التجارب

التوصيلات من الصفارة :

• الطرف الموجب للصفارة ← منفذ رقم 10 فى لوحة الاردوينو

• الطرف السالب للصفارة ← المنافذ السالبة بلوحة التجارب

التوصيلات من المفاتيح :

الطرف الأيمن من المفتاح الأول ← منفذ رقم 2 في لوحة الأردوينو

الطرف الأيسر من المفتاح الأول ← المنافذ السالبة في لوحة التجارب

الطرف الأيمن من المفتاح الثانى ← منفذ رقم 3 في لوحة الأردوينو

الطرف الأيسر من المفتاح الثانى ← المنافذ السالبة في لوحة التجارب

الطرف الأيمن من المفتاح الثالث ← منفذ رقم 4 في لوحة الأردوينو

الطرف الأيسر من المفتاح الثالث ← المنافذ السالبة في لوحة التجارب

الطرف الأيمن من المفتاح الرابع ← منفذ رقم 5 في لوحة الأردوينو

الطرف الأيسر من المفتاح الرابع ← المنافذ السالبة في لوحة التجارب

الطرف الأيمن من المفتاح الخامس ← منفذ رقم 6 في لوحة الأردوينو

الطرف الأيسر من المفتاح الخامس ← المنافذ السالبة في لوحة التجارب

الطرف الأيمن من المفتاح السادس ← منفذ رقم 7 في لوحة الأردوينو

الطرف الأيسر من المفتاح السادس ← المنافذ السالبة في لوحة التجارب

الطرف الأيمن من المفتاح السابع ← منفذ رقم 8 في لوحة الأردوينو

الطرف الأيسر من المفتاح السابع ← المنافذ السالبة في لوحة التجارب

الطرف الأيمن من المفتاح الثامن ← منفذ رقم 9 في لوحة الأردوينو

الطرف الأيسر من المفتاح الثامن ← المنافذ السالبة في لوحة التجارب

Coding

/*

‍Voltaat learn (http://learn.voltaat.com)

Tutorial: How_to_make_a_piano_using_Arduino!

Connections from the Arduino to the breadboard:

• Arduino 5v pin → breadboard 5v line

• Arduino GND pin → breadboard GND line

Connections from the buzzer:

• The positive terminal of the speaker → Pin 10 on the Arduino board

• The negative terminal of the speaker → Negative terminals on the breadboard

Connections from the switches:

• The right terminal of the first switch →  Arduino pin 2

• The left terminal of the first switch → Negative terminals on the breadboard

• The right terminal of the second switch → Arduino pin 3

• The left terminal of the second switch → Negative terminals on the breadboard

• The right terminal of the third switch → Arduino pin 4

• The left terminal of the third switch → Negative terminals on the breadboard

• The right terminal of the fourth switch → Arduino pin 5

• The left terminal of the fourth switch → Negative terminals on the breadboard

• The right terminal of the fifth switch → Arduino pin 6

• The left terminal of the fifth switch → Negative terminals on the breadboard

• The right terminal of the sixth switch → Arduino pin 7

• The left terminal of the sixth switch → Negative terminals on the breadboard

• The right terminal of the seventh switch → Arduino pin 8

• The left terminal of the seventh switch → Negative terminals on the breadboard

• The right terminal of the eighth switch → Arduino pin 9

• The left terminal of the eighth switch → Negative terminals on the breadboard

*/

// Define push button pins

const int buttonC = 2; // C4 (Do)

const int buttonD = 3; // D4 (Re)

const int buttonE = 4; // E4 (Mi)

const int buttonF = 5; // F4 (Fa)

const int buttonG = 6; // G4 (Sol)

const int buttonA = 7; // A4 (La)

const int buttonB = 8; // B4 (Si)

const int buttonC5 = 9; // C5 (Do, octave higher)

const int speakerPin = 10; // Speaker output pin

void setup() {

  // Set up button pins as input with pull-up resistors

  pinMode(buttonC, INPUT);

  pinMode(buttonD, INPUT);

  pinMode(buttonE, INPUT);

  pinMode(buttonF, INPUT);

  pinMode(buttonG, INPUT);

  pinMode(buttonA, INPUT);

  pinMode(buttonB, INPUT);

  pinMode(buttonC5, INPUT);

 

  digitalWrite(buttonC, HIGH);

  digitalWrite(buttonD, HIGH);

  digitalWrite(buttonE, HIGH);

  digitalWrite(buttonF, HIGH);

  digitalWrite(buttonG, HIGH);

  digitalWrite(buttonA, HIGH);

  digitalWrite(buttonB, HIGH);

  digitalWrite(buttonC5, HIGH);

 

  pinMode(speakerPin, OUTPUT); // Set speaker pin as output

}

void loop() {

  // Play notes corresponding to buttons

  if (digitalRead(buttonC) == LOW) {

    tone(speakerPin, 261); // C4 (Do)

  } else if (digitalRead(buttonD) == LOW) {

    tone(speakerPin, 294); // D4 (Re)

  } else if (digitalRead(buttonE) == LOW) {

    tone(speakerPin, 329); // E4 (Mi)

  } else if (digitalRead(buttonF) == LOW) {

    tone(speakerPin, 349); // F4 (Fa)

  } else if (digitalRead(buttonG) == LOW) {

    tone(speakerPin, 392); // G4 (Sol)

  } else if (digitalRead(buttonA) == LOW) {

    tone(speakerPin, 440); // A4 (La)

  } else if (digitalRead(buttonB) == LOW) {

    tone(speakerPin, 493); // B4 (Si)

  } else if (digitalRead(buttonC5) == LOW) {

    tone(speakerPin, 523); // C5 (Do, octave higher)

  } else {

    noTone(speakerPin); // Turn off the tone if no button is pressed

  }

}

Testing it Out

بعد رفع الكود البرمجي على لوحة الأردوينو، ستلاحظ أن الأردوينو يعزف نغمة مختلفة لكل زر يتم الضغط عليه، وبذلك يمكنك استخدامه لمقاطع موسيقية طويلة.

Resources

No items found.