Სარჩევი:

არდუინოს პიანინო ღილაკზე გადამრთველებით: 3 ნაბიჯი
არდუინოს პიანინო ღილაკზე გადამრთველებით: 3 ნაბიჯი

ვიდეო: არდუინოს პიანინო ღილაკზე გადამრთველებით: 3 ნაბიჯი

ვიდეო: არდუინოს პიანინო ღილაკზე გადამრთველებით: 3 ნაბიჯი
ვიდეო: I Modified My Piano To Play Itself! (DIY Build) 2024, ივლისი
Anonim
არდუინოს ფორტეპიანო ღილაკზე გადამრთველებით
არდუინოს ფორტეპიანო ღილაკზე გადამრთველებით
არდუინოს პიანინო ღილაკზე გადამრთველებით
არდუინოს პიანინო ღილაკზე გადამრთველებით

შემქმნელი: Haotian Ye

მიმოხილვა

ეს არის საფორტეპიანო დაფა რვა ღილაკზე გადამრთველით, რომელიც საშუალებას გაძლევთ ითამაშოთ ერთი ოქტავა (Do Re Mi Fa So La Si Do) და ამ ერთი ოქტავით შეგიძლიათ სცადოთ თქვენთვის სასურველი სიმღერების დაკვრა. ამ პროექტისთვის არის რამდენიმე მნიშვნელოვანი ცოდნა, რომელიც უნდა იცოდეთ დაწყებამდე.

პირველ რიგში, ჩვენ უნდა ვიცოდეთ ფორტეპიანოს ძირითადი ნოტების სიხშირე.

სიხშირეები ჩამოთვლილია ქვემოთ:

Do - 261Hz

ხელახლა - 294Hz

Mi - 329Hz

Fa - 349Hz

ასე რომ - 392Hz

La - 440Hz

Si - 493 ჰც

გაკეთება - 523 ჰც

მეორე, მე გაჩვენებთ, თუ როგორ უნდა ავაშენოთ წრე იმ ნაწილების გამოყენებით, რომელთა ყიდვაც ლის ელექტრონული მაღაზიიდან არის შესაძლებელი. ბოლოს , მე წარმოგიდგენთ და ავუხსნი კოდს, რომელიც უნდა აიტვირთოს არდუინოს დაფაზე.

ნაწილები, რომლებიც დაგჭირდებათ:

Arduino Uno R3 (პროდუქტის ID: 10997)

USB A to B კაბელი M/M (პროდუქტის ID: 29861)

10K რეზისტორი * 8 (პროდუქტის ID: 91516)

Tack Switch სხვადასხვა ფერები * 8 (პროდუქტის ID: 3124, 31242, 31243, 31245, 31246)

მინი სპიკერი (პროდუქტის ID: 41680)

პურის დაფა (პროდუქტის ID: 106861)

Jumper Wires (პროდუქტის ID: 21801)

ნაბიჯი 1: ნაბიჯი 1: წრის შექმნა

ნაბიჯი 1: წრის შექმნა
ნაბიჯი 1: წრის შექმნა
ნაბიჯი 1: წრის შექმნა
ნაბიჯი 1: წრის შექმნა
ნაბიჯი 1: წრის შექმნა
ნაბიჯი 1: წრის შექმნა
ნაბიჯი 1: წრის შექმნა
ნაბიჯი 1: წრის შექმნა

პირველი, ჩასვით ღილაკზე ყველა ღილაკი და მინი დინამიკი პურის დაფაზე სათითაოდ და დაალაგეთ ისინი ერთ რიგში. შემდეგ დააკავშირეთ თითოეული ღილაკის ამომრთველების ქინძისთავები მიწასთან. მეორე დააკავშირეთ 10k რეზისტორები პოზიტიურ სიმძლავრესა და თითოეული ღილაკის გადამრთველის სხვა ბუდეებს შორის. და დააკავშირეთ ეს სვეტი არდუინოს დაფაზე 2-9 ქინძისთავებთან. ასევე, დაუკავშირეთ მიწას მიწასთან დაკავშირებულ პინს და დადებითი სიმძლავრე 3.3 ვ პინს არდუინოზე. დაბოლოს, შეუერთეთ მინი სპიკერი Arduino– ს პინ 10 – ს.

ნაბიჯი 2: ნაბიჯი 2: კოდი და ახსნა

ქვემოთ კოდი არის ის, რაც მე დავწერე

const int შავი = 2;

const int თეთრი = 3;

const int წითელი = 4;

const int მწვანე = 5;

const int ლურჯი = 6;

const int black2 = 7;

const int green2 = 8;

const int red2 = 9;

const int სპიკერი = 10; // დააკავშირეთ ყველა ღილაკზე გადამრთველი და დინამიკი arduino– ს სიგნალის პინებით

int სიხშირე = {262, 294, 330, 349, 392, 440, 493, 523}; // მასივი შეიცავს ერთი ოქტავის ყველა სიხშირეს

void setup () {

// განათავსეთ თქვენი დაყენების კოდი აქ, ერთხელ გასაშვებად:

pinMode (შავი, INPUT);

pinMode (თეთრი, INPUT);

pinMode (წითელი, INPUT);

pinMode (მწვანე, INPUT);

pinMode (ლურჯი, INPUT);

pinMode (შავი 2, INPUT);

pinMode (green2, INPUT);

pinMode (red2, INPUT);

pinMode (სპიკერი, OUTPUT);

ტონი (სპიკერი, 2000);

სერიული.დაწყება (9600);

}

ბათილი მარყუჟი () {

// განათავსეთ თქვენი მთავარი კოდი აქ განმეორებით გასაშვებად:

თუ (digitalRead (შავი) == LOW) // როდესაც დააჭირეთ ღილაკს "DO" ღილაკს

{ტონი (სპიკერი, სიხშირე [0], 50);

დაგვიანება (50);

noTone (სპიკერი);}

else if (digitalRead (თეთრი) == LOW) // როდესაც დააჭირეთ ღილაკს "RE" ღილაკს

{ტონი (სპიკერი, სიხშირე [1], 50);

დაგვიანება (50);

noTone (სპიკერი);}

else if (digitalRead (წითელი) == LOW) // როდესაც დააჭირეთ ღილაკს "MI" ღილაკს

{ტონი (სპიკერი, სიხშირე [2], 50);

დაგვიანება (50);

noTone (სპიკერი);}

else if (digitalRead (მწვანე) == LOW) // როდესაც დააჭირეთ ღილაკს "FA" ღილაკს

{ტონი (სპიკერი, სიხშირე [3], 50);

დაგვიანება (50);

noTone (სპიკერი);}

else if (digitalRead (ლურჯი) == LOW) // როდესაც დააჭირეთ ღილაკს "SO" ღილაკს

{ტონი (სპიკერი, სიხშირე [4], 50);

დაგვიანება (50);

noTone (სპიკერი);}

else if (digitalRead (შავი 2) == დაბალი) // როდესაც დააჭირეთ ღილაკს "LA" ღილაკს

{ტონი (სპიკერი, სიხშირე [5], 50);

დაგვიანება (50);

noTone (სპიკერი);}

else if (digitalRead (green2) == LOW) // როდესაც დააჭირეთ ღილაკს "SI" ღილაკს

{ტონი (სპიკერი, სიხშირე [6], 50);

დაგვიანება (50);

noTone (სპიკერი);}

else if (digitalRead (red2) == LOW) // როდესაც დააჭირეთ ღილაკს "DO" ღილაკს

{ტონი (სპიკერი, სიხშირე [7], 50);

დაგვიანება (50);

noTone (სპიკერი);}

სხვა // როდესაც არაფერს დააჭერთ

noTone (სპიკერი);

}

პირველ რიგში, ჩვენ უნდა გამოვაცხადოთ ღილაკზე ყველა გადამრთველი და დინამიკი, როგორც პინდი 2 -დან 10 -მდე არდუინოზე. თითოეული გადამრთველი წარმოადგენს ერთ ნოტს. შემდეგ გამოიყენეთ ერთი მასივი ყველა სიხშირის შიგნით ჩასასმელად. შემდეგი, თუ და სხვა განცხადება არის ის, რასაც მე ვიყენებ იმისთვის, რომ არდუინომ იცოდეს რომელი ღილაკის ღილაკს ვაჭერ.

დაბოლოს, დაუკავშირეთ თქვენი Arduino დაფა თქვენს კომპიუტერს ან ლეპტოპს USB A to B კაბელით. სანამ ატვირთავთ თქვენს კოდს, თქვენ ჯერ კიდევ უნდა ჩამოტვირთოთ Arduino პროგრამული უზრუნველყოფა და გააკეთოთ ნაგულისხმევი პარამეტრები. აირჩიეთ ინსტრუმენტები -> დაფა -> Arduino/Genuino Uno; შემდეგ ჩვენ უნდა შევარჩიოთ Arduino დაფასთან დაკავშირებული საკომუნიკაციო პორტი. აირჩიეთ ინსტრუმენტები -> პორტი, შემდეგ რომელი პორტის სახელი იქნება წარწერიანი "(Arduino/Genuino Uno)." შემდეგ, შეგიძლიათ ატვირთოთ კოდი Arduino დაფაზე.

გირჩევთ: