Სარჩევი:

არდუინოს ფორტეპიანო: 3 ნაბიჯი
არდუინოს ფორტეპიანო: 3 ნაბიჯი

ვიდეო: არდუინოს ფორტეპიანო: 3 ნაბიჯი

ვიდეო: არდუინოს ფორტეპიანო: 3 ნაბიჯი
ვიდეო: Arduino Tone Polyphony - Part 3 2024, ივლისი
Anonim
არდუინოს პიანინო
არდუინოს პიანინო

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

ნაბიჯი 1: მასალები

1. არდუინო უნო

2. USB მავთული

3. 3 პურის დაფა

4. 8 ღილაკი

5. 8 100 Ohm რეზისტორები

6. "პიეზო" სპიკერი

7. ბევრი მამრობითი მავთული (დაახლოებით 20)

8. შესადუღებელი რკინა

ნაბიჯი 2: შექმენით კონფიგურაცია

შექმენით კონფიგურაცია
შექმენით კონფიგურაცია

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

შეაერთეთ სპიკერი დანიშნულ Arduino პინთან, ხოლო მეორე მხარე მიწასთან. თქვენ მოგიწევთ მავთულის გამაგრება დინამიკზე ისე, რომ არ ჩამოვარდეს. დარწმუნდით, რომ ორი მავთული, რომლებიც გამაგრებულია დინამიკზე, არ შეეხოთ ერთმანეთს.

ნაბიჯი 3: კოდექსის შედგენა

#განსაზღვრეთ NOTE_B0 31 #განსაზღვრეთ NOTE_C1 33 #განსაზღვრეთ NOTE_CS1 35 #განსაზღვრეთ NOTE_D1 37 #განსაზღვრეთ NOTE_DS1 39 #განსაზღვრეთ NOTE_E1 41 #განსაზღვრეთ NOTE_F1 44 #განსაზღვრეთ NOTE_FS1 46 #განსაზღვრეთ NOTE_G1 49 #განსაზღვრეთ 55 #განსაზღვრეთ NOTE_B1 62 #განსაზღვრება NOTE_C2 65 #განსაზღვრეთ NOTE_CS2 69 #განსაზღვრეთ NOTE_D2 73 #განსაზღვრეთ NOTE_DS2 78 #განსაზღვრეთ NOTE_E2 82 #განსაზღვრეთ NOTE_F2 87 #განსაზღვრეთ NOTE_FS2 93 #deine #განსაზღვრეთ NOTE_C3 131 #განსაზღვრეთ NOTE_CS3 139 #განსაზღვრეთ NOTE_D3 147 #განსაზღვრეთ NOTE_DS3 156 #განსაზღვრეთ NOTE_E3 165 #განსაზღვრეთ NOTE_F3 175 #განსაზღვრეთ NOTE_FS3 185 #განსაზღვრეთ NOTE_G3 196 #განსაზღვრეთ NOTE_33 შენიშვნა_ჩინე #დ efine NOTE_CS5 554 #განსაზღვრეთ NOTE_D5 587 #განსაზღვრეთ NOTE_DS5 622 #განსაზღვრეთ NOTE_E5 659 #განსაზღვრეთ NOTE_F5 698 #განსაზღვრეთ NOTE_FS5 740 #განსაზღვრეთ NOTE_G5 784 #განსაზღვრეთ NOTE_GS5 831 #შეიყვანეთ 1109 #განსაზღვრეთ NOTE_D6 1175 #განსაზღვრეთ NOTE_DS6 1245 #განსაზღვრეთ NOTE_E6 1319 #განსაზღვრეთ NOTE_F6 1397 #განსაზღვრეთ NOTE_FS6 1480 #განსაზღვრეთ NOTE_G6 1568 #განსაზღვრეთ NOTE_GS6 1661 #განსაზღვრეთ NOTE_A6 1760 განსაზღვრეთ NOTE_D7 2349 #განსაზღვრეთ NOTE_DS7 2489 #განსაზღვრეთ NOTE_E7 2637 #განსაზღვრეთ NOTE_F7 2794 #განსაზღვრეთ NOTE_FS7 2960 #განსაზღვრეთ NOTE_G7 3136 #განსაზღვრეთ NOTE_GS7 3322 #განსაზღვრეთ 4699 #განსაზღვრეთ NOTE_DS8 4978

ეს "#განსაზღვრებები" არის მოსაუბრის მოსაუბრე, რომელი სიხშირე რომელ ნოტს აკეთებს

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 c2 სახელმწიფო = 0;

მიუთითეთ არდუინოს ქინძისთავები ღილაკებზე. "cState, dState, eState, etc;" არის ცვლადი, რომელიც ინახავს ღილაკზე დაჭერისას. 0 ნიშნავს, რომ ის არ არის დაჭერილი, 1 ნიშნავს, რომ ის დაჭერილია.

void setup () {// განათავსეთ თქვენი დაყენების კოდი აქ, ერთხელ გასაშვებად: pinMode (10, OUTPUT); სერიული.დაწყება (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, etc;"

0 ნიშნავს, რომ ის არ არის დაჭერილი, 1 ნიშნავს, რომ ის დაჭერილია.

if (cState == 1) {ტონი (piezoPin, 131); } else {noTone (piezoPin);} if (dState == 1) {ტონი (piezoPin, 147); } else {noTone (piezoPin);} if (eState == 1) {ტონი (piezoPin, 165); } else {noTone (piezoPin);} if (fState == 1) {ტონი (piezoPin, 175); } else {noTone (piezoPin);} if (gState == 1) {ტონი (piezoPin, 196); } else {noTone (piezoPin);} if (aState == 1) {ტონი (piezoPin, 220); } else {noTone (piezoPin);} if (bState == 1) {ტონი (piezoPin, 247); } else {noTone (piezoPin);} if (c2State == 1) {ტონი (piezoPin, 262); } სხვა {noTone (piezoPin);}}

თუ ღილაკს დააჭერთ, ის ეუბნება სერვოს, რომ დაუკრას სერტიფიცირებული სიხშირე (შენიშვნა). Ფუნქცია

{noTone (piezoPin);} ეუბნება მათ, რომ თუ ღილაკზე დაჭერილი არაფერია დაკვრა. ამიტომ, როდესაც ღილაკს დააჭერთ, ის დაუკრავს თავის დანიშნულ ნოტს.

გირჩევთ: