Spisu treści:

Fortepian Arduino: 3 kroki
Fortepian Arduino: 3 kroki

Wideo: Fortepian Arduino: 3 kroki

Wideo: Fortepian Arduino: 3 kroki
Wideo: Робот на Arduino Nano #ардуино #роботы #электроника 2024, Listopad
Anonim
Fortepian Arduino
Fortepian Arduino

Ten „Fortepian” jest w stanie zagrać oktawę prawdziwego fortepianu. Naciskanie przycisków będzie reprezentować naciśnięcie klawisza na pianinie. Dźwięk będzie przekazywany przez głośnik Piezo.

Krok 1: Materiały

1. Arduino Uno

2. Przewód USB

3. 3 płytki chlebowe

4. 8 przycisków

5. 8 rezystorów 100 Ohm

6. Głośnik „piezoelektryczny”

7. Wiele męskich przewodów (około 20)

8. Lutownica

Krok 2: Zbuduj instalację

Zbuduj instalację
Zbuduj instalację

Zbuduj 8 przycisków, z których każdy wchodzi do 8 różnych pinów w Arduino, dodając do każdego rezystor i łącząc je z uziemieniem (za pomocą przewodów męskich).

Podłącz głośnik do wyznaczonego pinu Arduino, a drugą stronę do masy. Będziesz musiał przylutować przewody do głośnika, aby nie odpadł. Upewnij się, że dwa przewody przylutowane do głośnika nie stykają się ze sobą.

Krok 3: Konstruowanie kodu

#define UWAGA_B0 31#define UWAGA_C1 33 #define UWAGA_CS1 35 #define UWAGA_D1 37 #define UWAGA_DS1 39 #define UWAGA_E1 41 #define UWAGA_F1 44 #define UWAGA_FS1 46 #define UWAGA_G1 49 #define UWAGA_GS1 52 #define UWAGA_A1 55 #define UWAGA_AS1 58 NOTE_B1 62 #define NOTE_C2 65 #define NOTE_CS2 69 #define NOTE_D2 73 #define NOTE_DS2 78 #define NOTE_E2 82 #define NOTE_F2 87 #define NOTE_FS2 93 #define NOTE_G2 98 #define NOTE_GS2 104 #define NOTE_A2 110 #define NOTE_AS2 117 #define #define UWAGA_C3 131 #define UWAGA_CS3 139 #define UWAGA_D3 147 #define UWAGA_DS3 156 #define UWAGA_E3 165 #define UWAGA_F3 175 #define UWAGA_FS3 185 #define UWAGA_G3 196 #define UWAGA_GS3 208 #define UWAGA_A3 220 #B33 #define UWAGA_47AS3 2 UWAGA_C4 262 #define UWAGA_CS4 277 #define UWAGA_D4 294 #define UWAGA_DS4 311 #define UWAGA_E4 330 #define UWAGA_F4 349 #define UWAGA_FS4 370 #define UWAGA_G4 392 #define UWAGA_GS4 415 #define UWAGA_A4 440B #define UWAGA_94 #define NOTE_ 466 #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 #define NOTE_A5 880 #define UWAGA_AS5 932 #define_CS47B 1109 #define UWAGA_D6 1175 #define UWAGA_DS6 1245 #define UWAGA_E6 1319 #define UWAGA_F6 1397 #define UWAGA_FS6 1480 #define UWAGA_G6 1568 #define UWAGA_GS6 1661 #define UWAGA_A6 1760 #define UWAGA_AS6 1865 #define UWAGA_B6 19767 #define #define_define_ define_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 NOTE_B7 3951 #define NOTE_4435C8186 4699 #define NOTE_DS8 4978

Te „#definicje” mają informować mówiącego, która częstotliwość wydaje jaką nutę

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 stan c = 0; int dState = 0; int eState = 0; int fState = 0; int gState = 0; int aState= 0; intbSt= 0; int c2State= 0;

Wyznacz piny Arduino do przycisków. „cState, dState, eState itp.;” to zmienne, które zapisują, czy przycisk został naciśnięty. 0 oznacza, że nie jest wciśnięty, a 1 oznacza, że jest wciśnięty.

void setup() { // wstaw tutaj swój kod konfiguracyjny do jednorazowego uruchomienia: pinMode(10, OUTPUT); Serial.początek(9600); }

void loop() { // umieść tutaj swój główny kod, aby uruchamiał się wielokrotnie: cState = digitalRead(C); dState = odczyt cyfrowy (D); eState = digitalRead(E); fState = digitalRead(F); gState = digitalRead(G); aState= digitalRead(A); bState=Odczyt cyfrowy(B); c2State= digitalRead(C2);

Stan przycisku (czy jest wciśnięty, czy nie) jest zapisywany w „cState, dState, eState, itp;”

0 oznacza, że nie jest wciśnięty, a 1 oznacza, że jest wciśnięty.

if(cState ==1){ ton(piezoPin, 131); }else{noTone(piezoPin);} if(dState ==1){ ton(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){ ton(piezoPin, 196); }else{noTone(piezoPin);} if(aState ==1){ ton(piezoPin, 220); }else{noTone(piezoPin);} if(bState ==1){ ton(piezoPin, 247); }else{noTone(piezoPin);} if(c2State ==1){ ton(piezoPin, 262); }else{noTone(piezoPin);} }

Jeśli przycisk zostanie naciśnięty, każe serwo odtwarzać określoną częstotliwość (uwaga). Funkcja

{noTone(piezoPin);} mówi im, że jeśli przycisk nie zostanie naciśnięty, nic nie będzie odtwarzane. Dlatego za każdym razem, gdy przycisk zostanie wciśnięty, odtworzy wyznaczoną nutę.

Zalecana: