Giới thiệu

Trong bài viết này, chúng ta sẽ thực hiện một dự án Mini Piano Arduino . Để thực hiện dự án này, chúng tôi đang sử dụng loa nhỏ để thu được âm thanh đầu ra và mạch Arduino UNO .

Chúng ta có thể chơi các nốt khác nhau bằng cách nhấn các nút bấm. Trong này chỉ có 8 nút bấm nhưng bạn có thể mở rộng chúng tùy theo lựa chọn của mình.

Bảng Tần Số các nốt nhạc trên piano


NỐT NHẠC (NOTE)

TẦN SỐ (HZ)

A0

27,5

A#0 / Bb0

29.135

B0

30.868

C1

32,703

C#1 / Db1

34.648

D1

36,708

D#1 / Eb1

38.890

E1

41,203

F1

43.653

F#1 / Gb1

46.249

G1

49

G#1 / Ab1

51,913

A1

55

A#1 / Bb1

58.271

B1

61,735

C2

65.406

C#2 / Db2

69.296

D2

73.416

D#2 / Eb2

77.781

E2

82.407

F2

87.307

F#2 / Gb2

92.499

G2

98

G#2 / Ab2

103,83

A2

110

A#2 / Bb2

116,54

B2

123.47

C3

130,81

C#3 / Db3

138,59

D3

146,83

D#3 / Eb3

155,56

E3

164,81

F3

174,61

F#3 / Gb3

184.99

G3

195,99

G#3 / Ab3

207,65

A3

220

A#3 / Bb3

233.08

B3

246,94

C4

261,62

C#4 / Db4

277,18

D4

293,66

D#4 / Eb4

311,12

E4

329,62

F4

349,22

F#4 / Gb4

369,99

G4

392,00

G#4 / Ab4

415,3

A4

440

A#4 / Bb4

466,16

B4

493,88

C5

523,25

C#5 / Db5

554,37

D5

587,32

D#5 / Eb5

622,25

E5

659,26

F5

698.45

F#5 / Gb5

739,99

G5

783,99

G#5 / Ab5

830,61

A5

880

A#5 / Bb5

932,32

B5

987,77

C6

1046,5

C#6 / Db6

1108,7

D6

1174,7

D#6 / Eb6

1244,5

E6

1318,5

F6

1396,9

F#6 / Gb6

1480

G6

1568

G#6 / Ab6

1661,2

A6

1760

A#6 / Bb6

1864,7

B6

1975,5

C7

2093

C#7 / Db7

2217,5

D7

2349,3

D#7 / Eb7

2489

E7

2637

F7

2793,8

F#7 / Gb7

2960

G7

3136

G#7 / Ab7

3322.4

A7

3520

A#7 / Bb7

3729,3

B7

3951,1

C8

4186

Thành phần cần thiết

Sơ đồ kết nối

Arduino UNO Keypad Speaker
5V VCC  
GND GND
D11   +
D9 Key 8  
D8 Key 7  
D7 Key 6  
D6 Key 5  
D5 Key 4  
D4 Key 3  
D3 Key 2  
D2 Key 1  

Dự án Mini Piano Arduino hoạt động như thế nào?

  • Dự án này sẽ tạo ra âm thanh có tần số cố định khi chúng ta nhấn nút ấn.
  • Tần số được xác định trước cho tất cả các nút trong code.
  • Sử dụng hàm tone(speakerPin, frequency) để tạo ra âm thanh có tần số mong muốn.
  • Để tắt còi, Sử dụng hàm noTone(speakerPin).

Code

const int buttonPins[] = {2, 3, 4, 5, 6, 7, 8, 9}; // Các chân kết nối nút nhấn
const int tones[] = {262, 294, 330, 349, 392, 440, 494, 523}; // Tần số các nốt nhạc (C4, D4, E4, F4, G4, A4, B4, C5)
const int speakerPin = 11;

void setup() {
  Serial.begin(9600);
  for (int i = 0; i < 8; i++) {
    pinMode(buttonPins[i], INPUT_PULLUP); // Cấu hình các chân nút nhấn là đầu vào với điện trở kéo lên
  }
  pinMode(speakerPin, OUTPUT); // Cấu hình chân loa là đầu ra
}

void loop() {
  for (int i = 0; i < 8; i++) {
    while (digitalRead(buttonPins[i]) == LOW) { // Kiểm tra nếu nút nhấn được nhấn
      tone(speakerPin, tones[i]); // Phát tần số tương ứng
      Serial.println(tones[i]);
    } 
  }
  noTone(speakerPin); // Dừng phát tần số
  Serial.print("");
}

Video

www.truongcongly.com

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *