Sisukord:

Arduino klaver: 3 sammu
Arduino klaver: 3 sammu

Video: Arduino klaver: 3 sammu

Video: Arduino klaver: 3 sammu
Video: КАК ПРОВЕРИТЬ ВСË ОБОРУДОВАНИЕ ПОСЛЕ УСТАНОВКИ MACOS 13 VENTURA? HACKINTOSH - ALEXEY BORONENKOV 2024, Juuli
Anonim
Arduino klaver
Arduino klaver

See "Klaver" on võimeline mängima tõelise klaveri oktavi. Nuppude vajutamine tähistab klaveri klahvivajutust. Heli edastatakse Piezo kõlari kaudu.

Samm: materjalid

1. Arduino Uno

2. USB juhe

3. 3 leivaplaati

4. 8 Nupud

5. 8 100 oomi takistid

6. "Piezo" kõlar

7. Paljud meeste juhtmed (umbes 20)

8. Jootekolb

Samm: looge häälestus

Koostage häälestus
Koostage häälestus

Ehitage 8 nuppu, millest igaüks läheb Arduino 8 erinevasse tihvti, lisades kummalegi takisti ja ühendades need maandusega (kasutades isast juhtmeid).

Ühendage kõlar määratud Arduino tihvtiga ja teine pool maandusega. Peate kõlari juhtmed jootma, et see maha ei kukuks. Veenduge, et kaks kõlari külge joodetud juhet ei puutuks üksteisega kokku.

Samm: koodi koostamine

#defineeri NOTE_B0 31 #define NOTE_C1 33 #defineeri NOTE_CS1 35 #defineeri NOTE_D1 37 #defineeri NOTE_DS1 39 #defineeri NOTE_E1 41 #defineeri NOTE_F1 44 #defineeri NOTE_FS1 46 #defineeri NOTE_G1 49 #defineeri NOTE_GS1 52 #definee NOTE_B1 62 #defini #defineeri NOTE_C3 131 #defineeri NOTE_CS3 139 #defineeri NOTE_D3 147 #defineeri NOTE_DS3 156 #defineeri NOTE_E3 165 #defineeri NOTE_F3 175 #defineeri NOTE_FS3 185 #defineeri NOTE_G3 196 #defineeri NOTE_GS3 208 #defineeri NOTE_A2 24 NOTE_C4 262 #defineeri NOTE_CS4 277 #defini #d efine NOTE_CS5 554 #defineeri NOTE_D5 587 #defineeri NOTE_DS5 622 #defineeri NOTE_E5 659 #defineeri NOTE_F5 698 #defineeri NOTE_FS5 740 #defineeri NOTE_G5 784 #defineeri NOTE_GS5 831 #defineeri NOTE_A5 880 #definee #definee 1109 #defineeri NOTE_D6 1175 #defineeri NOTE_DS6 1245 #defineeri NOTE_E6 1319 #defineeri NOTE_F6 1397 #defineeri NOTE_FS6 1480 #defineeri NOTE_G6 1568 #defineeri NOTE_GS6 1661 #defineeri NOTE_A6 1760 #defineeri NOTE_AS6 187 #186 # define NOTE_D7 2349 #defineeri NOTE_DS7 2489 #defineeri NOTE_E7 2637 #defineeri NOTE_F7 2794 #defineeri NOTE_FS7 2960 #defineeri NOTE_G7 3136 #defineeri NOTE_GS7 3322 #defineeri NOTE_A7 3520 #defineeri NOTE_AS7 3729 #definee 4699 #määratlege NOTE_DS8 4978

Need "#defines" peavad ütlema kõnelejale, milline sagedus millise noodi teeb

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 dStaat = 0; int eRiik = 0; int fState = 0; int gRiik = 0; int aState = 0; int bRiik = 0; int c2riik = 0;

Määrake nuppudele Arduino tihvtid. "cState, dState, eState jne;" on muutujad, mis salvestavad nupu vajutamise. A 0 tähendab, et seda ei vajutata, 1 tähendab, et seda vajutatakse.

void setup () {// pange oma seadistuskood siia, et seda korra käivitada: pinMode (10, OUTPUT); Seriaalne algus (9600); }

void loop () {// pange siia oma põhikood, et seda korduvalt käitada: cState = digitalRead (C); dState = digitalRead (D); eState = digitalRead (E); fState = digitalRead (F); gState = digitalRead (G); aStatus = digitalRead (A); bState = digitalRead (B); c2 riik = digitalRead (C2);

Nupu olek (kui seda vajutatakse või mitte) salvestatakse kaustadesse "cState, dState, eState jne;"

A 0 tähendab, et seda ei vajutata, 1 tähendab, et seda vajutatakse.

if (cState == 1) {toon (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); } muu {noTone (piezoPin);}}

Kui vajutate nuppu, ütleb see servole, et ta esitaks teatud sageduse (märkus). Funktsioon

{noTone (piezoPin);} ütleb neile, et kui nuppu ei vajutata, ei esitata midagi. Seetõttu mängib see alati, kui nuppu vajutatakse, oma määratud noodi.

Soovitan: