Мазмұны:

Arduino фортепиано: 3 қадам
Arduino фортепиано: 3 қадам

Бейне: Arduino фортепиано: 3 қадам

Бейне: Arduino фортепиано: 3 қадам
Бейне: Amazing arduino project 2024, Шілде
Anonim
Ардуино фортепиано
Ардуино фортепиано

Бұл «фортепиано» нағыз фортепиано октавасын ойнай алады. Түймелерді басу фортепианодағы пернені басуды білдіреді. Дыбыс Piezo динамигі арқылы беріледі.

1 -қадам: материалдар

1. Ардуино Уно

2. USB сымы

3. 3 нан тақтасы

4. 8 түймелер

5. 8 100 Ом резисторы

6. «Пьезо» спикері

7. Көптеген ер сымдар (шамамен 20)

8. Пісіру үтігі

2 -қадам: Орнатуды жасаңыз

Орнатуды құрыңыз
Орнатуды құрыңыз

Әрқайсысына резистор қосатын және оларды жерге қосатын (Er сымдарын қолдана отырып) Arduino -да әр түрлі 8 түйреуішке кіретін 8 түйме жасаңыз.

Динамикті тағайындалған Arduino түйреуішіне, ал екінші жағын жерге қосыңыз. Сымдарды динамикке дәнекерлеу керек, ол құлап кетпейді. Динамикке дәнекерленген екі сымның бір -біріне тимейтініне көз жеткізіңіз.

3 -қадам: Кодексті құру

#анықтаңыз NOTE_B0 31 #анықтаңыз NOTE_C1 33 #анықтаңыз NOTE_CS1 35 #анықтаңыз NOTE_D1 37 #анықтаңыз NOTE_DS1 39 #анықтаңыз NOTE_E1 41 #define NOTE_F1 44 #анықтаңыз NOTE_FS1 46 #анықтаңыз NOTE_G1 49 #анықтаңыз NOTE_GS1 52 #анықтаңыз NOTE_B1 62 #анықтаңыз NOTE_C2 65 #анықтаңыз NOTE_CS2 69 #анықтаңыз NOTE_D2 73 #анықтаңыз NOTE_DS2 78 #анықтаңыз NOTE_E2 82 #анықтаңыз NOTE_F2 87 #анықтаңыз NOTE_FS2 93 #define NOTE_G2 98 #анықтаңыз NOTE_GS2 104 #Анықтаңыз 11 #анықтаңыз 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_GS3 208 #3fine NOTE_C4 262 #анықтау NOTE_CS4 277 #анықтау NOTE_D4 294 #анықтау NOTE_DS4 311 #анықтау NOTE_E4 330 #define NOTE_F4 349 #devetine NOTE_FS4 370 #define NOTE_G4 392 #devetine NOTE_GS4 415 NOT4ine444 #д 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 #анықтаңыз NOTE_A5888 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 #анықтаңыз NOTE_A7 3520 #анықтаңыз NOTE_AS7 NOT8 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 c2State = 0;

Түймелерге Arduino түйреуіштерін белгілеңіз. «cState, dState, eState және т. батырманың басылуын сақтайтын айнымалылар болып табылады. А 0 басылмағанын білдіреді, ал 1 басылғанын білдіреді.

void setup () {// бір рет іске қосу үшін орнату кодын осында қойыңыз: 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 басылғанын білдіреді.

if (cState == 1) {tone (piezoPin, 131); } else {noTone (piezoPin);} if (dState == 1) {tone (piezoPin, 147); } else {noTone (piezoPin);} if (eState == 1) {tone (piezoPin, 165); } else {noTone (piezoPin);} if (fState == 1) {tone (piezoPin, 175); } else {noTone (piezoPin);} if (gState == 1) {tone (piezoPin, 196); } else {noTone (piezoPin);} if (aState == 1) {tone (piezoPin, 220); } else {noTone (piezoPin);} if (bState == 1) {tone (piezoPin, 247); } else {noTone (piezoPin);} if (c2State == 1) {tone (piezoPin, 262); } басқа {noTone (piezoPin);}}

Егер түйме басылса, ол сервоға сертификатталған жиілікті ойнатуды айтады (ескерту). Функция

{noTone (piezoPin);} оларға ештеңе ойнату үшін түйме басылмайтынын айтады. Сондықтан түйме басылған сайын, ол белгіленген жазбаны ойнатады.

Ұсынылған: