Sisällysluettelo:

Arduino -piano: 3 vaihetta
Arduino -piano: 3 vaihetta

Video: Arduino -piano: 3 vaihetta

Video: Arduino -piano: 3 vaihetta
Video: Arduino Drum Sequencer: 8 tracks, 16 steps per measure, 8 measures per pattern 2024, Marraskuu
Anonim
Arduinon piano
Arduinon piano

Tämä "Piano" pystyy soittamaan oktaavin todellisesta pianosta. Painikkeiden painaminen edustaa näppäimen painamista pianossa. Ääni välitetään pietsokaiuttimen kautta.

Vaihe 1: Materiaalit

1. Arduino Uno

2. USB -johto

3. 3 leipälautaa

4. 8 Painikkeet

5. 8 100 ohmin vastukset

6. "Piezo" -kaiutin

7. Monet urosjohdot (noin 20)

8. Juotin

Vaihe 2: Rakenna asennus

Rakenna asennus
Rakenna asennus

Rakenna 8 painiketta, joista jokainen menee 8 eri nastaan Arduinossa, lisää vastus kuhunkin ja liitä ne maahan (urosjohtojen avulla).

Liitä kaiutin nimettyyn Arduino -nastaan ja toinen puoli maahan. Johdot on juotettava kaiuttimeen, jotta se ei putoa. Varmista, että kaiuttimeen juotetut kaksi johtoa eivät kosketa toisiaan.

Vaihe 3: Koodin luominen

#define NOTE_B0 31 #define NOTE_C1 33 #define NOTE_CS1 35 #define NOT NOTE_D1 37 #define NOTE_DS1 39 #define NOT NOT NOTE_B1 62 #define NOT NOTE_C2 65 #define NOT NOT #määrittele NOTE_C3 131 #määrittele NOTE_CS3 139 #määrittele NOTE_D3 147 #määritä NOTE_DS3 156 #määrittele NOTE_E3 165 #määritä NOTE_F3 175 #määritä EI NOTE_C4 262 #define NOT NOTE_CS4 277 #define NOT NOT #d efine NOTE_CS5 554 #define NOTE_D5 587 #define NOTE_DS5 622 #define NOTE_E5 659 #define NOTE_F5 698 #define NOTE_FS5 740 #define NOTE_G5 784 #define NOTE_GS5 831 #definise 1109 #määrittele NOTE_D6 1175 #määrittele NOTE_DS6 1245 #määrittele NOTE_E6 1319 #määrittele NOTE_F6 1397 #määrittele NOTE_FS6 1480 #määritä NOTE_G6 1568 #määrittele EIE_GS6 1661 #määritä NOTE_A6 1760 #määritä NOTE_AS6 187 # määritä NOTE_D7 2349 #define NOTE_DS7 2489 #define NOTE_E7 2637 #define NOTE_F7 2794 #define NOTE_FS7 2960 #define NOTE_G7 3136 #define NOTE_GS7 3322 #define NOTE_A7 3520 #define NOTE_AS7 3729 #define NOT #def 4699 #määrittele NOTE_DS8 4978

Näiden "#määrittelyjen" tarkoituksena on kertoa kaiuttimelle, mikä taajuus tekee minkäkin nuotin

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 c2tila = 0;

Nimeä Arduino -nastat painikkeisiin. "cState, dState, eState jne;" ovat muuttujia, jotka tallentavat painikkeen painamisen. 0 tarkoittaa, että sitä ei paineta, 1 tarkoittaa, että sitä painetaan.

void setup () {// laita asennuskoodi tähän, jotta se suoritetaan kerran: pinMode (10, OUTPUT); Sarja.alku (9600); }

void loop () {// laita pääkoodisi tänne toistettavaksi: cState = digitalRead (C); dState = digitalRead (D); eState = digitalRead (E); fState = digitalRead (F); gState = digitalRead (G); aState = digitalRead (A); bState = digitalRead (B); c2 Tila = digitalRead (C2);

Painikkeen tila (jos sitä painetaan tai ei) tallennetaan "cState, dState, eState, jne."

0 tarkoittaa, että sitä ei paineta, 1 tarkoittaa, että sitä painetaan.

if (cState == 1) {sävy (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);}}

Jos painiketta painetaan, se kehottaa servoa toistamaan tietyn taajuuden (huomautus). Toiminto

{noTone (piezoPin);} kertoo heille, että jos painiketta ei paineta toistaaksesi mitään. Siksi aina, kun painiketta painetaan, se soittaa sille määrätyn nuotin.

Suositeltava: