Мазмуну:

Arduino Piano: 3 кадам
Arduino Piano: 3 кадам

Video: Arduino Piano: 3 кадам

Video: Arduino Piano: 3 кадам
Video: ОГУРЕЧНОЕ ПИАНИНО | огуркофон? | электроогурцы? | собрал на arduino 2024, Ноябрь
Anonim
Ардуино пианино
Ардуино пианино

Бул "Фортепиано" чыныгы пианинонун октавасын ойной алат. Баскычтарды басуу фортепианодогу баскычты басууну билдирет. Үн Piezo колонкасы аркылуу өткөрүлөт.

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

1. Arduino Uno

2. USB зымы

3. 3 нан

4. 8 баскычтар

5. 8 100 Ом каршылыгы

6. "Пьезо" спикери

7. Көптөгөн Эркек Сымдар (Болжол менен 20)

8. Лайнер

2 -кадам: Орнотууну түзүңүз

Орнотууну түзүү
Орнотууну түзүү

Ардуинодо 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 #define NOTE_FS1 46 #define NOTE_G1 49 #аныктоо NOTE_GS1 52 #define NOTE_B1 62 #аныктоо NOTE_C2 65 #аныктоо NOTE_CS2 69 #аныктоо NOTE_D2 73 #аныктоо NOTE_DS2 78 #аныктоо NOTE_E2 82 #define NOTE_F2 87 #аныктоо NOTE_FS2 93 #define NOTE_G2 98 #аныктоо NOTE_GS2 104 #Notfine _2 #аныктоо NOTE_C3 131 #аныктоо NOTE_CS3 139 #аныктоо NOTE_D3 147 #аныктоо NOTE_DS3 156 #аныктоо NOTE_E3 165 #define NOTE_F3 175 #аныктоо NOTE_FS3 185 #define NOTE_G3 196 #аныктоо NOTE_GS3 208 #3fine NOTE_C4 262 #аныктоо NOTE_CS4 277 #аныктоо NOTE_D4 294 #аныктоо NOTE_DS4 311 #define NOTE_E4 330 #define NOTE_F4 349 #define NOTE_FS4 370 #define NOTE_G4 392 #define NOTE_GS4 415 Not4ine444 #д efine NOTE_CS5 554 #аныктоо NOTE_D5 587 #аныктоо 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_A588888 1109 #аныктоо NOTE_D6 1175 #аныктоо NOTE_DS6 1245 #аныктоо NOTE_E6 1319 #define NOTE_F6 1397 #define NOTE_FS6 1480 #define NOTE_G6 1568 #define NOTE_GS6 1661 #define NOTE_A6 1760 #NOTeine аныктоо 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 NOT8Define 378 4699

Бул "#аныктамалар" спикерге кайсы жыштык кайсы нотаны жасаарын айтууга тийиш

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) {тон (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) {tone (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);} аларга эч нерсе ойнотуу үчүн баскыч басылбаганын айтат. Ошондуктан, качан баскыч басылганда, ал өзүнүн жазуусун ойнотот.

Сунушталууда: