Съдържание:

Пиано Arduino: 3 стъпки
Пиано Arduino: 3 стъпки

Видео: Пиано Arduino: 3 стъпки

Видео: Пиано Arduino: 3 стъпки
Видео: Amazing arduino project 2024, Юли
Anonim
Пиано Arduino
Пиано Arduino

Това "Пиано" е в състояние да свири октава на истинско пиано. Натискането на бутоните ще представлява натискане на клавиш на пианото. Звукът ще се предава през пиезо говорител.

Стъпка 1: Материали

1. Arduino Uno

2. USB проводник

3. 3 дъски

4. 8 Бутони

5. 8 100 Ома резистори

6. Лектор „Пиезо“

7. Много мъжки проводници (около 20)

8. Поялник

Стъпка 2: Изградете настройката

Изградете настройката
Изградете настройката

Изградете 8 бутона, като всеки влиза в 8 различни щифта в Arduino, добавяйки резистор към всеки и ги свързвате към земята (използвайки мъжки проводници).

Свържете високоговорителя към определения щифт Arduino, а другата страна към земята. Ще трябва да запоите проводниците към високоговорителя, за да не падне. Уверете се, че двата проводника, споени към високоговорителя, не се допират един до друг.

Стъпка 3: Изграждане на кода

#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 NOTE_DEFine 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 #deteine NOTE_FS2 93 #define NOTE_G2 98 #dete NOTE_DefineNET2 #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_G3 233 ЗАБЕЛЕЖКА_C4 262 #дефинирай ЗАБЕЛЕЖКА_CS4 277 #дефинирай ЗАБЕЛЕЖКА_D4 294 #дефинирай ЗАБЕЛЕЖКА_F4 349 #дефинирай ЗАБЕЛЕЖКА_FS4 370 #дефинирай ЗАБЕЛЕЖКА_G4 392 #дефинирай ЗАБЕЛЕЖКА4 #д efine NOTE_CS5 554 #define NOTE_D5 587 #define NOTE_DS5 622 #define NOTE_E5 659 #define NOTE_F5 698 #define NOTE_FS5 740 #deteine NOTE_G5 784 #deteine ЗАБЕЛЕЖКА_GS5 831 #deteNET6 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 #deteine NOTE_GS6 1661 #define NOTE_A6 1760 #define6DEFine дефинирай 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 #dete NOTE_Ef7 4699 #дефинирай ЗАБЕЛЕЖКА_DS8 4978

Тези "#дефиниции" са за да кажат на говорещия коя честота прави коя бележка

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) {тон (пиезоПин, 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) {тон (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); } else {noTone (piezoPin);}}

Ако бутонът е натиснат, той казва на серво да играе на честотата на сертифициране (бележка). Функцията

{noTone (piezoPin);} им казва, че ако бутонът не е натиснат, за да пуснете нищо. Следователно, когато бутонът е натиснат, той ще свири определената му нота.

Препоръчано: