Sadržaj:

Arduino klavir: 3 koraka
Arduino klavir: 3 koraka

Video: Arduino klavir: 3 koraka

Video: Arduino klavir: 3 koraka
Video: Arduino Tone Polyphony - Part 3 2024, Srpanj
Anonim
Arduino klavir
Arduino klavir

Ovaj "Piano" može svirati oktavu pravog klavira. Pritisak tipki predstavlja pritiskanje tipke na klaviru. Zvuk će se prenositi putem Piezo zvučnika.

Korak 1: Materijali

1. Arduino Uno

2. USB žica

3. 3 matične ploče

4. 8 Tipke

5. 8 100 Ohm otpornika

6. Zvučnik "Piezo"

7. Mnogo muških žica (oko 20)

8. Lemilica

Korak 2: Izgradite instalaciju

Izgradite Setup
Izgradite Setup

Izgradite 8 gumba od kojih svaki ulazi u 8 različitih pinova u Arduinu, dodajući svakom otpornik i povezujući ga s masom (pomoću muških žica).

Spojite zvučnik na označeni Arduino pin, a drugu stranu na masu. Morat ćete lemiti žice na zvučniku kako ne bi otpao. Pazite da se dvije žice lemljene na zvučniku ne dodiruju.

Korak 3: Izrada Kodeksa

#define NOTE_B0 31 #define NOTE_C1 33 #define NOTE_CS1 35 #define NOTE_D1 37 #define NOTE_DS1 39 #define NOTE_E1 41 #define NOTE_F1 44 #define NOTE_FS1 46 #define NOTE_G1 49 #define_NEFE_DEFE_DEFE_DEFE_NEFE_DEFE_NEFE_DEFE_NEFE_DEFINES 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_de2 NOTE_de2 #define NOTE_C3 131 #define NOTE_CS3 139 #define NOTE_D3 147 #define NOTE_DS3 156 #define NOTE_E3 165 #define NOTE_F3 175 #define NOTE_FS3 185 #define NOTE_G3 196 #dete NOTE_GS3 203 NOTE_C4 262 #define NOTE_CS4 277 #define NOTE_D4 294 #define NOTE_DS4 311 #define NOTE_E4 330 #define NOTE_F4 349 #define NOTE_FS4 370 #define NOTE_G4 392 #def NOTE_GS4 414 #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 #def #def #def6 NOTE6 1109 #define NOTE_D6 1175 #define NOTE_DS6 1245 #define NOTE_E6 1319 #define NOTE_F6 1397 #define NOTE_FS6 1480 #define NOTE_G6 1568 #define NOTE_GS6 1661 #define NOTE_A6 1760 #def #NEF6 NEF6 NEF6 definiraj 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 #def NOTE_Def 4699 #define NOTE_DS8 4978

Ovi "#defini" govore govorniku koja frekvencija bilježi koju notu

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 eDržava = 0; int fState = 0; int gState = 0; int aState = 0; int bState = 0; int c2State = 0;

Označite Arduino iglice gumbima. "cState, dState, eState, itd;" su varijable koje spremaju je li gumb pritisnut. A 0 znači da nije pritisnut, a 1 znači da je pritisnut.

void setup () {// ovdje postavite svoj kod za postavljanje, da biste ga jednom pokrenuli: pinMode (10, OUTPUT); Serial.begin (9600); }

void loop () {// ovdje unesite svoj glavni kôd za višestruko pokretanje: cState = digitalRead (C); dState = digitalno čitanje (D); eDržava = digitalno čitanje (E); fState = digitalRead (F); gState = digitalRead (G); aState = digitalRead (A); bState = digitalRead (B); c2State = digitalno čitanje (C2);

Stanje gumba (ako je pritisnuto ili ne) sprema se u "cState, dState, eState itd."

A 0 znači da nije pritisnut, a 1 znači da je pritisnut.

if (cState == 1) {ton (piezoPin, 131); } else {noTone (piezoPin);} if (dState == 1) {ton (piezoPin, 147); } else {noTone (piezoPin);} if (eState == 1) {ton (piezoPin, 165); } else {noTone (piezoPin);} if (fState == 1) {ton (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);}}

Ako se pritisne tipka, ona govori servo uređaju da reproducira provjerenu frekvenciju (napomena). Funkcija

{noTone (piezoPin);} im govori da, ako se gumb ne pritisne, neće ništa reproducirati. Stoga, kad god pritisnete gumb, svirat će svoju označenu notu.

Preporučeni: